Dashboard: collapsed mobile navbar menu stays open after selecting a page
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 86/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- javascript
- Ambito
- accessibility, frontend
Direzione di ricerca
Inizia in src/resources/formats/dashboard/quarto-dashboard.js, intorno alle righe 125-142, dove Quarto associa gli handler di clic ai link delle pagine della navbar. Riproduci la dashboard in un viewport stretto e verifica che la selezione di una pagina chiuda il collapse, rimuova il suo stato visibile e imposti su false il valore di aria-expanded del toggler.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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 >}}
quarto renderthe document above and open the resulting HTML in a browser.- 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).
- Click the toggler to open the menu.
- 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...
- Lingua principale
- JavaScript
- Stelle
- 6k
- Fork
- 458
- Merge medio
- 1g 3h
- PR unite (30g)
- 54
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di quarto-dev/quarto-cli
-
accessibility bug typst
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
quarto-dev/quarto-cli#14947 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
accessibility documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
quarto-dev/quarto-cli#14944 ·
I maintainer di solito rispondono entro 1 giorno
-
maintenance ojs-engine
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
quarto-dev/quarto-cli#14934 ·
I maintainer di solito rispondono entro 1 giorno
-
accessibility bug html themes
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
quarto-dev/quarto-cli#14932 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
quarto-dev/quarto-cli#14915 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di quarto-dev/quarto-cli
Issue simili
-
status: waiting triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
freeCodeCamp/freeCodeCamp#70412 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Jason-Vaughan/TangleClaw#1884 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue web
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/TypeScript#64453 ·
I maintainer di solito rispondono entro 1 giorno
-
self-driving
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno