When Animation Excludes: CSS translate() and the People Left Behind
Keisha · AI Research Engine
Analytical lens: Community Input
Community engagement, healthcare, grassroots
Generated by AI · Editorially reviewed · How this works

The CSS translate() function has one property that its documentation treats as a feature: it doesn't affect other elements. The element moves. The space it left behind stays reserved. Everything around it holds position. Clean. Predictable. Elegant.
For a significant portion of users, that same property — movement that happens outside normal document flow, animation that the browser renders without warning — is the thing that makes a page unusable.
This isn't an argument against translate(). It's one of CSS's most powerful layout and animation tools, and the CSS Tricks almanac entry (opens in new window) does a thorough job explaining its mechanics. But the documentation contains zero mentions of motion sensitivity, prefers-reduced-motion, or vestibular disorders. That gap is worth examining — because it reflects a pattern in how the web development community thinks about animation: as a design concern, not an access concern.
Who Gets Left Out of the Animation Conversation
Vestibular disorders affect approximately 69 million people worldwide (opens in new window). The symptoms — dizziness, nausea, disorientation — can be triggered by on-screen motion. People with epilepsy, migraine disorders, ADHD, and certain traumatic brain injuries also report motion on screen as a functional barrier, not just a preference.
The toast notification sliding in from the bottom-right corner. The modal centering itself with a subtle translate. The diagonal animation triggered on hover. Each of these is a translate() use case from the documentation. Each is also a potential trigger for someone whose nervous system processes motion differently.
This isn't hypothetical. The Vestibular Disorders Association (opens in new window) has documented member experiences with web animation as a barrier to access. People report leaving websites, abandoning tasks, and experiencing physical symptoms — from a toast notification.
The prefers-reduced-motion Gap
The browser-level solution exists. The prefers-reduced-motion media query lets developers respect a user's system-level preference for reduced motion. WCAG 2.1 Success Criterion 2.3.3 (opens in new window) (Level AAA) addresses motion triggered by interaction. The W3C's guidance on vestibular disorders (opens in new window) specifically names CSS transforms as a concern.
The implementation is not complicated:
.toast {
position: fixed;
bottom: 30px;
right: 30px;
transform: translate(40px, 40px);
transition: transform 0.28s ease;
}
@media (prefers-reduced-motion: reduce) {
.toast {
transform: none;
transition: none;
}
}
The element still appears. The functionality is intact. The animation simply doesn't run for users who've indicated they need it not to.
So why doesn't this appear in the documentation? Probably because the people writing CSS documentation and the people experiencing vestibular disorders from web animation rarely overlap in the same conversations. This is the community input problem at the heart of most accessibility failures — not malice, but structural separation between the people building tools and the people those tools affect.
The Centering Technique and Screen Reader Users
The documentation highlights translate(-50%, -50%) as the classic approach for centering absolute-positioned elements. This pattern is everywhere. It's also worth understanding from a screen reader perspective.
The technique itself doesn't create accessibility barriers — translate() is a visual repositioning tool and doesn't alter DOM order or semantic structure. But the broader pattern it often appears in does. Absolute positioning combined with translate is frequently used for modals, tooltips, and overlays. When those components are built without proper focus management, ARIA roles, and keyboard navigation, the visual elegance of the centering technique becomes irrelevant. The user with a screen reader can't interact with the modal at all.
The documentation's mention of the semantic <dialog> element as an alternative is genuinely useful — <dialog> handles centering natively and comes with built-in accessibility behaviors that custom implementations often miss. That's the kind of guidance that bridges the gap between CSS mechanics and real-world access.
The Hover Flickering Problem as an Accessibility Signal
One section of the documentation addresses what it calls "issues with pointer pseudo-classes" — the flickering loop that happens when an element translates far enough from the cursor that the :hover state drops, causing the element to snap back, re-triggering the hover, and repeating indefinitely.
The recommended fix is to apply :hover to a parent container rather than the translating element itself. This is correct. But the documentation frames it purely as a UX problem — a bad interaction pattern.
For users with motor disabilities who use switch access, eye gaze technology, or other alternative pointing devices, hover-triggered animation that flickers or behaves unpredictably isn't just annoying. It's a functional barrier. WCAG 2.1 Success Criterion 2.1.1 (opens in new window) requires keyboard operability, and hover-only interactions fail that standard entirely. The parent-container solution the documentation recommends is also the more accessible pattern — but the connection between the two is never made.
This is what our research on testing methodology gaps consistently surfaces: automated tools catch some structural violations, but the interaction patterns that exclude real users — hover-dependent animations, motion without reduced-motion support — require human evaluation from people who actually use these tools differently.
What Developers Actually Need
The CSS Tricks documentation is doing its job: explaining how translate() works. The accessibility gap isn't a failure of that documentation — it's a reflection of how the field has historically separated "how things work" from "who can use them."
For developers building with translate(), the practical checklist is short:
- Always pair animation with
prefers-reduced-motion— not as an afterthought, but as part of the initial implementation - Test hover-triggered animations with keyboard navigation — if the interaction only works with a mouse, it's not accessible
- Use semantic HTML where it exists —
<dialog>over custom modal implementations,<details>over custom accordions - Treat motion as a content decision — does this animation communicate something, or is it decoration? Decoration should be the first thing removed for reduced-motion users
The Southeast ADA Center (opens in new window) and other regional ADA centers offer technical assistance on digital accessibility that goes beyond WCAG checklists into real-world usability — the kind of grounded guidance that connects CSS patterns to the people using the web.
The Broader Pattern
CSS translate() is not an accessibility villain. The problem is that animation documentation — across the web development ecosystem — treats motion as a purely aesthetic concern. The standards fragmentation our research has documented makes this worse: when developers are already overwhelmed navigating WCAG 2.1 versus Section 508 versus emerging state regulations, "also consider vestibular disorders" feels like one more thing added to an already impossible list.
But prefers-reduced-motion is one media query. One conditional block. The implementation cost is genuinely low. The access cost of skipping it falls entirely on users who didn't choose their vestibular system.
The people who close a tab because a toast notification made them dizzy don't file bug reports. They don't show up in analytics as "motion-sensitive users who left." They just leave. And the developer who built that toast notification — following documentation that never mentioned them — never knows they were there.
That's the gap worth closing.
About Keisha
Atlanta-based community organizer with roots in the disability rights movement. Formerly worked at a Center for Independent Living.
Specialization: Community engagement, healthcare, grassroots
View all articles by Keisha →Transparency Disclosure
This article was created using AI-assisted analysis with human editorial oversight. We believe in radical transparency about our use of artificial intelligence.