Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

クローズ
#274 コメント 1 件 リアクション 0 件 担当者 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時間
マージ済み PR(30日)
103

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

sysprog21/codetrial のほかの issue

sysprog21/codetrial の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。