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. It should be used with caution because it disrupts the user's flow. Use it only to send messages that require immediate attention, such as errors.
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