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

Whiteboard pen swatches are named by hex code and do not expose which one is selected

已关闭
#274 1 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@LeafYeh1 已经在做这个了。

开始于 2026年10月11日。

  • #279 来自 @LeafYeh1 —— 未关闭

评估

这个 Issue 还没有评估数据。

描述

Observed behavior

In a whiteboard interview, the four pen swatches in the board toolbar are named from their hex value (web/interview.js:3490 at 6d556b7), so VoiceOver announces "Pen #101418" and reads the code out character by character, and macOS Voice Control expects the user to say it. The selected pen is marked only by the selected class (web/interview.js:3487, toggled in paintToolState), so assistive technology cannot tell which pen is active. The eraser and the eraser size buttons in the same toolbar do expose their state through aria-pressed (web/interview.js:3616), so the pens are the only toggles there without it.

Expected behavior

Each swatch has a name a person can say and recognize, such as "Black pen" or "Red pen", and carries aria-pressed="true" when selected and "false" otherwise, the same way the eraser buttons do.

Reproduction
  1. Start an interview in Whiteboard mode and pass the media preflight.
  2. Turn on VoiceOver (Cmd+F5) and press Tab until a pen swatch is focused: it is announced as "Pen #101418, button" with no selection state.
  3. Activate another pen with Control+Option+Space: the announcement still carries no selection state.
  4. Tab to the eraser for comparison: it is announced as a toggle button with its pressed state, which changes when it is activated.
CodeTrial version

codetrial 0.1.0 (6d556b7)

Environment

OS: macOS
Browser: Google Chrome 154.0.8037.93 (arm64)
Interview mode: Whiteboard
Assistive technology: VoiceOver

Sanitized evidence

Running this in the console on the whiteboard page:

[...document.querySelectorAll("#board-pens button, #board-eraser, #board-eraser-sizes button")].map(b => [b.getAttribute("aria-label") ?? b.textContent.trim(), b.getAttribute("aria-pressed")])

returns ["Pen #101418", null], ["Pen #c2261b", null], ["Pen #1b64c2", null] and ["Pen #1f8a4c", null] for the pens, and "true" or "false" for the eraser and its three sizes.

Related

The review of #72 raised the same gap for the lobby's mode buttons, whose default selection was only a CSS class, and it was fixed there with aria-pressed.

Public data confirmation
  • I removed credentials, session tokens, candidate recordings, and personal interview content from this public report.
主要语言
Rust
星标
160
派生
64
平均合并
1 天 9 小时
30 天内合并 PR
103

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

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

sysprog21/codetrial 的其他 Issue

查看 sysprog21/codetrial 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

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