Skip to content

Agent: Audit & fix WCAG 2.2 AA accessibility across the web UI - #648

Merged
matteius merged 2 commits into
mainfrom
agent/issue-647-39049867273
Oct 17, 2026
Merged

matteius merged 2 commits into
mainfrom
agent/issue-647-39049867273

Conversation

@matteius

@matteius matteius commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Refs #647

First accessibility tranche: enable page zoom, add visible keyboard focus and skip links, and add JSX accessibility lint tooling. The lint job now runs in CI after a maintainer added the workflow change the agent's token could not push.

The lint baseline is 902 warnings and zero errors. The issue's remaining WCAG findings and manual device checks remain open; merging this PR should not close #647.

DigitalOcean session: lightnvr-public-issue-647-39049867273.

github-actions Bot and others added 2 commits October 17, 2026 16:47
First tranche of the WCAG 2.2 AA audit, following the issue's suggested
work order (tooling first, then the small global high-impact fixes):

Tooling
- Add ESLint flat config (web/eslint.config.js) with
  eslint-plugin-jsx-a11y recommended ruleset in warn mode and a
  web `npm run lint` script; register eslint-plugin-react-hooks so
  pre-existing targeted eslint-disable comments resolve without
  enabling its rules.
- Baseline: 902 jsx-a11y warnings, 0 errors, across 80 files
  (control-has-associated-label 357, label-has-for 340,
  mouse-events-have-key-events 68, no-static-element-interactions 44,
  click-events-have-key-events 39, label-has-associated-control 17,
  no-noninteractive-element-interactions 17, no-autofocus 10,
  media-has-caption 6, no-noninteractive-tabindex 2, anchor-is-valid 1,
  interactive-supports-focus 1).

P1-1 (SC 1.4.4/1.4.10): remove maximum-scale/user-scalable=no from
index.html and hls.html so page zoom works again.

P2-1 (SC 2.4.7/2.4.11/1.4.11): extend the global focus-visible outline
fallback to summary/[tabindex]; add scroll-padding-top so the header
does not cover focused elements; remove the 33 bare focus:outline-none
utilities flagged in the issue (they had no replacement indicator and
are superseded by the global rule), plus dead tokens paired with
focus:ring in the same files.

P2-2 (SC 2.4.1): keyboard-reachable "Skip to main content" link
injected from Header.jsx with a localized label (a11y.skipToMainContent
added to all 18 locales); tabindex="-1" on every page's
#main-content so skip focus lands in the main landmark.
@codecov

codecov Bot commented Oct 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@matteius
matteius merged commit 5889a3b into main Oct 17, 2026
13 checks passed
@matteius
matteius deleted the agent/issue-647-39049867273 branch October 17, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Audit & fix WCAG 2.2 AA accessibility across the web UI

1 participant