MotionSpec vs MotionScore, MotionLint, Lighthouse, axe, stylelint-a11y
The short version. Nobody covers all of motion accessibility, and the tools overlap less than their names suggest. Linters catch a missing prefers-reduced-motion block in CSS. Runtime tools measure what actually moves in a browser. General accessibility engines such as axe and Lighthouse barely look at motion at all. MotionSpec sits in a narrow spot: a static scan of somebody else’s live site that returns a score, a badge and a dated report, plus a compiler whose output carries the reduced-motion fallback and a pause path by construction. Where a tool below does something MotionSpec does not, the table says so.
Side by side
| Tool | Detects a missing reduced-motion guard (WCAG 2.3.3 lane) | Pause / Stop / Hide (WCAG 2.2.2) | Flashing (WCAG 2.3.1) | Runtime JavaScript motion | Price (2026-09-03) | Reach (2026-09-03) |
|---|---|---|---|---|---|---|
| MotionSpec | static CSS scan (declarations outside a prefers-reduced-motion guard) | yes — reports infinite/long CSS animation without a pause path | no — not checked (the report says so) | static only — runtime libraries are disclosed as “not audited”, an external bundle without a trace in the HTML is not detected | MIT core $0 · Motion Report $29 one-time · Dev Key $39/mo · Agency $249/mo | npm 213 downloads/week · GitHub 0 stars |
| MotionLint | yes — at runtime (Playwright/CDP frame measurement) | — | — | yes — measures real frames | $0 (MIT, since 04/2026; MCP registry since 2026-07-27) | npm 241 downloads/month · GitHub 0 stars |
| Impeccable | yes — as an audit playbook for coding agents | — | yes | — | $0 | GitHub 65.3k stars |
| motion.dev MotionScore Code Audit (Motion+) | yes | — | yes | yes | part of Motion+ (paid) | “2,000 indie devs” (their claim) |
| axe-core 4.13 / Lighthouse | no | only blink and <marquee> | no | no | $0 · axe DevTools Pro roughly $79–99/mo (secondary source) | npm 68.9M downloads/week (axe-core) |
| stylelint-a11y (two forks) | yes — media-prefers-reduced-motion rule | no | no | no | $0 | npm 41k downloads/week |
Anthropic plugin frontend-design | an instruction (“reduced motion respected”), not a check | — | — | — | $0 | official Claude Code marketplace (291 plugins) |
Where MotionSpec is alone — and where it is not
- Alone: a static scan of a third-party live URL that returns a score, a badge and a dated, WCAG-cited report; a deterministic compiler whose output carries the
prefers-reduced-motionfallback; explicit reporting of WCAG 2.2.2 pause paths for looping motion. - Not alone, or not there: detecting a missing reduced-motion guard (stylelint-a11y, Impeccable, MotionScore and MotionLint all do it, in CSS or at runtime); flashing analysis (Impeccable and MotionScore cover it, MotionSpec does not); runtime measurement (MotionLint measures real frames, MotionSpec only discloses that a runtime library is present — and misses one that arrives in an external bundle).
- Everyone: none of these tools makes a site WCAG-, EAA- or ADA-compliant, and none replaces a full accessibility audit. Each covers a slice; the slices are listed above.
Which one to reach for
- You lint your own CSS in CI —
stylelint-a11ygives you the reduced-motion rule for free; add MotionSpec’smotion auditif you also want the 2.2.2 pause-path check and a score. - You want to know what actually moves in a browser — MotionLint measures frames at runtime; MotionSpec’s static scan cannot.
- You direct a coding agent — Impeccable’s playbook and the Anthropic
frontend-designplugin instruct the model; MotionSpec’s MCP tools validate and compile the result against a reviewed catalog. - You ship other people’s sites and need paper — the free check for the pre-flight, the Motion Report for the client file, the Agency plan for ten domains at once.
- You already run Lighthouse or axe — keep them; neither evaluates animation,
prefers-reduced-motion, autoplay or an unpausable loop, so a motion tool sits beside them rather than replacing them. What the Lighthouse score does and does not tell you →
MotionSpec vs each tool
MotionSpec vs MotionLint
MotionLint measures real frames at runtime (Playwright/CDP), so it sees motion a static scan cannot, including JavaScript-driven animation. MotionSpec reads a live page’s CSS without a browser, reports WCAG 2.2.2 pause paths explicitly and produces a dated, WCAG-cited report: MotionLint for runtime truth, MotionSpec for a citable record of a page you do not own.
MotionSpec vs motion.dev MotionScore
MotionScore, part of the paid Motion+ plan, covers reduced motion, flashing and runtime JavaScript motion; MotionSpec does not check flashing and only discloses runtime libraries. MotionSpec’s difference is reach and paper: a free static scan of any third-party URL, explicit WCAG 2.2.2 pause-path reporting and a dated report for the client file.
MotionSpec vs Lighthouse and axe
Lighthouse and axe-core are general accessibility engines; for motion they flag only <blink> and <marquee>, and evaluate neither prefers-reduced-motion, autoplay nor an unpausable CSS loop. Keep them for everything else and run a motion check beside them.
MotionSpec vs stylelint-a11y
stylelint-a11y’s media-prefers-reduced-motion rule catches a missing reduced-motion block in your own CSS during CI, for free. It has no WCAG 2.2.2 pause-path check and does not scan a live site; MotionSpec adds both, plus a score and a dated report.
MotionSpec vs Impeccable
Impeccable is an audit playbook for coding agents and covers reduced motion and flashing as instructions to the model. MotionSpec’s MCP tools validate and compile generated motion against a reviewed catalog, and its checker scans the deployed page: the two work at different steps.
A note on MotionSpec’s own numbers
Since motionspec 1.2.8, the CLI and local MCP tools use scoring v2, like the free check and Motion Report. Older releases used scoring v1; update and re-baseline before comparing scores. For hosted MCP results, check the response's scoring field before comparing runs. Scoring v2 weights root-cause groups by severity, dampens repeated occurrences and caps deductions per category. Read status first: not-measurable means score is null, not a pass. Only compare measurable results with the same scoring version, input content and fetch coverage. The reach figures for MotionSpec above are our own: 213 npm downloads a week and 0 GitHub stars on 2026-09-03.
How this table was made
Each row comes from the tool’s own documentation, source or npm/GitHub page as read on 2026-09-03, plus a run of the tool where one was possible. Prices are the published list prices on that day; where we only had a secondary source (axe DevTools Pro), the table says so. We will correct any cell a maintainer shows to be wrong — write to hello@motionspec.dev and the change lands with a date.
Paste a URL into the free motion check — four checks, every finding with its fix, and an explicit list of what the scan could not see. No signup, nothing stored.
Check a page for free