Reference
Every option the a11y plugin accepts.
Enabling the plugin
format:
revealjs:
revealjs-plugins:
- a11y
revealjs-a11y:
high-contrast: falseOptions sit under revealjs-a11y, inside the revealjs format.
Options
| Option | Default | Description |
|---|---|---|
skip-navigation |
true |
A skip link for keyboard users. |
focus-indicators |
true |
Enhanced visible focus rings. |
viewport-zoom |
true |
Overrides RevealJS’s viewport meta so the deck can be zoomed, as WCAG 1.4.4 requires. |
reduced-motion |
true |
Disables transitions for readers who ask for reduced motion. |
high-contrast |
false |
Starts in high contrast. Togglable from the menu regardless. |
font-size-controls |
true |
Font size by keyboard and menu. |
font-selection |
true |
Font family choice from the menu. |
font-families |
seven built-in families | The families to cycle through, each with name, value, and an optional url. Replaces the built-in list rather than adding to it. |
text-spacing |
true |
Line height, letter spacing, and word spacing controls. |
link-highlight |
true |
Underlines links, so colour is not the only cue. |
slide-landmarks |
true |
ARIA landmark roles and labels on slides. |
alt-text-warnings |
false |
Highlights images with no alt text, for authoring. |
announce-slide-numbers |
true |
Announces slide numbers and titles. |
announce-fragments |
true |
Announces fragments as they appear and disappear. |
announce-language-changes |
true |
Announces a change of lang between slides. |
transcript |
true |
true for the overlay, false to disable, or an object taking enabled and print. |
pointer-indicator |
false |
true for the defaults, or an object taking enabled, size, colour, and shortcut. |
slide-change-cue |
visual: true, audio: false |
true for both cues, false for neither, or an object taking visual and audio. |
slide-menu-a11y |
true |
Patches the bundled RevealJS menu plugin so it is inert when closed, carries ARIA roles, and manages focus. |
menu |
true |
The settings menu. An object takes enabled, shortcut, and position. |
font-size-step |
10 |
The font size increment, as a percentage. Values below 1 are raised to 1. |
font-size-min |
50 |
The lowest font size, as a percentage. |
font-size-max |
200 |
The highest font size, as a percentage. |
The default font families are Default, System Sans, System Serif, System Mono, Atkinson Hyperlegible, Lexend, and OpenDyslexic. The last three are fetched from a webfont host the first time a reader selects them.
Invalid values for pointer-indicator fall back to the defaults with a console warning; its size is clamped to between 16 and 800 pixels, and its colour key is accepted as either colour or color.
Keyboard shortcuts
| Key | Action |
|---|---|
| Tab | Reach the skip link. |
| + | Increase the font size. |
| - | Decrease it. |
| 0 | Reset it. |
| T | Toggle the transcript. |
| P | Toggle the pointer indicator. |
| A | Toggle the settings menu. |
Each key is bound only when its feature is on, so P does nothing until pointer-indicator is enabled. The menu and pointer shortcuts are configurable.
What persists
These are kept in localStorage, so a reader sets them once: high contrast, font size, font family, line height, letter spacing, word spacing, link highlight, the colour overlay, the visual and audio cue toggles, whether the pointer indicator is on, its size and colour, and whether the transcript is printed.
Printing
revealjs-a11y:
transcript:
print: trueputs the transcript below each slide in print-pdf output, which is the only part of the plugin that outlives the browser.
Limitations
- RevealJS only.
- Everything but the printed transcript needs JavaScript.
- The plugin patches the bundled menu plugin for screen readers; a deck using a different menu keeps its own behaviour.