revealjs speaker view: missing named landmarks for current slide, upcoming slide, time, and notes
维护者通常 1 天内回复
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 76/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- javascript
调研方向
从 src/resources/formats/revealjs/reveal/plugin/notes/speaker-view.html 第 309–338 行的内置演讲者视图标记开始,并将其与上游 reveal.js issue 3952 进行比较。检查四个可见面板在各种布局中的表示方式,以及 notes bundle 的生成位置。完成标准是:这些面板提供稳定且有用的命名地标,同时不暴露隐藏或非活动面板,并且生成的 notes bundle 已同步。
由索引模型根据 Issue 内容生成。
描述
Bug description
The speaker view lacks named semantic landmarks for its current slide, upcoming slide, time, and notes panels.
This reproduces in a default Quarto revealjs deck as well as standalone upstream reveal.js 6.0.2. This is a downstream tracking report for the bundled notes plugin, not a Quarto-only regression.
Steps to reproduce
- Save the following as speaker.qmd and run
quarto preview speaker.qmd. - Advance past the title slide to First slide, then press S to open speaker view. Wait until the previews and speaker notes are visible.
- In the speaker-view window, inspect the layout select and the four top-level panel containers using browser accessibility/DOM tools. For the layout issue, focus the select and change its selected option using the keyboard.
---
title: Speaker view accessibility reproduction
format: revealjs
---
## First slide
First slide content.
::: {.notes}
Speaker notes for the first slide.
:::
## Second slide
Second slide content.
::: {.notes}
Speaker notes for the second slide.
:::
No custom filters, extensions, themes, or author CSS are used. The tested deck was rendered with quarto render speaker.qmd and served by a local HTTP static server.
Actual behavior
The top-level speaker-view containers are generic divs with neither landmark roles nor accessible names:
<div id="current-slide">...</div>
<div id="upcoming-slide"><span class="overlay-element label">Upcoming</span>...</div>
<div class="speaker-controls-time">...</div>
<div class="speaker-controls-notes">...</div>
Live inspection of all four containers returned role=null, aria-label=null, and aria-labelledby=null. Notes were present and visible in the test, so this is not just the intentionally hidden empty-notes state. The visible Time and Notes headings and Upcoming span do not turn these divs into landmarks.
The preview iframes contain their own slide region/application semantics. Those inner-slide regions are not named landmarks for the speaker-view panels and do not distinguish "Current slide" from "Upcoming slide" in the parent speaker window.
Consequently, these major presentation-management areas cannot be identified and traversed as named landmarks in the speaker-view document.
Expected behavior
Expose the major visible speaker-view areas as named landmarks, for example section elements with aria-labelledby or role="region" plus useful accessible names: "Current slide", "Upcoming slide", "Time", and "Speaker notes". Keep names stable across layouts and do not expose hidden/inactive panels. Each landmark should group the panel content, not just label an empty wrapper.
Please incorporate the corresponding upstream fix into the bundled notes plugin (or backport as appropriate), keeping generated notes bundles synchronized.
Your environment and verification scope
Quarto CLI 1.11.5 (prerelease), bundling reveal.js 5.1.0 according to the generated reveal.js header. The installed speaker-view.html matches the current quarto-cli main source at 517944ddc441a64d66f18b90b51c7a9d3c1af5b8 after normalizing line endings/trailing whitespace. Runtime testing used the installed build, not a separately built main checkout.
Windows, Chromium-based Aside Browser (user agent Chrome/153.0.0.0). Verified through live DOM inspection, browser snapshots, and keyboard interaction. No JAWS/NVDA/VoiceOver speech-output session was run; this report does not assert a particular spoken utterance or behavior across all screen readers.
Source
Quarto check output (relevant excerpt)
Quarto 1.11.5
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.5
CodePage: 1252
Searched existing open and closed issues; no matching speaker-view report was found.
Upstream report
- 主要语言
- JavaScript
- 星标
- 6.1k
- 派生
- 471
- 平均合并
- 21 小时 50 分钟
- 30 天内合并 PR
- 105
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
quarto-dev/quarto-cli 的其他 Issue
-
revealjs speaker view: Layout select has no accessible name可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭bug revealjs
难度 2/5 1-3 小时 新手友好度 65/100
quarto-dev/quarto-cli#15159 ·
维护者通常 1 天内回复
-
accessibility bug website-navigation
难度 2/5 1-3 小时 新手友好度 78/100
quarto-dev/quarto-cli#15123 · 1 条评论 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 83/100
quarto-dev/quarto-cli#15109 ·
维护者通常 1 天内回复
-
accessibility html websites
难度 2/5 1-3 小时 新手友好度 82/100
quarto-dev/quarto-cli#15096 ·
维护者通常 1 天内回复
-
accessibility bootstrap dark-mode enhancement
难度 2/5 1-3 小时 新手友好度 62/100
quarto-dev/quarto-cli#15060 ·
维护者通常 1 天内回复
查看 quarto-dev/quarto-cli 的全部 Issue
相似的 Issue
-
ew
难度 2/5 1-3 小时 新手友好度 66/100
维护者通常 1 天内回复
-
priority: medium status: needs-decision work-class: scoped
难度 2/5 1-3 小时 新手友好度 78/100
melodic-software/claude-code-plugins#9339 · 2 条评论 ·
维护者通常 1 天内回复
-
bug-report bug-report-triage
难度 2/5 1-3 小时 新手友好度 72/100
Codeinwp/templates-patterns-collection#539 ·
维护者通常 1 天内回复
-
建议增加URL参数构建的工具未关闭
难度 2/5 1-3 小时 新手友好度 65/100
-
[Bug] dsh 0.2.1 返回 session/not-found 时 sessionExists 不重建会话,消息恒失败并被误报为 INTERNAL_UNKNOWN可能已有人在做 @ANIIAN91 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复