- Library
- Communication & Influence
- Cross-Cultural & Inclusive Communication
- Accessibility & A11y Patterns
- ARIA Live Regions
Mental model
ARIA Live Regions
A way to mark changing webpage messages so screen readers can report updates without moving the user's place on the page.
Discover
A shopping site shows 'Added to cart!' on screen, but software that reads the page aloud gives no confirmation. Among these choices, which is the most likely cause to check first?
Check a likely cause of a silent cart confirmation
Learn to expose useful updates and check their announcement behavior.
Understand
Understand
ARIA (Accessible Rich Internet Applications) live regions mark changing areas of a webpage. They let screen readers, software that presents content through speech or braille, report updates such as 'Added to cart!' These announcements can inform users while they stay on the same control. Try this: add an item to a cart and listen for the confirmation with a screen reader.
Full explanation
Full explanation
A live region is an area of a webpage marked in its code, for example with aria-live, so assistive software can detect changes and announce updates. In a hypothetical shopping cart, establish an empty region with aria-live='polite' in the page’s starting code before inserting 'Added to cart!' Give assistive technology time to recognize the region before updating it; creating the region and its message together can be unreliable. This approach assumes support from the browser and screen reader combination [1].
The aria-live attribute requests announcement priority. 'polite' generally allows updates when the user is idle; 'assertive' requests urgent delivery and may interrupt speech. Reserve assertive for critical, time-sensitive information. Exact timing and interruption behavior vary across browser and screen reader combinations. 'off' does not mean never announced: updates are intended to be announced when focus, the current point of interaction, is on or inside the region [1].
The aria-atomic attribute controls whether an update should present the whole region or just changed content. Suppose a cart displays 'Cart: 2 items' and only the number changes to 3. A fragment announcement of '3' could lack context; aria-atomic='true' requests the complete 'Cart: 3 items' message. Use this when surrounding text is needed, rather than treating it as universally best for every form error [1] [2].
The aria-relevant attribute selects relevant change types: additions, removals, or text changes. Its default includes additions and text changes. For example, a chat participant list can include removals when departures matter. Leaving aria-atomic='false' can allow individual participant changes to be announced without requesting the entire list each time [1].
The Web Content Accessibility Guidelines (WCAG) criterion 4.1.3 concerns status messages: information about results, waiting, progress, or errors that does not change the user's context. A search result count can qualify, while the results list itself does not. An error dialog that takes focus is outside this criterion's status-message scope. The criterion does not require an announcement for every visual update [2].
A routine 'Balance updated' confirmation suits polite priority. An error appearing after a failed form submission can also be exposed as a status message while focus stays on Submit; choose urgency according to the situation. Keep announcements concise and avoid excessive repetition. Test realistic interactions with the browser and screen reader combinations your audience uses, including relevant mobile combinations, and use user testing to assess whether feedback is sufficient or too frequent [1] [2].
Research
Research
These two documents provide technical guidance, not experimental findings or measured improvements.
- Technical guidance: MDN recommends establishing a live region before changing its content, preferably by including the region in the initial markup. It also notes that behavior varies across browser and assistive technology combinations [1]
- Technical guidance: W3C limits criterion 4.1.3 to status messages that do not change context. It distinguishes a search result count from the results themselves and recommends user testing to avoid excessive feedback when applying live regions more broadly [2]
- Technical guidance: MDN explains that aria-atomic='true' requests the whole region when only part changes. W3C's cart example illustrates why announcing a changed number alone may omit useful context; neither document establishes that whole-region announcements are best for every error message [1] [2]
Limitations
Limitations
Announcement priority expresses intended behavior, so exact timing and speech interruption should not be assumed across browser and screen reader combinations. Live-region announcements are typically plain text; links and buttons within an updated region may not have their interactive meaning conveyed by the announcement itself [1]. Test the actual update sequence, message context, focused-region behavior, and supported browser and screen reader combinations. W3C also recommends user testing to assess whether feedback becomes too frequent [2].
Try it
Synthesize
Choose a pattern from the guide, then pick an action to try with it.
Which pattern stands out?
What will you try?
Choose a pattern above to select an action.
Sources
Sources
- [1] ARIA live regionsMDN contributors
- [2] Status MessagesW3C Web Accessibility Initiative
Try it
Check your understanding
A banking app displays a routine 'Balance updated' confirmation while focus stays on the current control. Which aria-live setting best fits this non-urgent status message?
Show the guide's explanation
Answer: aria-live='polite'
Polite priority fits a useful, non-urgent confirmation. It generally allows delivery when the user is idle, although exact announcement timing depends on the browser and screen reader.
An existing live region displays 'Cart: 2 items'. Only the number changes to 3. Which setting requests the full 'Cart: 3 items' message rather than just the changed number?
Show the guide's explanation
Answer: Set aria-atomic='true' on the live region
The true setting requests presentation of the whole region. Here, 'Cart: 3 items' supplies context that '3' alone could lack. This is a reason to use it for this partial update, not a rule that it is best for every form error.
A form submission fails, and focus remains on the Submit button. Which option is the relevant content to expose as an error status message?
Show the guide's explanation
Answer: An error message that appears when form submission fails
The newly appearing submission error communicates the result of the action without moving focus, so it fits the status-message scope. Expose it through an appropriate role or live-region property, and choose priority according to its urgency.
Keep exploring
Find another idea for the decision in front of you.
The complete Reframo library is free to read. Explore another guide whenever you are ready.