Screen-reader announcements for call events (aria-live; invisible otherwise) #168

Closed
opened 2026-09-17 23:06:36 -04:00 by jared · 1 comment
Owner

An aria-live="polite" region (visually hidden) next to the call bar announcing: "X joined", "X left", "You are muted / unmuted", "You are deafened", "Screen share started by X", "Call ended". Only screen readers perceive it — nothing visible, nothing audible for anyone else, no setting needed. Rate-limit joins/leaves during bursts ("3 people joined").

An `aria-live="polite"` region (visually hidden) next to the call bar announcing: "X joined", "X left", "You are muted / unmuted", "You are deafened", "Screen share started by X", "Call ended". Only screen readers perceive it — nothing visible, nothing audible for anyone else, no setting needed. Rate-limit joins/leaves during bursts ("3 people joined").
jared added this to the Features 2026-Q4 milestone 2026-09-17 23:06:36 -04:00
jared added the priority: lowa11yarea: calls labels 2026-09-17 23:06:36 -04:00
jared self-assigned this 2026-09-17 23:06:36 -04:00
Author
Owner

Done in 2e7915d0: a visually hidden aria-live="polite" region rendered by CallEmbedProvider (outside the embed, so "Call ended" is still spoken) announces joins/leaves — batched over 1.5 s as "alice joined" / "alice and bob joined" / "3 people joined" — your own mute/unmute, deafen/undeafen and screenshare start/stop, and "Call ended". Nothing visible, nothing audible, no setting.

Verified headless by observing the region through a call: bob joined → You are muted → You are unmuted → You are deafened → You are muted → You are undeafened → You are unmuted → You started sharing your screen → You stopped sharing your screen → bob left → Call ended (deafen also mutes the mic, hence the paired line). Remote "screen share started by X" isn't included — the fork's call_state carries no screenshare flag; can be added if wanted.

Done in `2e7915d0`: a visually hidden `aria-live="polite"` region rendered by `CallEmbedProvider` (outside the embed, so "Call ended" is still spoken) announces joins/leaves — batched over 1.5 s as "alice joined" / "alice and bob joined" / "3 people joined" — your own mute/unmute, deafen/undeafen and screenshare start/stop, and "Call ended". Nothing visible, nothing audible, no setting. Verified headless by observing the region through a call: `bob joined → You are muted → You are unmuted → You are deafened → You are muted → You are undeafened → You are unmuted → You started sharing your screen → You stopped sharing your screen → bob left → Call ended` (deafen also mutes the mic, hence the paired line). Remote "screen share started by X" isn't included — the fork's `call_state` carries no screenshare flag; can be added if wanted.
jared closed this issue 2026-09-19 12:57:06 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#168