Skip to content

fix(frontend): label the date slider and give the accordions and stats table valid semantics - #614

Merged
JuliusHenke merged 1 commit into
masterfrom
fix/frontend-a11y-slider-accordions-table
Oct 12, 2026
Merged

JuliusHenke merged 1 commit into
masterfrom
fix/frontend-a11y-slider-accordions-table

Conversation

@JuliusHenke

Copy link
Copy Markdown
Member

What

Accessibility findings from a Lighthouse run (accessibility score 95):

  • Date slider (label, and the "agent accessibility tree" check): the MUI Slider had no accessible name, and a screen reader announced its index. It now has aria-label="Selected day" and getAriaValueText, so the selected day (for example 2026-10-12) is announced.
  • Accordions (duplicate-id-aria): all five accordions in AppSettings and MapStats used id="panel2a-header" and aria-controls="panel2a-content", a copy-paste leftover, so aria-controls could not point at the right region. Every accordion now has its own ids.
  • Statistics table (td-has-header): the label cell of each row is now a row header (<th scope="row">), and the icon and label share that cell. That also makes it a two column table with proper semantics.

Verification

Lighthouse 13.4.1 on a local build, desktop preset: accessibility 95 -> 100, no failing accessibility audits and no duplicate ARIA ids. tsc, eslint and yarn test:run pass (278 tests, 3 new: slider name and value text, unique accordion ids with matching regions, row headers).

Not changed on purpose: the checkbox and switch inputs for relay types and flags use their numeric value as id (0, 1, 2), which repeats between the two lists. The settings handler reads event.target.id as the key, so changing it is a separate refactor, and it is not an ARIA reference problem because the inputs are wrapped by their labels.

Dependencies / deployment

None.

🤖 Generated with Claude Code

…s table valid semantics

Found with Lighthouse. The date slider had no accessible name and announced the day index instead of the day. All five accordions shared the ids panel2a-header and panel2a-content, so aria-controls pointed at the wrong region. The statistics table had no row headers.

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 01ef4b0):

https://tormap-36f44--pr614-fix-frontend-a11y-sl-y2kujegm.web.app

(expires Wed, 11 Nov 2026 20:56:16 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 0c1f71965de18e60b0e686b0d0356977fec090dc

@JuliusHenke
JuliusHenke marked this pull request as ready for review October 12, 2026 21:17
@JuliusHenke
JuliusHenke merged commit 1f6d117 into master Oct 12, 2026
14 of 15 checks passed
@JuliusHenke
JuliusHenke deleted the fix/frontend-a11y-slider-accordions-table branch October 12, 2026 21:17
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