Motion Accessibility

Use when validating that an interaction preserves keyboard access, focus, semantics, and honors reduced-motion before it can ship.

Suraj787 5ba725b 1.3 KB Updated

File contents

Motion Accessibility

Responsibility: Enforce the mandatory accessibility and reduced-motion invariants. This is a non-negotiable gate.

When to invoke

  • During implementation and again at validation (step 12 of the root workflow).

Inputs

  • The implemented interaction and its reduced-motion variant.

Outputs

  • Pass/fail per invariant, with required fixes.

Invariants

  • Keyboard focus is never removed or obscured; focus order stays logical.
  • Essential actions are never hover-only; they work via keyboard and touch.
  • Status is never conveyed by motion alone, pair with text/icon/ARIA.
  • prefers-reduced-motion: reduce is respected with a meaningful non-motion path.
  • Decorative motion never blocks or delays input.
  • Semantics (roles, names, states) are correct and announced.

How it connects

  • Reads intelligence/ accessibility guidance; does not touch registry/ ranking.
  • Reports to implementation-validation; failures block the ship.

Notes

A reduced-motion path is not "disable the animation and leave a gap", it must still communicate the state change clearly. No interaction ships without it.

Suraj787/motif/tree/main/skills/motion-accessibility commit 5ba725b37c

Frequently asked questions

npx skillmds@latest add suraj787/motion-accessibility