quarto-dev / quarto-dev/quarto-cli
a11y: default listing emits empty <a> when a post has no subtitle (link-name)
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 6k
- Forks
- 458
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 41
Description
Reported in #14373.
Repro: https://github.com/alexpghayes/quarto-accessibility-reprex
axe rule: link-name · impact: serious · tag: wcag2a (2.4.4)
Target: .listing-subtitle > a.no-external — rendered as <a href="..." class="no-external" data-original-href="..."></a> (empty)
The default listing template renders an anchor inside .listing-subtitle for every post even when the post has no subtitle field. The anchor is empty (no text, no aria-label, no title), ends up in the tab order, and fails link-name. The template should skip the subtitle wrapper when no subtitle is present, or render it without a focusable anchor.
Different element than #7088 (which was a listing body-level empty <a>, fixed in v1.4).
Part of #8706.
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.
Research direction
Start with the default listing template and reproduce the issue using the linked accessibility reprex. Inspect the .listing-subtitle > a.no-external output when a post has no subtitle, then verify with axe's link-name rule that no empty focusable anchor is rendered while posts with subtitles still work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- accessibility, frontend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100