revealjs: bundled slide-menu plugin link missing accessible name (axe link-name violation)
@mcanouil is already working on this.
Since Mar 22, 2026.
Assessment
This issue has not been assessed yet.
Description
Description
The slide menu button (from the bundled reveal.js-menu plugin) renders as <a href="#"> with no text content or aria-label, which fails the axe-core link-name rule (WCAG 2.4.4, Level A).
Screen reader users encounter a link announced as just "link" with no indication of what it does.
Note: The upstream plugin repo (denehyg/reveal.js-menu) is archived, so this can only be fixed in Quarto's bundled copy.
Selector
.slide-menu-button > a[href="#"]
Suggested fix
Add an aria-label to the menu button link:
<a href="#" aria-label="Slide menu">
How to reproduce
- Create a minimal Quarto revealjs presentation
- Run axe-core against the rendered HTML:
quarto render presentation.qmd
npx @axe-core/cli file:///path/to/presentation.html
Output:
Violation of "link-name" with 1 occurrences!
Ensure links have discernible text. Correct invalid elements at:
- .slide-menu-button > a[href="#"]
Environment
- Quarto 1.9.36
- reveal.js 5.1.0 (bundled)
- axe-core 4.11.1
Reference
- Dominant language
- JavaScript
- Stars
- 6k
- Forks
- 458
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 41
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from quarto-dev/quarto-cli
-
binder bug
Difficulty 1/5 Under an hour Newbie friendliness 92/100
quarto-dev/quarto-cli#14907 · 3 comments ·
-
brand bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
quarto-dev/quarto-cli#14891 ·
-
brand bug html revealjs
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
quarto-dev/quarto-cli#14882 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
quarto-dev/quarto-cli#14875 ·
-
Percent scripts: accept raw-string (r""") and '''-delimited markdown cells, as jupytext writes them Openengines-jupyter enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
quarto-dev/quarto-cli#14850 · 2 comments ·
All issues in quarto-dev/quarto-cli
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
avniproject/avni-client#2135 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
babalae/bettergi-scripts-list#3674 ·
-
A-Release-Notes C-Editing D-Modest S-Ready-For-Implementation
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
bevyengine/bevy-website#2595 ·
-
ecosystem wording
Difficulty 1/5 Under an hour Newbie friendliness 90/100
matrix-org/matrix.org#3649 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
vadimdemedes/ink#1029 ·