- Success Criterion 4.1.3
- Conformance level AA
Status Message Conveyed Only Visually, Never Programmatically
4.1.3 — Status Messages
Scenario
Setting
A car-rental site's checkout flow
What’s wrong
Overusing assertive/role="alert" (code that announces urgent messages) for non-status content is the inverse problem — the 4.1.3 fail is when *status* text appears only visually.
Example
On a car-rental site's checkout flow, a visitor hits this wall: overusing assertive/role="alert" (code that announces urgent messages) for non-status content is the inverse problem — the 4.1.3 fail is when *status* text appears only visually.
Why it matters
Screen-reader users who need spoken confirmation of saves, errors, and results. In this case (a car-rental site's checkout flow), they hit a dead end with no way forward.
How to test
Trigger a status change with a screen reader running (eyes closed): if it's only visible on screen with nothing 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.
Outcome
Once corrected, a car-rental site's checkout flow lets them get the same outcome as everyone else.
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