# Example Motion Report

> A complete $29 Motion Report from a real scan, published in full: score, WCAG 2.2.2 / 2.3.3 citations, every candidate with its fix. Read the deliverable before you buy it.

> Source: https://motionspec.dev/report-example
> Free check: https://motionspec.dev/motion-check · Pricing: https://motionspec.dev/pricing#p-report

This is a real report, not a mock-up. 
 It was produced on 29 August 2026 by the same renderer that runs when you buy a
 Motion Report, fed by the same live scan engine. Every candidate, every WCAG citation and
 every fix below comes out of an actual scan. 
 The page it scans is our own /before-after demo, which
 deliberately ships motion the checker should flag — six infinite animations with no pause
 path (WCAG 2.2.2, Level A) and several animation layers sitting outside the
 prefers-reduced-motion guard (WCAG 2.3.3) — so the report has something
 to show. A clean page produces a much shorter report; the scoring, the sections and the
 disclosures are identical. 
 Run the free check on your own page → 
 · 
 What a report costs → 

 Motion Spec 
 motionspec.dev — motion accessibility, static scan of 29 August 2026 

 Motion Accessibility Report 
 https://motionspec.dev/before-after 
 
 Report ID example-2026-08-29 
 Date 29 August 2026 
 Scan type Static scan (scoring v2) 
 Prepared by MotionSpec — Froeba Sales Solutions UG 

 26 /100 
 
 High motion-accessibility risk 

 &#9650; study median 35 

 Engineering report — not legal compliance evidence. Motion/animation scope only (WCAG 2.2.2, 2.3.3, prefers-reduced-motion). Not an EN 301 549 audit. Full terms on the last page.

 Motion Spec example-2026-08-29 · motionspec.dev · 29 August 2026 
 Executive summary 
 13 distinct motion-a11y root cause(s), 14 occurrence(s), in the static scan. 

 Score: 26/100 — High motion-accessibility risk 
 This score is higher than 82 of the 196 pages in the study, and level with 2 of them. 
 Benchmark population: the July 2026 MotionSpec “State of Motion” study — 196 production pages generated by five AI app-builder platforms, scanned with this same engine and scoring (v2). It benchmarks against AI-generated UIs, not the general web. Scores in that population cluster on a few values, so this report gives raw counts only: any single summary figure would suggest a precision these clustered scores do not carry. 

 How this page compares with the study population 
 
 Measure This page 196-page study (AI-generated UIs, July 2026) 
 Score (v2) 26/100 median 35/100 
 Motion without a reduced-motion guard Yes present on 190 of 196 pages 
 Infinite animation without a pause path (WCAG 2.2.2, Level A) Yes present on 130 of 196 pages 
 Statically clean (no candidates) No 6 of 196 pages 

 Top candidates 
 
 Severity Candidate (root cause) Occurrences Score impact 
 
 High 
 Infinite animation without pause path (no animation-play-state / data-* toggle) WCAG 2.2.2 Pause, Stop, Hide — Level A 
 1&times; 
 &minus;20 

 High 
 Infinite animation without pause path (no animation-play-state / data-* toggle) WCAG 2.2.2 Pause, Stop, Hide — Level A 
 1&times; 
 &minus;20 

 High 
 Infinite animation without pause path (no animation-play-state / data-* toggle) WCAG 2.2.2 Pause, Stop, Hide — Level A 
 1&times; 
 &minus;20 

 The highest-priority candidates are the infinite animations without a pause path — WCAG 2.2.2 (Pause, Stop, Hide) is a Level-A criterion, the strictest conformance tier, and continuous movement is a real barrier for people with attention and vestibular conditions. The unguarded-motion candidates are animation that, as scanned, still runs when a visitor’s OS-level “reduce motion” setting is on; a single prefers-reduced-motion media query per animation layer usually clears this class in one change. The matching criterion, WCAG 2.3.3, is Level AAA — so this is a robustness gap, not a Level-A conformance failure. The suggested fixes in this report are CSS-only and incremental — none require redesigning the page. After deploying, re-run the free checker to see the new scan result. 
 MotionSpec Motion Accessibility Report example-2026-08-29 

 Motion Spec example-2026-08-29 · motionspec.dev · 29 August 2026 
 Candidates in detail 
 Candidates are grouped by root cause: one CSS root cause (a @keyframes animation or a transition layer) applied to N selectors is one candidate with N occurrences — not N candidates. Groups are ordered by their score impact. Candidates describe the page as scanned: they are engineering observations to check, not confirmed defects and not a judgement of the team that built it. 
 
 1. Infinite animation without pause path (no animation-play-state / data-* toggle) High 
 WCAG 2.2.2 Pause, Stop, Hide — Level A · 1 occurrence · score impact &minus;20 · root cause: keyframes:logosway 
 Where: .wavemark 
 Suggested fix 
 Make it pausable: html[data-ms-paused] .wavemark { animation-play-state: paused !important; } + pause button. 

 2. Infinite animation without pause path (no animation-play-state / data-* toggle) High 
 WCAG 2.2.2 Pause, Stop, Hide — Level A · 1 occurrence · score impact &minus;20 · root cause: keyframes:kenburns 
 Where: .bgfx 
 Suggested fix 
 Make it pausable: html[data-ms-paused] .bgfx { animation-play-state: paused !important; } + pause button. 

 3. Infinite animation without pause path (no animation-play-state / data-* toggle) High 
 WCAG 2.2.2 Pause, Stop, Hide — Level A · 1 occurrence · score impact &minus;20 · root cause: keyframes:pulse 
 Where: .cta 
 Suggested fix 
 Make it pausable: html[data-ms-paused] .cta { animation-play-state: paused !important; } + pause button. 

 4. Infinite animation without pause path (no animation-play-state / data-* toggle) High 
 WCAG 2.2.2 Pause, Stop, Hide — Level A · 1 occurrence · score impact &minus;20 · root cause: keyframes:spin 
 Where: .spinner 
 Suggested fix 
 Make it pausable: html[data-ms-paused] .spinner { animation-play-state: paused !important; } + pause button. 

 5. Infinite animation without pause path (no animation-play-state / data-* toggle) High 
 WCAG 2.2.2 Pause, Stop, Hide — Level A · 1 occurrence · score impact &minus;20 · root cause: keyframes:scrollx 
 Where: .track 
 Suggested fix 
 Make it pausable: html[data-ms-paused] .track { animation-play-state: paused !important; } + pause button. 

 6. Infinite animation without pause path (no animation-play-state / data-* toggle) High 
 WCAG 2.2.2 Pause, Stop, Hide — Level A · 1 occurrence · score impact &minus;20 · root cause: keyframes:bounce 
 Where: .cue span 
 Suggested fix 
 Make it pausable: html[data-ms-paused] .cue span { animation-play-state: paused !important; } + pause button. 

 7. Transitions without prefers-reduced-motion guard Medium 
 WCAG 2.3.3 (Level AAA) / prefers-reduced-motion best practice · 2 occurrences · score impact &minus;11.2 · root cause: transition:(unguarded) 
 Where: .slider&ensp;·&ensp;.slider::before 
 Suggested fix 
 @media (prefers-reduced-motion: reduce) { * { transition: none !important; } } — or guard the transition utilities layer. 

 8. Motion without prefers-reduced-motion guard Medium 
 WCAG 2.3.3 (Level AAA) / prefers-reduced-motion best practice · 1 occurrence · score impact &minus;8 · root cause: keyframes:kenburns 
 Where: .bgfx 
 Suggested fix 
 @media (prefers-reduced-motion: reduce) { .bgfx { animation: none; transition: none; } } 

 9. Motion without prefers-reduced-motion guard Medium 
 WCAG 2.3.3 (Level AAA) / prefers-reduced-motion best practice · 1 occurrence · score impact &minus;8 · root cause: keyframes:pulse 
 Where: .cta 
 Suggested fix 
 @media (prefers-reduced-motion: reduce) { .cta { animation: none; transition: none; } } 

 10. Motion without prefers-reduced-motion guard Medium 
 WCAG 2.3.3 (Level AAA) / prefers-reduced-motion best practice · 1 occurrence · score impact &minus;8 · root cause: keyframes:spin 
 Where: .spinner 
 Suggested fix 
 @media (prefers-reduced-motion: reduce) { .spinner { animation: none; transition: none; } } 

 11. Motion without prefers-reduced-motion guard Medium 
 WCAG 2.3.3 (Level AAA) / prefers-reduced-motion best practice · 1 occurrence · score impact &minus;8 · root cause: keyframes:scrollx 
 Where: .track 
 Suggested fix 
 @media (prefers-reduced-motion: reduce) { .track { animation: none; transition: none; } } 

 12. Motion without prefers-reduced-motion guard Medium 
 WCAG 2.3.3 (Level AAA) / prefers-reduced-motion best practice · 1 occurrence · score impact &minus;8 · root cause: keyframes:bounce 
 Where: .cue span 
 Suggested fix 
 @media (prefers-reduced-motion: reduce) { .cue span { animation: none; transition: none; } } 

 13. Animated non-transform/opacity propert(ies): background Low 
 Best practice — compositor-safe animation (performance + vestibular safety) · 1 occurrence · score impact &minus;4 · root cause: props:background 
 Where: .slider 
 Suggested fix 
 Animate only transform/opacity (compositor-safe), e.g. transform instead of background. 
 
 MotionSpec Motion Accessibility Report example-2026-08-29 

 Motion Spec example-2026-08-29 · motionspec.dev · 29 August 2026 
 Scan coverage & disclosures 
 No coverage limitations were flagged for this scan beyond the general static-scan scope described under Methodology. 

 Methodology 
 What we test 
 
 Static scan of the page HTML, inline style blocks and up to 12 linked stylesheets (8 s fetch timeout per resource, 2 MB cap per resource), as served at scan time. 
 Infinite/long animation without a pause path — CSS animations with infinite iteration (or >5 s autoplay) and deprecated <marquee> , with no detectable pause/stop mechanism. Mapped to WCAG 2.2.2 Pause, Stop, Hide (Level A) . 
 Motion without a prefers-reduced-motion guard — animations/transitions that run even when the visitor's OS asks for reduced motion. Mapped to WCAG 2.3.3 Animation from Interactions (Level AAA) and reduced-motion best practice; this is a robustness gap, not a Level-A failure. 
 Risky animated properties — animating properties other than transform / opacity (layout/paint work; vestibular and performance risk). Best-practice candidate. 
 
 Scoring (v2) 
 scoring v2: 100 minus, per root-cause group (same kind + same keyframes/transition-props/selector-family), severity-weight x min(3, 1 + 0.4*log2(occurrences)); per-category caps (infinite/marquee 40, autoplay 25, unguarded 30, risky-props 15) so one issue class cannot zero the score alone; floor 0. 
 What we do not test 
 
 Runtime JavaScript motion (WAAPI, GSAP, JS-driven scroll effects). Where the scan detects runtime-motion libraries it discloses them above as not audited — the score is a lower bound on motion risk, not proof of absence. 
 Video, GIF and canvas/WebGL content; flashing-content analysis (WCAG 2.3.1) beyond CSS motion. 
 Post-interaction states behind logins, cookie walls or client-side routing. 
 Everything outside motion: this is not a general accessibility audit and not an EN 301 549 assessment. 
 
 Reference population 
 Comparison figures come from the MotionSpec State of Motion in AI-Generated UIs study (Motion Accessibility Index #1, July 2026): 196 publicly accessible production pages generated by five AI app-builder platforms (anonymized cohorts A–E), scanned with this same engine and scoring. Dataset: CC BY 4.0, motionspec.dev/blog/state-of-motion-ai-generated-uis . 
 MotionSpec Motion Accessibility Report example-2026-08-29 

 Motion Spec example-2026-08-29 · motionspec.dev · 29 August 2026 
 Scope, terms & imprint 

 Scope disclaimer 
 Engineering report — not legal compliance evidence. Motion/animation scope only (WCAG 2.2.2, 2.3.3, prefers-reduced-motion). Not an EN 301 549 audit.
 This is an automated, point-in-time engineering assessment based on publicly reachable pages. It is not a legal compliance determination. Prepared for the buyer's internal use; please do not redistribute or use it to make public claims about third-party sites. 

 Refunds 
 If this report is not useful to you, email hello@motionspec.dev within 14 days , quoting the report number above, and we refund the purchase in full — no questions asked. 

 Re-checks 
 The scan reflects the page as served on 29 August 2026. After you ship fixes, you can re-check the page free of charge at any time: motionspec.dev/motion-check . 

 Questions 
 Write to hello@motionspec.dev and quote the report number above. 

 Imprint / Impressum: Froeba Sales Solutions UG (haftungsbeschränkt) — MotionSpec, hello@motionspec.dev. 
 Report example-2026-08-29, generated 29 August 2026 from a static scan of https://motionspec.dev/before-after. MotionSpec is an EU trademark application of Froeba Sales Solutions UG. 
 WCAG is a trademark of the W3C. This document cites WCAG success criteria for engineering orientation only.
 
 MotionSpec Motion Accessibility Report example-2026-08-29 · end of report
