Flashing at the wrong frequency and contrast can trigger seizures, not just mild discomfort
Aliases: photosensitive epilepsy · flashing threshold
What it is
Animation accessibility has a safety red line: flashing at specific frequencies and contrasts can provoke photosensitive epilepsy seizures, and can cause dizziness, headaches, and discomfort in the broader population. This is a health-safety issue, not merely comfort—WCAG defines quantified flashing thresholds (more than three general flashes per second, and large-area red alternation, are high risk), and elements exceeding them constitute accessibility failure. High-risk data-visualization scenarios include rapidly flashing alert states, large high-contrast pulses, fast-rotating carousels, and strobe-like effects.
Why it happens
The harm mechanism is the neural amplification of the visual system: high-contrast, large-area flashing in a specific frequency band (roughly 3-30 Hz, varying by individual) couples with the brain's neural oscillations and triggers abnormal cortical discharge in people with photosensitive epilepsy; in non-epileptic users, large regular motion can cause visual-vestibular conflict presenting as motion sickness. WCAG 2.3.1 (three flashes or below threshold) gives an operable design boundary: no more than three general flashes per second, or a sufficiently small flashing area, or sufficiently low contrast. The applied point for data visualization: dangerous motion usually comes from well-intentioned "attention-grabbing" design—the flashing red alert is the classic case. Legitimate alternatives achieve the same attention guidance without crossing the line: gentle pulses below the frequency threshold, static highlights (color + icon + text), or optional sound cues. The check is quantifiable: count state changes per unit time and the flashing area/contrast for each animation, and judge against the thresholds.
Where it stops holding
The threshold applies to "general flashes" (large luminance or color alternation), distinct from relative motion (translation, scaling): the latter sits outside the photosensitive core band but large full-screen motion still risks discomfort, forming a separate comfort-tier recommendation. Red-gray alternation (red as specifically called out in WCAG) is riskier than equal-luminance non-red alternation; any large-area red strobing should be avoided in design. Vestibular-disordered users are far more motion-sensitive than general thresholds imply—motion that never approaches seizure thresholds (parallax scrolling, auto-parallax) can still cause strong discomfort, which is why the reduced-motion preference exists (the same group's topic): the flashing threshold is the safety floor, reduced motion is the comfort ceiling, and together they bracket motion design.
Applying it
- Audit all animations: count flashes per second, flashing area, and contrast; any case exceeding three general flashes per second or large-area red alternation requires remediation.
- Replace attention-grabbing alerts with static highlights (color + icon + text) or sub-threshold gentle pulses—no high-frequency flashing.
- Add "flash safety" as a mandatory item in motion-design review before launch.
- Verification: use a photosensitivity evaluation tool (PEAT-class) or manual frequency counting to verify alert-type animations; over-threshold means fail.
Related
- Same group: U11.03.1 Auto-playing animations must be pausable and support frame stepping · U11.03.2 States existing only during playback need static equivalents · U11.03.4 Transition animations must respect the system's reduced-motion preference · U11.03.5 Too-short animation duration leaves intermediate states unreadable
- Nearby: U7.04.4 Too many alerts train users to ignore alerts · U11.03.4 Transition animations must respect the system's reduced-motion preference
- Search terms:
photosensitive epilepsy·WCAG flashing·seizure threshold
Cards in the same group
- U11.03.1An animated chart that can't be paused or stepped forces every viewer to keep pace with its own clock
- U11.03.2A state that exists only in a passing frame of animation needs a static form for anyone who couldn't watch
- U11.03.4A chart's transition animation should back off when the operating system's reduced-motion setting is on
- U11.03.5An animation that runs in 300 milliseconds flashes past every intermediate year unseen