wcag-audit-operable-motion-test

wcag-audit-operable-motion-test

Test animations for motion sensitivity compliance and reduced motion preferences

0stars
0forks
Updated 1/19/2026
SKILL.md
readonlyread-only
name
wcag-audit-operable-motion-test
description

Test animations for motion sensitivity compliance and reduced motion preferences

When to Use

Use this tool when implementing animations, transitions, or moving content to ensure compliance with motion sensitivity guidelines and respect for user reduced motion preferences.

Usage

Command Line

node scripts/test.js --duration 3.5 --type parallax
node scripts/test.js --duration 2.0 --flashes 5 --reduced-motion true
node scripts/test.js --json '{"duration": 4.2, "type": "scroll", "flashes": 0}'

JSON Input

node scripts/test.js --json '{
  "duration": 3.5,
  "type": "carousel",
  "flashes": 0,
  "userPrefersReducedMotion": true
}'

Parameters

  • --duration: Animation duration in seconds
  • --type: Animation type (scroll, parallax, carousel, transition, etc.)
  • --flashes: Number of flashes per second (default: 0)
  • --reduced-motion: Whether to simulate reduced motion preference (true/false)
  • --json: JSON input with animation properties

Output

Returns JSON with compliance assessment and recommendations:

{
  "animation": {
    "duration": 3.5,
    "type": "parallax",
    "flashes": 0
  },
  "compliance": {
    "reducedMotion": true,
    "flashing": true,
    "duration": false
  },
  "issues": ["Animation duration exceeds 5 seconds"],
  "recommendations": [
    "Provide option to pause or disable parallax scrolling",
    "Consider using reduced motion alternative"
  ]
}

Examples

Test short animation

$ node scripts/test.js --duration 2.0 --type transition
✅ Reduced motion: RESPECTED
✅ Flashing: PASS (no flashes detected)
✅ Duration: PASS (2.0s within limit)
Animation meets accessibility requirements

Test long animation

$ node scripts/test.js --duration 8.5 --type carousel
⚠️  Reduced motion: NEEDS ATTENTION
✅ Flashing: PASS (no flashes detected)
❌ Duration: FAIL (8.5s exceeds 5s limit)
Recommendations:
- Provide pause/stop controls for auto-advancing carousel
- Consider shorter transition duration or user control
- Offer static alternative when reduced motion is preferred

Test flashing content

$ node scripts/test.js --duration 1.0 --flashes 4
✅ Reduced motion: RESPECTED
❌ Flashing: FAIL (4 flashes/s exceeds 3 flashes/s limit)
❌ Duration: PASS (1.0s within limit)
Recommendations:
- Reduce flashing frequency to maximum 3 flashes per second
- Consider non-flashing alternatives
- Test with users sensitive to flashing content

WCAG Standards

  • Reduced Motion: Respect prefers-reduced-motion user preference
  • Flashing Limit: Maximum 3 flashes per second
  • Auto-play Duration: Moving content should be pausable within 5 seconds
  • User Control: Provide options to pause, stop, or hide moving content
  • Alternatives: Offer static alternatives for animated content

Animation Types

Safe Types

  • Fade transitions: Gradual opacity changes
  • Slide transitions: Smooth position changes
  • Scale transforms: Size changes without movement

Risk Types

  • Parallax scrolling: Multiple layers moving at different speeds
  • Auto-advancing carousels: Content that changes automatically
  • Flashing elements: Rapid visibility changes
  • Spinning animations: Rotational movement

Best Practices

  1. Check user preferences: Always respect prefers-reduced-motion
  2. Provide controls: Allow users to pause/stop animations
  3. Limit duration: Keep auto-playing content under 5 seconds
  4. Avoid flashing: Never exceed 3 flashes per second
  5. Test alternatives: Ensure functionality without animation

Learn More

For more information about Agent Skills and how they extend AI capabilities.

You Might Also Like

Related Skills

fix

fix

243Kdev-testing

Use when you have lint errors, formatting issues, or before committing code to ensure it passes CI.

facebook avatarfacebook
Get
peekaboo

peekaboo

179Kdev-testing

Capture and automate macOS UI with the Peekaboo CLI.

openclaw avataropenclaw
Get
frontend-testing

frontend-testing

128Kdev-testing

Generate Vitest + React Testing Library tests for Dify frontend components, hooks, and utilities. Triggers on testing, spec files, coverage, Vitest, RTL, unit tests, integration tests, or write/review test requests.

langgenius avatarlanggenius
Get
frontend-code-review

frontend-code-review

127Kdev-testing

Trigger when the user requests a review of frontend files (e.g., `.tsx`, `.ts`, `.js`). Support both pending-change reviews and focused file reviews while applying the checklist rules.

langgenius avatarlanggenius
Get
code-reviewer

code-reviewer

92Kdev-testing

Use this skill to review code. It supports both local changes (staged or working tree) and remote Pull Requests (by ID or URL). It focuses on correctness, maintainability, and adherence to project standards.

google-gemini avatargoogle-gemini
Get
session-logs

session-logs

90Kdev-testing

Search and analyze your own session logs (older/parent conversations) using jq.

moltbot avatarmoltbot
Get