Find autoplay, endless loops, possible flashing and long transitions, and get reduced-motion CSS to paste.
Motion checkFreeFor developers and designers
30/day
free runs a day, no sign-in.
Before: what you give it
The example input, as typed in. You give it a page address.
css:
.hero { background-attachment: fixed; animation: drift 12s linear infinite; }
@keyframes drift { from { transform: translateX(0); } to { transform: translateX(-400px); } }
.badge { animation: blink 0.25s steps(1) infinite; }
@keyframes blink { 0% { opacity: 1; } 50% { opacity: 0; } }
.card { transition: transform 0.8s ease; }
.card:hover { transform: translateY(-120px) scale(1.6); }
html { scroll-behavior: smooth; }
html: <section class="hero"><video autoplay muted loop src="bg.mp4"></video><marquee>Sale ends soon</marquee></section>
After: what comes back
The first lines of a real run on that input. Nothing here is edited by hand.
Motion check of pasted markup: 9 findings (4 high, 3 medium, 1 low, 1 advisory). Found 2 animations (2 infinite), 1 transitions, 0 rules inside prefers-reduced-motion. Reduced motion: not honoured. [HIGH] WCAG 2.2.2 Pause, Stop, Hide (A): 1 video autoplay Autoplaying video that runs over 5 seconds needs a pause control, even when muted. 1 has no controls attribute, so a keyboard or screen reader user has no built-in way to stop them. Looping background video is the common offender. Seen in: <video autoplay muted loop> Fix: Remove autoplay, or add a visible pause button wired to video.pause(). Under prefers-reduced-motion, do not start it at all (check matchMedia in script). [HIGH] WCAG 2.2.2 Pause, Stop, Hide (A): 1 <marquee> element <marquee> is obsolete and cannot be paused by the user. Seen in: <marquee> Fix: Replace it with static text, or a CSS animation that has a pause control and stops under prefers-reduced-motion. [HIGH] WCAG 2.3.1 Three Flashes or Below Threshold (A): 1 fast repeating animation could flash ... full output on the tool page
What you get
Findings with WCAG criterion, severity and fix, a verdict on prefers-reduced-motion, and a CSS block
What it cannot do
Reads source only: it cannot measure flash rate or render the page, and fetches up to 4 same-site stylesheets.
Who it is for
- Developers
- Designers
Free and Pro
| Free | 30 runs a day per IP address, up to 200,000 characters a run. |
|---|---|
| Pro | No daily limit, 300 requests a minute, up to 200,000 characters a run. |
Use it from your assistant
The tool is called check_motion. Connect the server once, then ask for it by name or just describe the job. Install steps for each app.
claude mcp add --transport http designers https://designers.allthepossibles.com/mcp
curl -X POST https://designers.allthepossibles.com/api/motion-check -H 'content-type: application/json' -d '{"css":".hero { background-attachment: fixed; animation: drift 12s linear infinite; }\n@keyframes drift { from { transform: translateX(0); } to { transform: translateX(-400px); } }\n.badge { animation: blink 0.25s steps(1) infinite; }\n@keyframes blink { 0% { opacity: 1; } 50% { opacity: 0; } }\n.card { transition: transform 0.8s ease; }\n.card:hover { transform: translateY(-120px) scale(1.6); }\nhtml { scroll-behavior: smooth; }","html":"<section class=\"hero\"><video autoplay muted loop src=\"bg.mp4\"></video><marquee>Sale ends soon</marquee></section>"}'
Try it here
The form starts with the same example input, so you can run it first and then swap in your own.
More in motion
- Easing designer
Turn an easing name, cubic-bezier or spring into CSS timing functions with sampled progress and feel notes
- Duration scale
Pick an animation duration from distance, size and complexity, and get an enter and exit pair
- Motion CSS audit
Find animations in your CSS that force layout, ignore reduced motion or run forever without a pause
- Stagger planner
Plan staggered reveal delays for a list so the whole sequence fits a time budget
- Animation principles review
Review a described animation against the twelve animation principles and get a question for each one
- Lottie JSON lint
Lint a Lottie file for size, expressions, embedded images and features that break on mobile players