Skip to content

fix(revealjs): add aria-label to slide-menu button link#14251

Draft
mcanouil wants to merge 3 commits intoquarto-dev:mainfrom
mcanouil:fix/issue14249
Draft

fix(revealjs): add aria-label to slide-menu button link#14251
mcanouil wants to merge 3 commits intoquarto-dev:mainfrom
mcanouil:fix/issue14249

Conversation

@mcanouil
Copy link
Collaborator

@mcanouil mcanouil commented Mar 22, 2026

The bundled reveal.js-menu plugin creates the slide menu button as <a href="#"> with no text content or aria-label, failing the axe-core link-name rule (WCAG 2.4.4, Level A). The upstream plugin repo is archived since the 31st of January 2026), so this fixes the issue directly in Quarto by adding aria-label="Slide menu" to the anchor element.

Playwright tests were expected the violation, but as the upstream repository is no longer maintained, if Quarto keeps shipping the plugin, then the fix should be done in Quarto which means the expected violation is no longer necessary in tests.

Closes #14249.

@mcanouil mcanouil added bug Something isn't working accessibility labels Mar 22, 2026
@mcanouil mcanouil self-assigned this Mar 22, 2026
@mcanouil mcanouil added the revealjs Issues with the revealjs format label Mar 22, 2026
@posit-snyk-bot
Copy link
Collaborator

posit-snyk-bot commented Mar 22, 2026

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.

@mcanouil mcanouil removed bug Something isn't working revealjs Issues with the revealjs format labels Mar 22, 2026
@mcanouil mcanouil marked this pull request as draft March 22, 2026 16:02
…4249)

The bundled reveal.js-menu plugin creates the slide menu button as
an anchor element with no text content or aria-label, which fails
the axe-core link-name rule (WCAG 2.4.4, Level A). Add aria-label
attribute so screen readers announce the link purpose.
The link-name violation from the slide-menu button is now fixed,
so remove the revealjs test cases and the unused link-name entry
from violationText.
@mcanouil mcanouil marked this pull request as ready for review March 22, 2026 16:18
@mcanouil mcanouil marked this pull request as draft March 22, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

revealjs: bundled slide-menu plugin link missing accessible name (axe link-name violation)

2 participants