Level AARobustNew in 2.1
4.1.3

Status Messages

Messages that appear without moving focus, like 'Added to cart' or '3 results found', must be announced to screen readers too.

In plain English

Lots of things change on a store without the page reloading or focus moving: “Added to cart” pops up, a filter says “12 results”, a form shows “Saved”. A sighted user sees these. A screen-reader user, whose focus did not move, has no idea anything happened, unless you announce it.

The tool for this is a “live region”: a small piece of the page marked so that, whenever its text changes, the screen reader reads it out. No focus change, no interruption, just a quiet confirmation.

Who this is for

  • Screen-reader users, who otherwise miss confirmations, counts, and inline errors entirely.
  • Anyone, who benefits from knowing an action actually worked.

What “good” looks like

Announce updates through a live region.

<!-- Routine update: polite -->
<div role="status">Added to cart</div>

<!-- Urgent (error): assertive -->
<div role="alert">Payment failed. Check your card details.</div>

<!-- Result count that updates as filters change -->
<div role="status" aria-live="polite">12 products</div>

Update the text inside these regions when the event happens, and the screen reader announces it automatically.

Where stores get it wrong

“Added to cart” toasts that only appear visually, filter counts that update silently, and inline form validation that a screen reader never hears. These are easy to miss because everything looks fine on screen; they show up on the common failures list once you test with a screen reader.

How to meet it

Techniques the W3C accepts as sufficient (summarized). Follow a link for the full method.

Frequently asked questions

What does status messages require?+

Success Criterion 4.1.3 (Level AA, added in WCAG 2.1) says status messages that appear without moving keyboard focus, like 'Added to cart', 'Saved', or '5 results found', must be programmatically exposed so assistive tech can announce them without the user having to hunt for them.

How do I make a status message announce itself?+

Put the message in a live region. Use role=status (or aria-live="polite") for routine updates and role=alert (aria-live="assertive") for urgent ones like errors. The region should exist in the page and have its text updated, so screen readers announce the change automatically.

What are common examples on a store?+

'Added to cart' confirmations, 'Item removed', filter result counts ('12 products'), form save confirmations, and inline validation. If these only appear visually, screen-reader users don't know the action worked.

Reference

This is a plain-language explainer. The authoritative source is the W3C Web Content Accessibility Guidelines (WCAG) 2.2.

WCAG 2.2 © W3C. Excerpts are paraphrased; see the linked documents for the normative text.

Not sure if your store passes 4.1.3?

A human auditor checks this and every other criterion against your live store, and documents the result.

Book an audit