Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#274 1 comentario 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@LeafYeh1 ya está trabajando en esto.

Desde el 11/10/2026.

  • #279 de @LeafYeh1 — abierto

Evaluación

Este issue todavía no se ha evaluado.

Descripción

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.
Lenguaje dominante
Rust
Estrellas
144
Forks
41
Merge medio
1 d 9 h
PR fusionados (30 d)
95

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sysprog21/codetrial

Todos los issues de sysprog21/codetrial

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.