# Study: state-of-motion-ai-generated-uis


> **Correction (Aug 5, 2026).** The point values in this study (96.9% / 66.3% / 3.1%, n=196) overstate the precision of the underlying data: the 196 pages collapse to **124 distinct motion signatures**. The defensible Level-A figure is a range: **53.9–77.2%** of distinct signatures fail WCAG 2.2.2 (pause path). Missing reduced-motion guards are a best-practice gap (2.3.3, AAA), not a Level A failure. Original values are kept below for the record; method and dataset unchanged.
Canonical: https://motionspec.dev/blog/state-of-motion-ai-generated-uis

State of Motion in AI-Generated UIs: 196 Sites Tested (2026) — MotionSpec

MotionSpec
← All guides

Study

## State of Motion in AI-Generated UIs: 196 Sites Tested for Motion Accessibility (2026)

Kevin Fröba · 2026-07-18 · MotionSpec · Motion Accessibility Index #1

**In short:** we scanned 196 AI-generated production web apps for one narrow thing — does the motion they ship by default let a person stop it? **66.3% run at least one infinite animation with no way to pause it, a WCAG 2.2.2 Level A failure.** 96.9% ship some motion with no reduced-motion guard. Six apps — 3.1% — came back clean. The full method and the raw dataset are below, so you don't have to take our word for any of it.

**Transparency.** This is research published by MotionSpec, and we sell tools for the exact problem it measures — so treat us as an interested party and check our work. That's why the method is fully described, every number is a pure function of published rules, and the anonymized dataset is linked at the end: you can reproduce all of it without our product. We are not naming which builder is which; apps appear only as cohorts A–E. The point is a category pattern, not a scoreboard for any one vendor.

Somewhere right now, a person who gets motion sick from moving interfaces has told their computer to calm down. Every major operating system has the switch: Reduce Motion. It's not a preference in the decorative sense — for people with vestibular disorders, a parallax hero or an auto-scrolling marquee can trigger real dizziness, nausea and migraine. The web has a standard way to honour that switch. The question we set out to answer was simple: in the new wave of apps that AI builders generate for us, how many actually do?

We took 196 publicly accessible production apps built with five major AI app-builder platforms, and ran one focused check against the two oldest, most automatable motion-accessibility rules on the books: is there a reduced-motion guard, and is there a way to pause a loop that never stops? Mostly, the answer was no.

## Key findings

