a11y-toolkit: prefers-reduced-motion honored?
a11y_reduced_motionTests whether a site honors prefers-reduced-motion by counting looping CSS animations before and after emulation, flagging pages that ignore the user preference.
Instructions
Does the site HONOR prefers-reduced-motion? Loads the page normally, counts looping CSS animations (>0.15s infinite), then reloads emulating prefers-reduced-motion: reduce and counts again. If the number does not drop, the site ignores the user's preference (2.2.2; 2.3.3 AAA). Nobody else automates this — axe leaves it as manual review. Covers CSS animations and video[autoplay]; JS/WebGL/scroll-parallax remain manual. Returns JSON: {mode, normal, reduced, respects, score, findings, limits}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page URL to test | |
| lang | No | output language | |
| browser | No | Browser engine (auto = detect the first available) | |
| timeout | No | page load timeout seconds (45 default) | |
| auth_state | No | Path to a Playwright storage_state JSON (exported session) to test behind login — stays local |