Changelog

What changed, and when.

Every released version of the a11y extension, and what each one changed.

0

0.3

0.3.0 (2026-09-23)

Bug Fixes
  • fix: Apply high contrast to the plugin’s own chrome. The settings panel, the transcript overlay, the pointer and the page background around the slides kept their usual colours, because the class went on the deck and all four sit outside it.
  • fix: Print the fragment build-up again. RevealJS separates fragments itself, and the plugin both did that work a second time and forced every fragment visible, so each page carried the whole slide.
Removals
  • feat: Remove the data-pdf-separate and data-pdf-no-separate slide attributes. They belonged to the duplicate separation, and RevealJS has no per-slide equivalent, so pdf-separate-fragments now decides for the whole deck.
Documentation
  • docs: Serve the extension’s social card as the Open Graph image, so a shared link shows the card rather than the first image on the page. (#31)
  • docs: Split the examples into one page per topic, so every option has a worked configuration and a description of what it does.

0.2

0.2.3 (2026-08-24)

  • fix: slide-landmarks uses inert to take slides other than the current one out of the tab order. Content that is focusable only through tabindex returns to the tab order on its own slide, and content that is tabbable without a tabindex, such as an iframe, no longer stays in it. (#25)
  • fix: slide-landmarks keeps every slide available to assistive technology in the print view and the scroll view, and keeps every slide clickable in the overview. This holds when the reader changes view while the deck is open. (#25)
  • fix: slide-landmarks moves the focus to the new slide when the reader leaves a slide with the focus inside it. The next Tab continues from the slide, not from the top of the document. (#25)
  • fix: The accessibility settings panel uses inert while it is closed. Tab goes to the content of the slide, not through the controls of the panel. (#27)
  • fix: The accessibility settings panel gives the focus to the current slide when it closes and the control that held the focus is gone, or sits on a slide the deck has left. (#27)

0.2.2 (2026-08-01)

Documentation
  • docs: Add a documentation website under docs/, built on the atelier project type and published to https://m.canouil.dev/quarto-revealjs-a11y/, including a deck with every control enabled.
  • docs: Trim README.md to a landing page pointing at the website.
  • docs: Add the Pages workflow, which renders docs/ on pull requests and deploys it from the release tag.
  • docs: Add the Quarto Extensions Updates workflow, scanning docs for the website’s own dependencies.

0.2.1 (2026-06-18)

  • fix: increase letter-spacing, word-spacing, and line-height selectable maximum values.

0.2.0 (2026-06-17)

New Features
  • feat: announce language changes to screen readers when navigating between slides with different lang attributes (announce-language-changes option, enabled by default).
  • feat: allow zooming by overriding the Reveal.js viewport meta that set user-scalable=no (viewport-zoom option, enabled by default; WCAG 1.4.4).
  • feat: add transcript view that linearises slide content into a screen-reader-friendly document (transcript option). Authors can provide custom transcript text via ::: {.transcript} blocks; otherwise the slide’s visible content is used. Optionally show transcript below each slide in print-pdf mode with transcript: {print: true}.
  • feat: add pointer/focus indicator for low-vision users (pointer-indicator option). A configurable spotlight follows the cursor or keyboard focus, with size and colour adjustable from the accessibility menu.
  • feat: improve print-pdf output by resetting user preferences, hiding interactive UI, preserving backgrounds, and supporting per-slide fragment separation via {data-pdf-separate="true"} and {data-pdf-no-separate="true"} attributes.
Fixes
  • fix: label the bundled reveal.js-menu toggle button so screen readers announce it (slide-menu-a11y).
  • fix: queue and coalesce status announcements so rapid slide or fragment changes are no longer lost to the requestAnimationFrame race; consecutive duplicates are dropped and queued messages are flushed at a polite cadence.
  • fix: validate pointer-indicator.size (numeric, clamped to [16, 800] px) and pointer-indicator.colour (parsed as a CSS colour) at configuration time; invalid values fall back to defaults and are reported via console.warn.
  • fix: render the local font picker in chunks via requestAnimationFrame so very large font collections no longer block the main thread; search input is debounced.
  • fix: replace the generic “Could not access local fonts” message with permission-aware help text covering denial, insecure contexts, and unsupported browsers.
  • fix: cancel the in-flight announcement timer and clear the queue on plugin teardown.
  • fix: treat alt="" as a valid decorative-image declaration; the “missing alt text” warning is now only shown when the alt attribute is absent entirely.

0.1

0.1.1 (2026-04-01)

Fixes
  • fix: remove version-specific reference (added from CI/CD) from the GitHub repository link to ensure it always points to the latest version.

0.1.0 (2026-03-30)

New Features
  • feat: Initial release with skip navigation, focus indicators, reduced motion, high contrast mode, font size controls, font selection, slide landmarks, alt text warnings, and screen reader announcements.
Back to top