The brief is where a11y decisions are made
Most accessibility work happens after generation — an audit finds the failures and a human fixes them. But motion is different: the reduced experience is a *design*, and designs are made in the brief. A prompt that says 'add a reduced-motion fallback' produces a delete-everything blanket rule. A prompt that specifies the reduced branch produces a second experience — and the run logs show the difference is entirely in how the constraint is phrased.
- Require the branch, not the switch: 'the spec must include a @media (prefers-reduced-motion: reduce) branch that keeps state changes visible via opacity and colour, and removes travel, scale and parallax' — naming what survives is what makes it a design.
- Ban the blanket: 'no universal animation-duration: .01ms reset' — that reset is the delete-everything move, and it also kills the honest 200ms fades that carry state.
- Name the motion budget: 'maximum three animated elements per screen; everything else is static by default' — a budget prevents the generated page from animating everything it can.
- Ask for the audit note: 'include a short note on which animations were kept in the reduced branch and why' — forcing the explanation produces better decisions than the motion itself.
Motion spec (in the brief):
- hero: one slow drift, 18s cycle, transform-only
- cards: stagger entrance, 60ms apart, opacity + 6px rise
- reduced branch (required):
drift removed entirely
card entrance = opacity fade 250ms only, no travel
progress bar keeps its fill transition (200ms)
- note: name every motion kept in the reduced branch.The payoff
A brief with a specified reduced branch produces a page that passes a reduced-motion audit on the first run — no retrofitting, no blanket reset arguing with the design system later. The reduced experience stops being the thing an auditor deletes and becomes the thing a designer specified. That is the difference between prompting for compliance and prompting for craft.