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

No one assigned

    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