Skip to content

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

@presnick

Description

@presnick

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

Metadata

Metadata

Assignees

Labels

accessibilitybugSomething isn't workingrevealjsIssues with the revealjs format

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions