revealjs removes the `href` from code line-number links
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 84/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- accessibility, frontend
Hướng nghiên cứu
Bắt đầu trong src/format/reveal/format-reveal.ts với phần xử lý số dòng được liên kết, sau đó đọc fixEmptyHrefs trong src/core/html.ts và đường dẫn website trong src/command/render/pandoc.ts. Tái hiện bằng deck.qmd được cung cấp và lệnh axe; được xem là hoàn tất khi revealjs giữ nguyên href="#cb1-1" cho số dòng, các lần nhấp vẫn ở trên slide và axe không báo cáo vi phạm liên quan đến số dòng trong cả hai loại dự án.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I have:
- searched the issue tracker for similar issues
- installed the latest version of Quarto CLI
- formatted my issue following the Bug Reports guide
Bug description
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) setshref="". A click on a line number, or Enter on it, goes to the title slide. - Website project:
fixEmptyHrefsis skipped (pandoc.ts), so the anchor has nohref. Thearia-labelfrom #14662 is then on an<a>that is not a link. axe reportsaria-prohibited-attr(WCAG 4.1.2).
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: Deck
format: revealjs
---
## Code
```python
x = 1
y = 2
```
- Run
quarto render deck.qmd. Opendeck.html, go to the "Code" slide, and click a line number. - Put
deck.qmdin a website project (project: type: website, plus anindex.qmd). Runquarto render, thenquarto 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 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
- 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...
- Ngôn ngữ chính
- JavaScript
- Star
- 6k
- Fork
- 461
- Merge trung bình
- 13 giờ 37 phút
- Pull request đã merge (30 ngày)
- 53
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của quarto-dev/quarto-cli
-
accessibility documentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
quarto-dev/quarto-cli#14944 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
maintenance ojs-engine
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
quarto-dev/quarto-cli#14934 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
accessibility bug html themes
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
quarto-dev/quarto-cli#14932 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
quarto-dev/quarto-cli#14915 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
binder bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
quarto-dev/quarto-cli#14907 · 3 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của quarto-dev/quarto-cli
Issue tương tự
-
automation models
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
needs:triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement status: needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
mastra-ai/mastra#25508 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[aw] Upgrade availableĐang mởagentic-workflows
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
githubnext/gh-aw-cao#15017 ·
Maintainer thường phản hồi trong vòng 1 ngày