01 — Purpose

Announce change without moving focus

Live regions and clear announcements tell screen reader users what changed — validation, async completion, status — without stealing focus or spamming speech.

Sighted users see spinners finish, errors appear, and status text update in place. Screen reader users need an equivalent signal when you cannot or should not move focus to every update.

Prefer in-context feedback over corner toasts — see toast notifications, loading states, and confirmation.

02 — Markup

Live region mechanics

aria-live is the hook — politeness and atomicity control when and how much is read.

  • prefer polite unless the user must hear it immediately
  • aria-atomic="true" when the whole region should read as one update
  • do not duplicate the same announcement from multiple regions
<div aria-live="polite" aria-atomic="true">
  <p id="save-status"></p>
</div>

03 — Messages

What to say — and what to skip

Name the outcome, not the mechanism. One clear sentence beats a paragraph read aloud.

  • “3 results found” after search — not “DOM updated”
  • “Item removed from basket” — not “click handled”
  • errors linked to fields: “Email address is required” — after your focus policy is clear
  • skip filter chip toggles, decorative counts, and re-renders that change nothing meaningful

04 — Use cases

When announcements earn their place

Validation, async work, and non-blocking status — not every DOM twitch.

  • form validation summaries and field errors after submit or blur
  • async completion — save succeeded, upload finished, item removed
  • non-blocking status where focus should stay on the current task

05 — Avoid

Noise and urgency misuse

Assertive spam and vague messages erode trust fast.

  • aria-live="assertive" for routine updates — reserve for urgent errors or safety-critical change
  • announcing on every keystroke, poll tick, or animation frame
  • vague messages: “Success”, “Updated”, “Done” with no subject

06 — Close

Orientation over interruption

A good announcement answers: what changed, and do I need to act?

Test with VoiceOver, NVDA, or TalkBack on critical flows. Pair spoken updates with visible feedback — never rely on aria-live alone for errors users must see.

See accessibility standard and accessibility testing strategy.