• 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