sr-speak
provides utilities that utilises ARIA live regions to help screen reader users hear updates happened on the page.
npm install sr-speak
Aria live regions need to be inside the DOM for Screen Readers to accurately monitor changes to its content.
import { setupSpeaker } from "sr-speak";
// call setupSpeak on page load
setupSpeaker();
You only need to do this once per page load, in the case of a SPA app, call this once in your app initialisation.
import { speak } from "sr-speak";
// ...
// (e.g. when user clicks Search button)
speak("Searching..."); // default politeness is 'polite'
// (e.g. error occurred)
speak("You shall not pass", "assertive");
When setupSpeaker
is called, 2 visually hidden elements are created and appended to the body element. These 2 elements are the live regions, one for polite
messages and the other one for assertive
messages.
by default, when you call the speak
function, the aria-live="polite"
content is updated, you can choose to update the aria-live="assertive"
live region by specifying the politeness in the second parameter. e.g. speak('Important message', 'assertive')