aria-live politeness
The polite or assertive setting that decides whether a screen reader waits for a pause or interrupts to announce an update.
See it
What it is
ARIA live politeness is the priority assigned to a live update. aria-live='polite' waits for a suitable pause before announcing changed text. aria-live='assertive' asks the screen reader to announce it immediately and may interrupt speech already in progress.
Polite is the default for status messages such as saved confirmations, search result counts, and upload progress. Reserve assertive for urgent information that blocks or endangers the current task, such as an expiring session or a payment failure. role='status' carries an implicit polite setting, while role='alert' carries an implicit assertive one.
Assertive does not make a message more accessible just by making it louder. Frequent interruptions can erase queued speech and prevent the user from finishing anything. Also, live regions announce changes, not ordinary initial content, so mount the region before inserting the message. That single rule is why component libraries mount one empty status region at the app root and rewrite its text, rather than rendering a fresh live region per toast.
Ask AI for it
Route dynamic messages through two persistent ARIA live regions. Use role='status' with aria-live='polite' and aria-atomic='true' for saved confirmations, result counts, and progress updates. Use role='alert' with aria-live='assertive' only for blocking failures or an expiring session. Mount both empty regions when the app loads, then replace their text when a message occurs instead of mounting a new region. Do not move focus for a status message, do not announce every keystroke, and add a manual test script for NVDA with Firefox that checks message order without claiming exact spoken wording.