- Success Criterion 2.2.2
- Conformance level A
- W3C reference F50
Script-Driven Blinking Content With No Way to Stop It
2.2.2 — Pause, Stop, Hide
Scenario
Setting
A food delivery app's restaurant menu
What’s wrong
A script makes content blink continuously and nothing stops it within 5 seconds.
Example
setInterval(() => {
label.style.visibility = label.style.visibility === "hidden" ? "visible" : "hidden";
}, 400); Why it matters
A diner scanning the menu for dietary info is distracted by a label blinking on every dish, every visit.
How to test
Time any script-driven blinking effect: if it doesn't stop within 5 seconds and there's no stop control, it fails.
How to fix
A steady label draws attention just as well without repeating forever.
<span class="popular-label">Popular</span>
<!-- remove the setInterval visibility toggle --> Outcome
A diner reads through the full menu without a blinking label competing for their attention.
Who is affected
Users with cognitive disabilities or migraines find the unstoppable blinking hard to tolerate while ordering.
Learn more
- Understanding Understanding document (opens in a new tab)
- Technique Related technique (opens in a new tab)
Related scenarios
- Auto-Scrolling Ticker or Slider With No Pause Button
- Embedded Animation That Blinks for Over 5 Seconds Nonstop
- Content That Blinks Past 5 Seconds With No Stop Control
- Auto-Rotating Carousel Running Past 5 Seconds With No Pause
- Autoplaying Background Video With No Way to Pause It
- Looping Animated GIF With No Way to Freeze It