01 — Purpose

Announce change without moving focus

Live regions tell screen reader users something changed — validation, async completion, status — without stealing focus.

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

Prefer in-context announcements over corner toasts — see toast notifications for why they are a last resort. See also loading states and confirmation — they often depend on live regions done well.

02 — Principles

Improve awareness, not noise

Live regions should orient users — not overwhelm them with every DOM twitch.

  • announce meaningful state change — not decorative or redundant updates
  • prefer polite unless the user must hear it immediately
  • keep messages short, plain language, and tied to what changed
  • do not duplicate the same announcement from multiple regions

03 — Use cases

When live regions earn their place

Validation, async work, and notifications — not every UI change needs aria-live.

  • form validation summaries and field errors after submit or blur
  • async task completion — save succeeded, upload finished, item removed
  • non-blocking notifications where focus should stay on the current task
  • progress or status text that updates without a dedicated status role elsewhere
<div aria-live="polite" aria-atomic="true">
  <p id="save-status"></p>
</div>

04 — Avoid

Common live region failures

Assertive spam and duplicate regions 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
  • decorative messaging that adds no orientation value
  • nesting live regions or mirroring the same text in focusable elements

05 — Close

Orientation over interruption

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

Test with a screen reader: trigger the update, listen once, and ask whether a non-sighted user would understand the new state. Pair live regions with visible feedback — never rely on aria-live alone for critical errors users must see.

For broader context, see the accessibility standard and screen reader announcements guide.