Accessibility Certified – Home

4.1.3 Status Messages

Status messages such as "Added to cart" or "5 results found" are announced by screen readers without moving the focus.

Level AAPrinciple 4: Robust

What does it mean?

A status message tells users about the result of an action, progress, waiting or an error, without changing context. Examples are "Message sent", "Item added to cart", "Loading…" or "12 results". Sighted users see them, but screen reader users only hear them if they are marked in code.

The message must be placed in an element with a suitable role or live region, such as role="status", role="alert" or aria-live, so assistive technology announces it while the focus stays where it is. If focus is moved to the message, or the message opens in a new context, this criterion does not apply.

Who does it help?

  • Screen reader users, who otherwise do not notice that something has changed
  • People with low vision using magnification, who may not see a message elsewhere on the screen
  • People with cognitive disabilities, who benefit from clear feedback

Common failures

  • A "Product added to cart" message appears visually but is not announced
  • A search filter updates the result count silently
  • Form errors after sending are shown at the top but neither announced nor focused

How we test it

  • people only Manual only: nothing useful can be measured. The reviewer tests it directly.

Test question: Status messages (added to cart, form sent, search results) are announced by screen readers without focus moving.

A person decides every criterion. No criterion ever passes automatically.

How to fix it

Problem
<div id="cart-msg"></div>
<script type="module">
  document.getElementById('cart-msg').textContent = 'Added to cart';
</script>
Better
<div id="cart-msg" role="status"></div>
<script type="module">
  // the live region exists before the text changes
  document.getElementById('cart-msg').textContent = 'Added to cart';
</script>

role="status" makes screen readers announce the new text politely without moving focus.

Practical tips

  • Put the empty live region in the HTML when the page loads; regions added together with their text are often not announced.
  • Use role="alert" only for urgent messages, as it interrupts the user.

Guides and patterns on this

Official source

Understanding WCAG 2.2 at the W3C: 4.1.3 Status Messages

How does your website do on this criterion?

The free check tests your home page automatically; the audit decides all 55 criteria.

Free checkAll criteria