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-separateanddata-pdf-no-separateslide attributes. They belonged to the duplicate separation, and RevealJS has no per-slide equivalent, sopdf-separate-fragmentsnow 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-landmarksusesinertto take slides other than the current one out of the tab order. Content that is focusable only throughtabindexreturns to the tab order on its own slide, and content that is tabbable without atabindex, such as aniframe, no longer stays in it. (#25) - fix:
slide-landmarkskeeps 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-landmarksmoves the focus to the new slide when the reader leaves a slide with the focus inside it. The nextTabcontinues from the slide, not from the top of the document. (#25) - fix: The accessibility settings panel uses
inertwhile it is closed.Tabgoes 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 theatelierproject type and published to https://m.canouil.dev/quarto-revealjs-a11y/, including a deck with every control enabled. - docs: Trim
README.mdto 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
docsfor the website’s own dependencies.
0.2.1 (2026-06-18)
- fix: increase
letter-spacing,word-spacing, andline-heightselectable maximum values.
0.2.0 (2026-06-17)
New Features
- feat: announce language changes to screen readers when navigating between slides with different
langattributes (announce-language-changesoption, enabled by default). - feat: allow zooming by overriding the Reveal.js viewport meta that set
user-scalable=no(viewport-zoomoption, enabled by default; WCAG 1.4.4). - feat: add transcript view that linearises slide content into a screen-reader-friendly document (
transcriptoption). 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 withtranscript: {print: true}. - feat: add pointer/focus indicator for low-vision users (
pointer-indicatoroption). 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
requestAnimationFramerace; consecutive duplicates are dropped and queued messages are flushed at a polite cadence. - fix: validate
pointer-indicator.size(numeric, clamped to[16, 800]px) andpointer-indicator.colour(parsed as a CSS colour) at configuration time; invalid values fall back to defaults and are reported viaconsole.warn. - fix: render the local font picker in chunks via
requestAnimationFrameso 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 thealtattribute 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.