vocab.design

accessibility

Busy state

also called aria-busy (aria), loading region (community), suppressed announcements (community)

Marking a region as still loading so assistive technology waits for the finished result instead of reading each row as it streams in.

aria-busy="true" says “this part of the page is mid-change, do not read it yet”. Set it before you start writing into a region, remove it when the region is finished, and assistive technology treats everything in between as one edit instead of as a dozen. Without it, a results list that arrives in chunks produces a chunk’s worth of speech each time, and a reader hears three fragments of three different sentences instead of one usable result.

It is the smaller of two settings that shape what a live region says, and the two answer different questions. Atomic decides how much gets re-read when something changes: the changed node alone, or the whole region for context. Busy decides whether it is read yet at all. A region can be atomic and still be useless if it announces four times while it settles, and it can be busy-managed and still be useless if it then reads one number with nothing attached.

The discipline is the same as any flag you have to take back down. Set it on the container you are about to mutate, not on the page. Clear it in the same code path that finishes the update, including the error path, because a region left busy forever is a region that has gone silent: readers will skip it, and no error message you put inside it will ever be spoken. If a request can hang, clear the flag on the timeout as well.

Two things it is not. It is not a substitute for telling the reader that work is happening, which is what a status message or a spinner with an accessible name is for: busy suppresses speech rather than producing it, so on its own it makes a slow load quieter, not clearer. And it is not a way to say a region is stale, unavailable or switched off; those are states of the content, and aria-busy is a state of the writing. Busy means one thing, which is that the markup you are looking at is halfway written.

Which word?

If you wantsay
a region updates in pieces and each piece speaksbusy state
a partial update would be read out of contextatomic live region
choosing whether an update may interrupt speechpoliteness level

Related

See also: Spinner

Sources