Skip to content

Fix revealjs screen reader fragment announcements - #15020

Open
jooyoungseo wants to merge 1 commit into
quarto-dev:mainfrom
jooyoungseo:fix/revealjs-screen-reader-announcements
Open

jooyoungseo wants to merge 1 commit into
quarto-dev:mainfrom
jooyoungseo:fix/revealjs-screen-reader-announcements

Conversation

@jooyoungseo

Copy link
Copy Markdown
Collaborator

Fixes #15019.

Description

Backport hakimel/reveal.js#3946 to the bundled reveal.js 5.1.0 without upgrading to 6.x.

Hidden incremental content is excluded from .aria-status until it is revealed, including nested fragments and pauses. The fragment itself can still be announced when activated, and the built-in initially visible and transient styles retain their behavior.

URL handling no longer navigates back to the current slide or fragment after writing its own history entry. Named horizontal slide indices are normalized, explicit fragment links still work, and browser Back can return to the state before the first fragment when fragment-in-url is enabled.

The readable source patch is retained in package/src/common/patches/ and reapplied by the HTML dependency updater before rebuilding both JavaScript bundles and source maps. Remove this backport when updating to an upstream release containing the fix.

Validation

  • Added four Playwright scenarios covering actual live-region mutation counts, nested fragments, pauses, fragment URLs, and browser Back/Forward.
  • 12/12 checks pass across Chromium, Firefox, and WebKit. The original three scenarios all fail on the unpatched bundle because the initial slide is announced twice.
  • Rebuilt the UMD and ESM bundles from 5.1.0. The source maps contain source changes only in js/reveal.js and js/controllers/location.js.
  • Local fixture rendering used Quarto 1.8.27, with the rebuilt bundles and current support plugin copied into the output before testing. The full Quarto build and test suite were not run.

Checklist

I have (if applicable):

  • referenced the GitHub issue this PR closes
  • updated the appropriate changelog in the PR
  • ensured the present test suite passes
  • added new tests
  • created a separate documentation PR in Quarto's website repo and linked it to this PR

No format option or documentation change is required.

@jooyoungseo
jooyoungseo requested review from cderv and a balanced review from Copilot October 9, 2026 20:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@posit-snyk-bot

posit-snyk-bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Open Source Security 0 0 0 0 0 issues
✅ Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

revealjs: screen readers hear incremental content before it is revealed, and each slide twice

3 participants