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

revealjs speaker view: missing named landmarks for current slide, upcoming slide, time, and notes

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

维护者通常 1 天内回复

@jooyoungseo 已经在做这个了。

开始于 2026年10月22日。

  • #15164 来自 @jooyoungseo —— 未关闭

评估

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

调研方向

从 src/resources/formats/revealjs/reveal/plugin/notes/speaker-view.html 第 309–338 行的内置演讲者视图标记开始,并将其与上游 reveal.js issue 3952 进行比较。检查四个可见面板在各种布局中的表示方式,以及 notes bundle 的生成位置。完成标准是:这些面板提供稳定且有用的命名地标,同时不暴露隐藏或非活动面板,并且生成的 notes bundle 已同步。

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

描述

bug revealjs

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

  1. Save the following as speaker.qmd and run quarto preview speaker.qmd.
  2. Advance past the title slide to First slide, then press S to open speaker view. Wait until the previews and speaker notes are visible.
  3. 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

Bundled speaker-view markup.

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

https://github.com/hakimel/reveal.js/issues/3952

主要语言
JavaScript
星标
6.1k
派生
471
平均合并
21 小时 50 分钟
30 天内合并 PR
105

环境准备

从这里开始

  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 摘要。