Skip to content
easeweb
Search topics

Status messages that are shown but never announced

A "Draft saved" toast is created together with its message, so the browser never sees a change to announce, even with aria-live on it.

WCAG 2.2
SC 4.1.3AA· new in 2.1
Required by
EN 301 549 (EU)
Broken
Shown. Never heard.
The accessibility problem illustrated.
01

The problem

Screen reader users don't hear that their work was saved, or that saving failed, because the message appears without ever being announced.

02

Try it

Type in the note, stop, and listen.

The panel shows what a screen reader announces when the draft is saved. Is "Draft saved" ever heard?

Broken Can you fix this?

Screen reader says: (Type in the note, then stop)

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Change the text of a status region that was on the page before the message.

  1. 1Render the status region, or the toast container, empty with the page; change only its contents.
  2. 2Use role="status" for routine news; keep focus where the person is working.
  3. 3Put the result in words, including when saving fails.
Before A toast created with its own aria-live
<label for="note">Note</label><textarea id="note"></textarea>
After

A status line beside the editor

<label for="note">Note</label><textarea id="note"></textarea><p id="note-status" role="status"></p>

Fixing this with an AI coding assistant? Get this guide as Markdown

04

Verify the fix

4 checks, no mouse.

Test with: Screen reader, Keyboard, Zoom

0 of 4 checked

Record the OS, browser and assistive-technology versions, the build, the date, and the actual result of each step. Repeat after the toast component or the page layout changes.

Limits

Live regions behave differently across screen readers and browsers, especially for regions that are moved, hidden or inside dialogs. This pattern covers one kind of message on one page. Loading, search results, form results and urgent alerts are topics of their own. Test your real messages with the screen readers your users use.

This is a recreated teaching example, not a finding about a named client. The code is a starting pattern: test it in your own product. No completed assistive-technology test is claimed here.

Keep this fixed as your code changes.

Turn guides like this into rules your coding agents and CI follow, then have the result retested with a keyboard and screen readers.

How retests work