Skip to content

Heydon/on-demand-live-region

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

On Demand Live Regions

A tiny module for making screen readers announce text on demand, without a visual change to the interface. Initializing and using the live region is as simple as:

const liveRegion = new OnDemandLiveRegion()

liveRegion.say('Hello World!')

Installation

Just grab the minified version or install from NPM:

npm i on-demand-live-region

Settings object

  • level — the live region level (default: polite)
  • parent — the element to which the live region will be appended (default: body)
  • idPrefix — the prefix for the unique id generated for the live region (default: live-region-)
  • delay — the delay in milliseconds before the phrase is announced (default: 0)

Assertive example with a half second delay

const liveRegionDelayed = new OnDemandLiveRegion({
  level: 'assertive',
  delay: 500
})

liveRegionDelayed.say('Hello World! (sorry, delayed reaction)')

You can override the delay setting in a second argument when calling say:

liveRegionDelayed.say('Hello World! (sorry, delayed reaction)', 1000)

Say it over and over

Each time you use the say method, the extant live region (if it exists) is destroyed and a new one created. This means you can reliably make the same announcement multiple times. This is not guaranteed in other implementations, where a persistent live region is repopulated.

Tested in

  • Safari with VoiceOver
  • Chrome with VoiceOver
  • IE11 with JAWS
  • Chrome with JAWS
  • Firefox with NVDA
  • Chrome with ChromeVox

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published