Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

revealjs removes the `href` from code line-number links

Đang mở Phù hợp với người mới
#14,961 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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ả

accessibility bug revealjs

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:

  1. Single file: fixEmptyHrefs (html.ts) sets href="". A click on a line number, or Enter on it, goes to the title slide.
  2. Website project: fixEmptyHrefs is skipped (pandoc.ts), so the anchor has no href. The aria-label from #14662 is then on an <a> that is not a link. axe reports aria-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
```
  1. Run quarto render deck.qmd. Open deck.html, go to the "Code" slide, and click a line number.
  2. 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

  1. Single file: the line anchor is <a href="" aria-label="1"></a>. The click goes to the title slide.
  2. 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...
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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của quarto-dev/quarto-cli

Tất cả issue của quarto-dev/quarto-cli

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.