Skip to main content
Perceivly: Perceivly home

4.1.3 Status Messages

Level AA · added in WCAG 2.1

Status messages must be marked up so assistive technology can announce them without moving focus to them. A status message tells users about success, results, waiting, progress or errors, and does not change the context.

Who it helps

Screen reader users do not see text that appears elsewhere on the page, such as "Item added to cart" or "No results found". Without a live region they never learn the action worked. Screen magnifier users who see only part of the screen benefit when their software can announce it.

How to meet it

Examples

Fails:A confirmation appears in a plain div that screen readers do not announce
<button type="button" onclick="document.getElementById('msg').textContent = 'Added to cart'">
  Add to cart
</button>
<div id="msg"></div>
Fails:A result count updates with no live region
<label for="q">Search products</label>
<input id="q" type="search">
<p id="count">24 results</p>
Passes:The message goes into an existing role="status" region
<button type="button" onclick="document.getElementById('msg').textContent = 'Added to cart'">
  Add to cart
</button>
<div id="msg" role="status"></div>
Passes:The result count is a polite live region, and focus stays in the search field
<label for="q">Search products</label>
<input id="q" type="search">
<p id="count" role="status">24 results</p>

Can a scanner detect this?

No

axe-core has no rule for this criterion. It checks that ARIA live attributes are valid, but it cannot tell which text changes are status messages. A person must trigger each message and confirm a screen reader announces it without focus moving.

No automated rule tests this criterion. Check it by hand.

Common mistakes

Official W3C explanation of 4.1.3

Check your own page

See which automated WCAG checks your page fails, with the failing elements and how to fix them.

Enter a page address, for example example.com/shop.

Reviewed November 2, 2026