Agent skill
accessibility-issues
Use when animation excludes users with vestibular disorders, cognitive disabilities, or assistive technology needs
Install this agent skill to your Project
npx add-skill https://github.com/dylantarre/animation-principles/tree/main/skills/12-by-problem-type/accessibility-issues
SKILL.md
Accessibility Issues
Make animations inclusive using Disney's principles thoughtfully.
Problem Indicators
- Motion sickness complaints
- Vestibular disorder triggers
- Screen reader confusion
- Cognitive overload
- Seizure risk (flashing)
- Keyboard focus lost during animation
Diagnosis by Principle
Squash and Stretch
Issue: Excessive distortion causes disorientation
Fix: Reduce or eliminate squash/stretch for users with prefers-reduced-motion. Use opacity changes instead.
Secondary Action
Issue: Too many moving elements Fix: Limit to one animated element at a time. Secondary actions should be subtle or removed.
Exaggeration
Issue: Dramatic motion triggers vestibular responses Fix: Reduce scale, rotation, and position changes. Keep movements small and predictable.
Timing
Issue: Animations too fast or too slow Fix: Provide consistent, predictable timing. Avoid sudden speed changes.
Arcs
Issue: Curved motion paths cause tracking difficulty Fix: Use linear motion for essential UI. Save arcs for optional decorative elements.
Quick Fixes
- Respect
prefers-reduced-motion- Always check and honor - No autoplay animation - Let users trigger motion
- Keep focus visible - Never animate focus indicator away
- Announce changes - Use ARIA live regions for dynamic content
- Provide pause controls - For any looping animation
Troubleshooting Checklist
- Does animation respect
prefers-reduced-motion? - Is there a way to pause/stop animations?
- Are state changes announced to screen readers?
- Does keyboard focus remain visible and logical?
- Is flash rate under 3 per second?
- Can users complete tasks without animation?
- Are animations triggered by user action (not autoplay)?
- Test with screen reader enabled
Code Pattern
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
// Check preference in JS
const prefersReducedMotion = window.matchMedia(
'(prefers-reduced-motion: reduce)'
).matches;
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
icons-badges
Use when animating icons, badges, avatars, status indicators, or small visual elements to add personality and feedback
navigation-menus
Use when animating navigation bars, menus, sidebars, or wayfinding elements to create smooth, intuitive transitions
lists-grids
Use when animating lists, grids, tables, or collections of items to create smooth ordering, filtering, and loading states
loaders-spinners
Use when creating loading indicators, spinners, progress bars, or skeleton screens to communicate system status
accordions-dropdowns
Use when animating accordions, collapsibles, dropdowns, or expand/collapse elements for smooth reveal transitions
universal-elements
Use when animating any UI element not covered by specific skills, or when applying general animation principles across multiple element types
Didn't find tool you were looking for?