- Success Criterion 4.1.3
- Conformance level AA
- W3C reference F103
Status Update Shown Visually but Never Wired for Screen Readers
4.1.3 — Status Messages
Scenario
Setting
A news outlet's article page
What’s wrong
Status updates ('Saved', 'Loading', '5 results') appear on screen but aren't wired as status messages — screen readers stay silent.
Example
<button onclick="saveArticle()">Save for later</button>
<span id="saveStatus"></span>
// JS: function saveArticle() { saveStatus.textContent = 'Saved to your reading list'; }
<!-- the span updates visually but has no role="status" or aria-live, so screen readers never announce it --> Why it matters
A reader using a screen reader taps "Save for later" and gets no confirmation, so they may tap it repeatedly.
How to test
Trigger a status update (save, search, error) and check DevTools: if there's no role="status"/aria-live region wired to it, it won't be announced automatically.
How to fix
Add role="status", or aria-live="polite", to any element that receives confirmation text after an action.
<button onclick="saveArticle()">Save for later</button>
<span id="saveStatus" role="status" aria-live="polite"></span> Outcome
A reader hears "Saved to your reading list" right after tapping the button.
Who is affected
Screen reader users saving articles for later cannot tell whether the save actually succeeded.
Learn more
- Understanding Understanding document (opens in a new tab)
- Technique Related technique (opens in a new tab)
Related scenarios
- 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
- Live Region Whose Content Loads Before It’s Ready to Announce