Skip to content

fix(frontend): give the icon links and small dialogs accessible names - #612

Merged
JuliusHenke merged 1 commit into
masterfrom
fix/frontend-a11y-dialog-and-link-labels
Oct 12, 2026
Merged

JuliusHenke merged 1 commit into
masterfrom
fix/frontend-a11y-dialog-and-link-labels

Conversation

@JuliusHenke

Copy link
Copy Markdown
Member

What

Two accessibility gaps, found by reviewing the frontend against Safari's built-in accessibility audit (testForLinkLabels, testDialogsForLabels):

  • Icon-only links: the GitHub, Twitter and mail links in the About dialog contained only an aria-hidden MUI icon, so a screen reader announced them as just "link". ExternalLink gets an optional ariaLabel, and the three links now have TorMap on GitHub, TorMap on Twitter and Email TorMap.
  • Dialogs on small screens: the full screen dialogs for settings, families and relay details show a Typography instead of DialogTitle, so they had role="dialog" without a name. They now have aria-label ("Settings", "Families", "Relay details" / "Relays"). The large-screen dialogs use DialogTitle and were already labelled.

MUI applies aria-label on a Dialog to its root element, not to the role="dialog" paper, so it is set through slotProps.paper. A first attempt on the root was caught by the new tests.

Verification

tsc, eslint and yarn test:run pass (281 tests, 6 new): every dialog is found by role with its accessible name on both screen sizes, and the three links are found by name with the right href.

Not verified: I could not run Safari's audit itself (the WebInspectorAudit API only exists inside Safari). If the audit still reports something, the failing test name and element would tell what is left.

Dependencies / deployment

None.

🤖 Generated with Claude Code

Found with Safari's accessibility audit. The GitHub, Twitter and mail links in the About dialog only contained an aria-hidden icon, so they had no name. The three full screen dialogs for small screens used a Typography instead of DialogTitle and had no accessible name. MUI applies the aria-label of a Dialog to its root, so it is set on the paper through slotProps.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@JuliusHenke JuliusHenke added bug Something isn't working frontend labels Oct 12, 2026
@github-actions

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit c43fec4):

https://tormap-36f44--pr612-fix-frontend-a11y-di-nz16lk4f.web.app

(expires Wed, 11 Nov 2026 20:38:38 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 0c1f71965de18e60b0e686b0d0356977fec090dc

@JuliusHenke
JuliusHenke marked this pull request as ready for review October 12, 2026 20:40
@JuliusHenke
JuliusHenke merged commit 0e778b8 into master Oct 12, 2026
14 of 15 checks passed
@JuliusHenke
JuliusHenke deleted the fix/frontend-a11y-dialog-and-link-labels branch October 12, 2026 20:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working frontend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant