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

Open
#14,249 9 comments 0 reactions 1 assignee View on GitHub

@mcanouil is already working on this.

Since Mar 22, 2026.

Assessment

This issue has not been assessed yet.

Description

accessibility bug revealjs

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

  1. Create a minimal Quarto revealjs presentation
  2. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from quarto-dev/quarto-cli

All issues in quarto-dev/quarto-cli

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.