Overview
A composable that offers sendPoliteMessage
and
sendAssertiveMessage
functions that send polite and assertive messages to their
corresponding
ARIA live regions.
When to use live regions
Before sending messages to live regions, always research carefully if you really need it for the task ahead. Live regions can be buggy and inconsistent. There are often better alternatives, such as utilizing WAI-ARIA attributes. A good rule of thumb is to use live regions only when there's no other way.
Usage
Since polite and assertive regions are inserted to an application's document body
automatically
during the KDS installation process
, the only thing you need to do to deliver messages is to import and call
sendPoliteMessage
or sendAssertiveMessage
from any place in your
application.
These two methods are also used internally from some KDS components to provide a11y out of the box. Always check that you don't send messages to announce updates that are already being announced from KDS to prevent from duplicate announcements.
Polite message
Sending a polite message updates the text content of aria-live="polite"
region.
Use it to send messages that can wait to be announced until the user is idle. This
message should typically be the most commonly used.
Send polite messages with sendPoliteMessage(message)
:
import useKLiveRegion from 'kolibri-design-system/lib/composables/useKLiveRegion';
export default {
setup() {
const { sendPoliteMessage } = useKLiveRegion();
sendPoliteMessage('Polite message');
}
};
Assertive message
Sending an assertive message updates the text content of
aria-live="assertive"
region.
Use this only for messages that require immediate attention, such as critical errors or
messages, as it interrupts the user's current activity.
For errors or updates that need immediate user action, make sure that related elements (e.g., buttons) are in focus right after the message has been read by the screen reader, so users can act on them.
Send assertive messages with sendAssertiveMessage(message)
:
import useKLiveRegion from 'kolibri-design-system/lib/composables/useKLiveRegion';
export default {
setup() {
const { sendAssertiveMessage } = useKLiveRegion();
sendPoliteMessage('Assertive message');
}
};
Demo
Send messages below and turn on your screen reader. You could also observe the content of
<div id="k-live-region">
in the browser console, but note that an
announcement will be visible for just a very brief moment.
Related
- KDS installation step that attaches live regions to an application's document body