Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Dashboard: collapsed mobile navbar menu stays open after selecting a page

未关闭 适合新手
#14,689 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
86/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
冷清
技术栈
javascript

调研方向

从 src/resources/formats/dashboard/quarto-dashboard.js 的第 125-142 行附近开始,Quarto 在这里为 navbar 页面链接附加点击处理程序。在窄 viewport 中重现 dashboard,并验证选择页面会关闭 collapse、移除其可见状态,并将 toggler 的 aria-expanded 值设置为 false。

由索引模型根据 Issue 内容生成。

描述

accessibility bug dashboards

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

In a multi-page format: dashboard at a narrow (mobile) viewport, selecting a page from the collapsed navbar menu switches the page but never closes the menu. This breaks the disclosure pattern users expect (and get from every Quarto website navbar): the open menu eats a large share of a small screen, and keyboard and screen-reader users must go back and dismiss a menu they have already used before reaching the content they selected.

In the default layout the open menu pushes content down; but if the header is pinned via custom CSS, the stuck-open menu overlays the page when scrolled and can leave a keyboard-focused element entirely hidden beneath it (WCAG 2.2 SC 2.4.11 Focus Not Obscured (Minimum)).

Dashboard pages are Bootstrap tabs in the same document, so unlike a website navbar there is no page load to reset the menu — and neither Bootstrap nor Quarto closes it. Quarto already attaches a click handler to every navbar page link (quarto-dashboard.js#L125-L142); hiding the collapse there (bootstrap.Collapse.getOrCreateInstance(el, { toggle: false }).hide()) would keep the show class and ARIA state consistent.

An AI assistant helped investigate, grounded in a local clone of quarto-cli (per CONTRIBUTING.md).

Steps to reproduce

---
title: "Repro: mobile menu stays open"
format: dashboard
---

# Page One

## Row

Content of page one.

{{< lipsum 1 >}}

# Page Two

## Row

Content of page two.

{{< lipsum 1 >}}
  1. quarto render the document above and open the resulting HTML in a browser.
  2. Narrow the window until the navbar collapses behind the hamburger toggler (below 576 px, or use responsive/mobile emulation in devtools, e.g. 390×844).
  3. Click the toggler to open the menu.
  4. Click Page Two.

Actual behavior

The page switches, but the menu stays expanded above it: .navbar-collapse keeps the show class and the toggler keeps aria-expanded="true". The user must close the menu manually to reach the page they selected.

Expected behavior

Selecting a page closes the menu and returns the toggler to aria-expanded="false", as on a Quarto website navbar.

Your environment

  • IDE: n/a (rendered from the command line; behavior is browser-side)
  • OS: macOS 26.5.1 (build 25F80)
  • Browsers checked: Chrome 150 (headless + desktop)

Quarto check output

Quarto 1.10.12
[✓] Checking environment information...
      Quarto cache location: /Users/charlottewickham/Library/Caches/quarto
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.8.3: OK
      Dart Sass version 1.87.0: OK
      Deno version 2.7.14: OK
      Typst version 0.14.2: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 1.10.12
      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...
主要语言
JavaScript
星标
6k
派生
458
平均合并
1 天 3 小时
30 天内合并 PR
54

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

quarto-dev/quarto-cli 的其他 Issue

查看 quarto-dev/quarto-cli 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。