fix(accessibility): honor reduced motion#230
Conversation
|
Reviewed locally on The thing that could have broken, and doesn't
One real trade-off: the status dot loses a distinctionI initially assumed the pulse was redundant encoding (color + ring + tooltip all carry the state anyway). That's not right, and it's the one thing here I'd want a deliberate call on.
Two collisions that are reachable and fully identical once the pulse is gone — same color, same ring, same tooltip:
(There's a third, The important state survives: I don't think this blocks the PR — shedding motion-encoded nuance is arguably what the user asked for by setting the preference. But it's worth being explicit about, and it interacts with the spinner decision below. Consistency question: spinners vs. this dotThe PR notes functional spinners stay unchanged, which is defensible on its own — But that's the same argument that applies to
|
|
Addressed the review points in
Validation: |
Summary
!importantfor inline animationsFunctional loading spinners remain animated because rotation is the loading signal in icon-only states; status dots now have a non-motion fallback.
Validation
npx vitest run src/lib/reduced-motion-styles.test.tsnpm test(1,573 passed, 23 skipped)npm run checknpm run check:staticAddresses the reduced-motion item in #211.