- Success Criterion 4.1.3
- Conformance level AA
Countdown Timer Update Shown Visually but Never Announced
4.1.3 — Status Messages
Scenario
Setting
A budget airline's flight search results
What’s wrong
Countdown/timer status text (resend-one-time password (OTP) timers, session countdowns) updating visually only.
Example
<div id="cart-status">Item added</div> <!-- silent DOM update --> Why it matters
Screen-reader users who need spoken confirmation of saves, errors, and results.
How to test
Watch a countdown/timer (e.g., resend-OTP, session countdown) with a screen reader running: if the changing time isn't announced, it fails.
How to fix
The status text must be wired as a live region (code that makes screen readers announce updates)/status role so screen readers announce it automatically without moving focus.
<div id="cart-status" role="status" aria-live="polite">Item added</div>role="status" with aria-live announces the update to screen reader users without moving their focus.
Outcome
On a budget airline's flight search results, this barrier is gone for screen-reader users who need spoken confirmation of saves, errors — they no longer have to work around this.
Who is affected
Screen-reader users who need spoken confirmation of saves, errors, and results.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Status Update Shown Visually but Never Wired for Screen Readers
- Cart Confirmation Toast With No Live Region Announcement
- Search Result Count That Updates Silently on Every Filter
- Autosave ‘Saved’ Indicator With No Live Announcement
- Loading Spinner With No Programmatic Busy or Status State
- Error Toast With No Alert Role and No Focus Movement