---
title: "Keyframes without a reduced-motion fallback (ui/reduced-motion)"
description: "People with vestibular disorders turn on reduced motion; the animation ignores it."
url: http://localhost:4173/rules/ui/reduced-motion
updated: 2026-11-11
---

# Keyframes without a reduced-motion fallback

> `ui/reduced-motion` is a vetd rule. It flags: Keyframes without a reduced-motion fallback. It runs on every `check`, together with the TypeScript check.

| Fact | Value |
| --- | --- |
| Rule id | `ui/reduced-motion` |
| Severity | warning |
| Group | Interface craft: accessibility, motion and mobile |
| Tags | accessibility |

## Why it matters

People with vestibular disorders turn on reduced motion; the animation ignores it.

## How to fix it

Add @media (prefers-reduced-motion: reduce) that stops or simplifies the animations.

## Credit

Based on work by:

- [W3C Web Accessibility Initiative](https://www.w3.org/WAI/): WCAG 2.3.3 asks that motion triggered by interaction can be disabled, which prefers-reduced-motion exposes.

## References

- [prefers-reduced-motion: Sometimes less movement is more](https://web.dev/articles/prefers-reduced-motion), web.dev
- [prefers-reduced-motion](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion), MDN Web Docs
- [Understanding Success Criterion 2.3.3: Animation from Interactions](https://www.w3.org/WAI/WCAG22/Understanding/animation-from-interactions.html), W3C
- [Understanding Success Criterion 2.2.2: Pause, Stop, Hide](https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html), W3C

## See it

Demos in the vetd Lab:

- [Respect prefers-reduced-motion](http://localhost:4173/lab/web-perf/respect-reduced-motion)
- [Honor reduced motion](http://localhost:4173/lab/view-transitions/honor-reduced-motion)

## Related rules

- [`ui/animate-layout`](http://localhost:4173/rules/ui/animate-layout.md)

## Get this text from vetd

MCP: call `explain` with `{ "diagnosticId": "ui/reduced-motion" }`. CLI: `npx vetd explain ui/reduced-motion`.

---

[All 92 rules](http://localhost:4173/rules.md) · Previous: [`ui/page-scrollbar`](http://localhost:4173/rules/ui/page-scrollbar.md) · Next: [`shadcn/nested-trigger`](http://localhost:4173/rules/shadcn/nested-trigger.md)
