Add accessible labels to message delivery status indicators - #7915
Open
heath-toby wants to merge 1 commit into
Open
Add accessible labels to message delivery status indicators#7915heath-toby wants to merge 1 commit into
heath-toby wants to merge 1 commit into
Conversation
The outgoing message status indicator (sending/sent/delivered/read/viewed/ paused) is rendered as an icon-only div with no text alternative, so screen reader users get no indication of a message's delivery state. Add role="img" and an aria-label derived from the status, so assistive technology announces "Sent" / "Delivered" / "Read" / "Viewed" alongside the timestamp, matching the information sighted users get from the icon. This is an accessibility-only change with no visual impact.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First time contributor checklist:
Contributor checklist:
_locales/en/messages.json; it does not submit translated locales.)mainbranchpnpm run readyrun passes successfully (verified: prettier,check:types, oxlint, intl-linter, and icu-types generation all pass; the display-dependent Electron test step was not run locally)Description
The outgoing message delivery-status indicator (sending / sent / delivered / read / viewed / paused) is rendered as an icon-only
<div>with no text alternative. Sighted users can see at a glance whether a message was delivered or read; screen reader users get nothing — the element is unlabeled, so it is not even surfaced to the accessibility tree.This change adds
role="img"and anaria-label(derived from the existingstatusvalue via the message'si18n) to that indicator. Assistive technologies now announce "Sent" / "Delivered" / "Read" / "Viewed" alongside the timestamp, bringing Desktop to parity with how status is already conveyed on Signal mobile. It is an accessibility-only change with zero visual impact, and only applies to your own outgoing messages (the indicator is already outgoing-only).icu:MessageMetadata__status--{sending,sent,delivered,read,viewed}(thepausedstate reuses the existingicu:sendPaused).error/partial-sentare intentionally left unlabeled here because they are already surfaced as visible text elsewhere in the metadata.Transparency: the diff was drafted with AI assistance, then reviewed and manually tested by me on a real device with a screen reader.
Test approach
role/aria-labelto the status indicator, then navigated my own sent messages with the Orca screen reader. Each message row now reads as content → timestamp → status (e.g. "…, 14:32, Read"). Verified the label updates live as a message transitionssent → delivered → read, and thatpausedreads as "Send paused".aria-labelis consumed by Chromium's accessibility engine, the same label is exposed through NSAccessibility (macOS/VoiceOver) and UI Automation (Windows/NVDA, JAWS, Narrator) with no platform-specific code.