Skip to main content
WCAGrules
Quick navigation

Glossary · Accessibility term

Live region

A live region is a part of the page marked so that assistive technology announces changes to it without the user having to go and look. A cart total updating, a save confirmation, a search count, a validation error appearing. Without one, all of that is silent, and somebody who cannot see the page clicks, hears nothing, and has no way to know whether it worked. The mechanical detail that decides whether yours works is the word changes. Assistive technology conveys changes to a live region rather than whatever was in it when the region first rendered, so the container has to exist on the page before the message arrives in it. Inject a fresh div with the message already inside and usually nothing is announced. The alert role is the deliberate exception, because ARIA asks the browser to raise a system alert event when one is created. Everything else is why so many developers decide live regions are unreliable, when what really happened is that the region and its content turned up together.

In practice

Polite is nearly always the right setting. It waits for a gap, such as the end of the sentence being spoken, and it does not throw anybody off what they were doing. Assertive asks for immediate notification, and the specification tells authors not to use it unless interrupting is imperative, because an interruption can disorient somebody or stop them completing a task. There is a harder consequence too. An assertive announcement can clear the queue, so the polite messages somebody was waiting to hear are destroyed by the urgent one. Note the word asks. ARIA calls politeness a strong suggestion rather than a command, and says in terms that a user agent, an assistive technology or the user can override what you set.

The roles are shorthands with extra behaviour attached rather than plain aliases. A status region is polite and also atomic by default, so the whole region gets read on every change, where a bare polite div reads only the part that changed. That is the difference between hearing 3 items in cart and hearing 3. An alert region is assertive and atomic, and it is the one exception to the timing rule, because it announces when it is rendered as well as when it changes.

Restraint is a real requirement here and there is a rule shaped like it. Announcing something and also moving focus to it announces the same thing twice, because moving focus is a change of context and sits outside the status message rule entirely. Pick one route per message. The boundary is narrower than people assume as well, since a list of search results is not a status message while the words 18 results returned are.

Why it matters

Dynamic pages are where accessibility quietly stops working, because everything that used to be a page load is now a silent repaint. The rule covering this is Level AA and it exists for exactly that reason. It is also the joint between accessibility and the rest of your product. The same missing announcement that fails an audit is why somebody adds one item to their cart three times. The failure mode in the other direction is just as real. A page that announces every hover, every scroll and every re-render buries the one message that mattered, and the reader's only way out is to turn something off and lose the rest with it. Announce once, and mean it.

The bug that makes people give up on live regions

A developer writes a search that inserts a div carrying an aria-live attribute and the words 3 results found, tests it with a screen reader, hears silence, and concludes the feature does not work. It works. The region has to be on the page first, and the words have to arrive into it afterwards. Two lines in a different order, and the same code starts speaking.

Where this shows up on the site

Related terms

Knowing the word is the easy part.

Find out where your own site stands. The free scan checks 10 pages in a real browser against all 90 supported automated rules, separates 27 best-practice checks from its WCAG findings, and names the rule behind every result.

Run the free scan

Go somewhere useful

Find tools, resources and your workspace.

29 destinations