You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For revealjs, Quarto removes the href from each code line-number link (format-reveal.ts). The comment says these links "can't work because ids are used for sections". That is no longer true. Since reveal.js 5, links to element ids work (f8e3406, hakimel/reveal.js#3444).
Removing the href now causes two bugs:
Single file:fixEmptyHrefs (html.ts) sets href="". A click on a line number, or Enter on it, goes to the title slide.
If the href is kept, revealjs gets the same markup as format: html: <a href="#cb1-1" aria-label="1">. I tested this by putting the href back in the rendered output. A click or Enter stays on the slide, stepped code-line-numbers highlights are not changed, and axe reports no line-number problems in either project type.
We found this with an axe scan of quarto.org: 87 instances on 7 revealjs pages, for example the revealjs demo.
Investigation was AI-assisted and grounded in a local clone of quarto-cli, per CONTRIBUTING.md's note on using AI tools.
Steps to reproduce
deck.qmd:
---title: Deckformat: revealjs---## Code```python
x =1
y =2```
Run quarto render deck.qmd. Open deck.html, go to the "Code" slide, and click a line number.
Put deck.qmd in a website project (project: type: website, plus an index.qmd). Run quarto render, then quarto call axe _site --pages deck.html.
Actual behavior
Single file: the line anchor is <a href="" aria-label="1"></a>. The click goes to the title slide.
Website: the line anchor is <a aria-label="1"></a>. axe reports aria-prohibited-attr on each line anchor.
Expected behavior
Line numbers are links to their line, as in format: html: <a href="#cb1-1" aria-label="1"></a>. A click stays on the slide, and axe reports no violation.
Your environment
IDE: Positron 2026.10.0 (build 54)
OS: macOS 26.6.2 (build 25G83)
Quarto check output
Quarto 1.11.4
[✓] Checking environment information...
Quarto cache location: /Users/charlottewickham/Library/Caches/quarto
[✓] Checking versions of quarto binary dependencies...
Pandoc version 3.10.0: OK
Dart Sass version 1.101.0: OK
Deno version 2.7.14: OK
Typst version 0.15.1: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
Version: 1.11.4
Path: /Applications/quarto/bin
[✓] Checking tools....................OK
TinyTeX: v2026.04
Chrome Headless Shell: 150.0.7871.115
VeraPDF: 1.28.2
[✓] Checking LaTeX....................OK
Using: TinyTex
Path: /Users/charlottewickham/Library/TinyTeX/bin/universal-darwin
Version: 2026
[✓] Checking Chrome Headless....................OK
Using: Chrome Headless Shell installed by Quarto
Path: /Users/charlottewickham/Library/Application Support/quarto/chrome-headless-shell/chrome-headless-shell-mac-arm64/chrome-headless-shell
Version: 150.0.7871.115
[✓] Checking basic markdown render....OK
[✓] Checking R installation...........OK
Version: 4.6.0
Path: /Library/Frameworks/R.framework/Versions/4.6/Resources
LibPaths:
- /Users/charlottewickham/Library/R/arm64/4.6/library
- /Library/Frameworks/R.framework/Versions/4.6/Resources/library
knitr: 1.51
rmarkdown: 2.31
[✓] Checking Knitr engine render......OK
[✓] Checking Python 3 installation....OK
Version: 3.12.2
Path: /Users/charlottewickham/.pyenv/versions/3.12.2/bin/python3
Jupyter: 5.9.1
Kernels: python3
[✓] Checking Jupyter engine render....OK
[✓] Checking Julia installation...
I have:
Bug description
For revealjs, Quarto removes the
hreffrom each code line-number link (format-reveal.ts). The comment says these links "can't work because ids are used for sections". That is no longer true. Since reveal.js 5, links to element ids work (f8e3406, hakimel/reveal.js#3444).Removing the
hrefnow causes two bugs:fixEmptyHrefs(html.ts) setshref="". A click on a line number, or Enter on it, goes to the title slide.fixEmptyHrefsis skipped (pandoc.ts), so the anchor has nohref. Thearia-labelfrom Fix code-line-numbers links having no accessible name #14662 is then on an<a>that is not a link. axe reportsaria-prohibited-attr(WCAG 4.1.2).If the
hrefis kept, revealjs gets the same markup asformat: html:<a href="#cb1-1" aria-label="1">. I tested this by putting thehrefback in the rendered output. A click or Enter stays on the slide, steppedcode-line-numbershighlights are not changed, and axe reports no line-number problems in either project type.We found this with an axe scan of quarto.org: 87 instances on 7 revealjs pages, for example the revealjs demo.
Steps to reproduce
deck.qmd:quarto render deck.qmd. Opendeck.html, go to the "Code" slide, and click a line number.deck.qmdin a website project (project: type: website, plus anindex.qmd). Runquarto render, thenquarto call axe _site --pages deck.html.Actual behavior
<a href="" aria-label="1"></a>. The click goes to the title slide.<a aria-label="1"></a>. axe reportsaria-prohibited-attron each line anchor.Expected behavior
Line numbers are links to their line, as in
format: html:<a href="#cb1-1" aria-label="1"></a>. A click stays on the slide, and axe reports no violation.Your environment
Quarto check output