- **66.3% fail WCAG 2.2.2 (Level A).** Two-thirds of the apps ran at least one infinite, auto-playing animation with no pause, stop, or hide path. Level A is the minimum bar — the one everyone is meant to clear.
- **96.9% ship unguarded motion.** Nearly every app had some animation or transition with no [prefers-reduced-motion guard](https://motionspec.dev/blog/prefers-reduced-motion). We're deliberately careful here: this is a best-practice gap, not a strict Level A/AA failure. It's the ambient problem; the 66.3% is the hard one.
- **The median app carried 17 distinct motion root causes** — not 17 CSS selectors, 17 separate causes.
- **The median motion score was 35 out of 100** on our own heuristic — reproducible, but not a WCAG conformance rate. The load-bearing numbers are the WCAG-mapped percentages, not the score.
- **Only 6 apps out of 196 were clean.** And they clustered.

## By cohort — and the one that got it right

| Cohort | Apps | ≥1 unguarded motion | ≥1 infinite loop, no pause | Median root causes | Median score |
|---|---|---|---|---|---|
| A | 45 | 100% | 71.1% | 16 | 15 |
| B | 45 | 100% | 80.0% | 17 | 35 |
| C | 45 | 100% | 77.8% | 18 | 35 |
| D | 21 | 100% | 81.0% | 5 | 43 |
| E | 40 | 85.0% | 25.0% | 14 | 55 |

Cohort D is the smallest (21 apps), so its percentages carry wider uncertainty. Four of the five cohorts hit 100% on the unguarded-motion check — that near-uniformity is the tell: this isn't a few careless builders, it's a default. But cohort E breaks the pattern: 85% unguarded instead of 100%, a quarter of the loop-failure rate of its peers, and the only cohort shipping clean apps at all. That means the gap is not a technical ceiling. If one platform's defaults can move the numbers, the rest can.

## Why this gap stays invisible

Most of these apps would pass the accessibility scan a careful team actually runs — not because the scanners are bad, but because they don't look at motion. The WebAIM Million 2026 analysed the top one million home pages, found detectable WCAG failures on 95.9% of them, and flagged the first accessibility regression in seven years, pinning part of it on AI-assisted "vibe coding." But its recurring top failures are contrast, alt text, empty links and buttons, form labels, document language. Motion is not on the list — not because it's rare, but because automated scanners (axe, WAVE, Lighthouse) don't reliably evaluate animation, and visual-regression tools freeze it on purpose.

So the honest framing is not "motion is the biggest accessibility problem." It isn't. Contrast and alt text are the epidemic; fix those first. Motion is the one the standard tooling can't see — which is why it keeps shipping on sites that otherwise pass. Not the largest gap. The invisible one.

## Why it matters now

- **Motion just became everyone's job.** Figma shipped Figma Motion at Config 2026 — a native timeline plus an AI agent that generates animation from a prompt, on every plan. Figma's own recap notes it "does not replace reduced-motion preferences or contrast checks." More motion, made by more people, faster, with no enforcement in the tool.
- **AI is generating the unsafe version at scale.** The default output of a pipeline never prompted about accessibility is motion with no brake.
- **The law is starting to bite — carefully stated.** The EAA has been in force since June 2025. On 4 June 2026 a French court (the Carrefour case) issued what's regarded as the first EAA enforcement decision: an order to fix within six months or pay €500/day. That is a court order with a daily penalty, not one of the "€900k–€1M fines" that circulate online — those are statutory maximums, not sums anyone has actually paid.

## Whose job is this?

The people using these tools aren't careless, and the tools aren't malicious. The gap exists because the whole chain optimised for shipping something that looks alive, and nobody in it was ever asked to also let it stop. That includes us: we shipped unguarded motion ourselves before we started measuring it — which is the whole reason we can tell you where to look. Writers like Tatiana Mac ("no-motion-first") and Val Head have been clear for years; the point of this study is to measure the "is," and make the gap legible to people now generating motion who never saw those articles.

## The fix is small

1. Guard non-essential motion with a reduced-motion media query (full walkthrough: https://motionspec.dev/blog/prefers-reduced-motion):

```css
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
```

That's a blunt safety net; a real implementation guards specific animations. 2. Give loops an off switch — an `animation-play-state: paused` tied to a visible button, or a bounded `animation-iteration-count`. That single change is what moves an app out of the 66.3%.

Run the free motion check on any URL → https://motionspec.dev/motion-check — the same static scan, against WCAG 2.2.2 and 2.3.3, every finding with its fix, in about ten seconds. No signup, nothing stored. Static CSS only; a lower bound, not a full audit.

Prefer a citable number? The $29 Motion Report gives your site where its score sits among these 196 apps — PDF, WCAG 2.2.2/2.3.3 citations, fix snippets. See a real one first → https://motionspec.dev/report-example → https://motionspec.dev/pricing#p-report

## How we measured (read before quoting)

This is a static scan of each page's linked CSS and inline style blocks — nothing else. Every number is a lower bound, not a ceiling:

- Runtime JavaScript motion (GSAP, WAAPI, scroll libraries) is not measured. The true rate is very unlikely to be lower than reported.
- One page per app (the public entry page); deeper routes weren't crawled.
- Corpus: 196 apps, 21–45 per cohort, collected 2026-07-16 from official galleries, platform homepages and search-indexed hosting domains; provenance recorded; robots.txt respected; login-walled apps excluded. Showcase corpora over-represent small/demo apps — a named bias.
- Mapping: reduced-motion guards and risky animated properties sit in WCAG 2.3.3 territory; pause paths for infinite/long autoplay motion map to WCAG 2.2.2 (Level A). Neither criterion is fully machine-checkable (essentiality is a human judgment), so these are automatable failure patterns, not a conformance verdict or a legal determination.

Every number is a pure function of published, reproducible rules; the scoring formula ships with every result at motionspec.dev/motion-check. Anonymized per-app dataset (no URLs, no platform names), CC-BY-4.0: https://motionspec.dev/blog/data/state-of-motion-2026.csv

## FAQ

**Are AI-generated websites accessible for motion?** In our sample of 196 AI-generated production apps, 66.3% shipped at least one infinite animation with no way to pause it — a WCAG 2.2.2 Level A failure — and 96.9% shipped some motion with no reduced-motion guard. Only 3.1% came back clean. It's a static lower bound, not a full audit.

**What is WCAG 2.2.2 Pause, Stop, Hide?** A Level A success criterion: any motion that starts automatically, runs more than five seconds, and plays alongside other content must give people a way to pause, stop, or hide it. An infinite loop with no pause control fails it.

**Is missing prefers-reduced-motion a WCAG failure?** Not on its own. It maps to WCAG 2.3.3, a Level AAA criterion scoped to interaction-triggered motion — best practice, not a strict A/AA failure. The hard failure in our data is the 66.3% under 2.2.2 Level A.

**Which AI builders were tested?** Five major AI app-builder platforms, 21–45 apps each, 196 total. We don't name which is which — apps appear only as cohorts A–E. Per-app identities stay private.

**How do you fix unguarded motion?** Wrap non-essential motion in a prefers-reduced-motion media query, and give anything that loops a pause control or a finite end. Both are a few lines of CSS.

## Cite this study

Free to reuse under CC-BY-4.0 with attribution.

APA. Fröba, K. / MotionSpec. (2026). State of Motion in AI-Generated UIs: 196 sites tested for motion accessibility (Motion Accessibility Index #1). https://motionspec.dev/blog/state-of-motion-ai-generated-uis

BibTeX.

```bibtex
@misc{motionspec2026stateofmotion,
  title  = {State of Motion in AI-Generated UIs: 196 Sites Tested for Motion Accessibility},
  author = {Fröba, Kevin and {MotionSpec}},
  year   = {2026},
  note   = {Motion Accessibility Index #1},
  howpublished = {\url{https://motionspec.dev/blog/state-of-motion-ai-generated-uis}}
}
```

Related: prefers-reduced-motion, explained → https://motionspec.dev/blog/prefers-reduced-motion
