Navbar dropdown toggles have `role="link"`
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
- 88/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ệ
- bootstrap, html, javascript, playwright
- Lĩnh vực
- accessibility, frontend
Hướng nghiên cứu
Đọc ba template được nêu trong báo cáo: src/resources/projects/website/templates/navitem.ejs, navitem-dropdown.ejs và navtools.ejs. Kiểm tra cách mỗi nút bật/tắt menu thả xuống thiết lập role, rồi so sánh cây trợ năng được render với role button được mong đợi trong báo cáo. Hoàn tất khi cả ba nút đều hiển thị role button và vẫn giữ trạng thái mở rộng; issue cung cấp cấu hình navbar để render và xác minh.
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
Navbar menus (menu: on a nav item or a navbar tool) open with a toggle that has role="link". Screen readers announce the toggle as a link. But the control opens a menu and does not go to a page. This fails WCAG 4.1.2 Name, Role, Value (Level A).
Three templates write the role (navitem.ejs#L9, navitem-dropdown.ejs#L9, navtools.ejs#L29):
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-guides" role="link"
data-bs-toggle="dropdown" aria-expanded="false">
Commit 9143e2cab (1.5) changed role="menu" to role="link", to remove a Lighthouse warning about aria-expanded. role="menu" was also wrong, but role="button" is correct here. Bootstrap's navbar dropdown example uses role="button", and aria-expanded is valid on a button.
A possible fix: change role="link" to role="button" in the three templates. A <button> element is also correct, but it changes more CSS.
This was first reported in a comment on discussion #12644, tested with NVDA and JAWS.
Investigated with AI assistance, grounded in a local clone of quarto-cli.
Steps to reproduce
_quarto.yml:
project:
type: website
website:
navbar:
left:
- text: Guides
menu:
- text: One
href: index.qmd
- text: Two
href: index.qmd
index.qmd:
---
title: Home
---
Text.
- Render the site and open
_site/index.html. - Move to "Guides" with a screen reader, or examine it in the browser accessibility tree.
- Press Enter.
Actual behavior
- The accessibility tree shows
link "Guides"with URL#. - Enter opens the menu (
aria-expandedchanges totrue). The page does not change.
Tested in Chromium with Playwright.
Expected behavior
The toggle has the button role, for example "Guides, button, collapsed". The aria-expanded state is announced with it.
Your environment
- IDE: none (rendered with the CLI)
- OS: macOS 27.0.1 (build 26A434)
Quarto check output
Quarto 1.11.6
[✓] Checking environment information...
Quarto cache location: /Users/charlottewickham/Library/Caches/quarto
Project: none found (single-file mode)
[✓] 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.6
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
- 6.1k
- Fork
- 471
- Merge trung bình
- 16 giờ 41 phút
- Pull request đã merge (30 ngày)
- 102
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 bug website-navigation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
quarto-dev/quarto-cli#15190 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
accessibility bug html websites
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
quarto-dev/quarto-cli#15187 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement themes websites
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
quarto-dev/quarto-cli#15179 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
about-page bug layout websites
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 82/100
quarto-dev/quarto-cli#15178 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Website projects ignore `$border-color` and `$border-radius` defaults because of an invalid `scss:variables` boundary in `quarto-listing.scss`Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởbug websites
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
quarto-dev/quarto-cli#15176 ·
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ự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
type/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
flarum/framework#5301 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
AOSSIE-Org/BabyNest#284 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
status:untriaged
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
midnightntwrk/servicedesk#275 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
seek4science/seek#2762 ·
Maintainer thường phản hồi trong vòng 5 ngày