- Success Criterion 2.3.1
- Conformance level A
Loading Spinner Built as a Rapid Full-Screen Flicker
2.3.1 — Three Flashes or Below Threshold
Scenario
Setting
A news outlet's article page
What’s wrong
Loading spinners implemented as full-region white/dark flicker.
Example
setInterval(() => {
article.style.filter = article.style.filter ? "" : "invert(1)";
}, 120); // used as the loading indicator Why it matters
A reader waiting for an article to load faces a rapid invert flicker across the whole visible article region.
How to test
Review full-region loading spinners/flicker effects with PEAT: white/dark flicker patterns above threshold fail.
How to fix
A skeleton layout or slow fade-in loads content without any screen flicker.
<div class="skeleton-article" aria-hidden="true"></div>
<!-- remove the invert-filter setInterval --> Outcome
A reader waits through a calm loading state and reads the article without any screen flicker.
Who is affected
Readers with photosensitive epilepsy risk a seizure from a full-region flicker used only as a loading indicator.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Content Flashing Faster Than 3 Times per Second
- Strobe Intro or Glitch Effect Above the Flash Threshold
- Unedited Video With Strobe or Lightning Effects
- Rapid Full-Screen Color Flash on Load or Error
- Ad or User-Generated Content Never Screened for Flashing
- Rapid Hover Effect That Flashes When a Key Autorepeats