Reference

Every option the a11y plugin accepts.

The complete a11y configuration: the options and their defaults, the keyboard shortcuts, what persists, and the print behaviour.

Enabling the plugin

format:
  revealjs:
    revealjs-plugins:
      - a11y
    revealjs-a11y:
      high-contrast: false

Options sit under revealjs-a11y, inside the revealjs format.

Options

Options under revealjs-a11y.
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

The default 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: true

puts 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.
Back to top