aria-valid-attr-value fires critical on #popover:«…»:trigger across 12 student routes, in both light and dark. One shared component, so almost certainly one fix.
Routes: assignment-detail, assignments, course-home, discussion-new, notifications, submission-checks, submission-deployments, submission-files, submission-grade, submission-repo-analytics, submission-results, submission-root
Likely cause: the popover trigger carries aria-controls (or aria-describedby) pointing at the popover's content id, but the content is not rendered until the popover opens, so the referenced id does not exist while closed. Assistive tech follows a dangling reference.
Criterion: 4.1.2 Name, Role, Value (Level A)
This was invisible before the coverage sweep because these routes were never scanned.
Reproduce
A11Y_COVERAGE=1 BASE_URL=http://localhost:3001 \
npx playwright test tests/e2e/a11y-coverage.test.tsx --project=chromium
Findings are currently recorded in tests/e2e/a11y/baseline.json, so the sweep is green — they are tracked debt, not failures. Fixing one means deleting its line from the baseline; the sweep then keeps it fixed.
Surfaced by the student-page coverage sweep (#901).
aria-valid-attr-valuefires critical on#popover:«…»:triggeracross 12 student routes, in both light and dark. One shared component, so almost certainly one fix.Routes: assignment-detail, assignments, course-home, discussion-new, notifications, submission-checks, submission-deployments, submission-files, submission-grade, submission-repo-analytics, submission-results, submission-root
Likely cause: the popover trigger carries
aria-controls(oraria-describedby) pointing at the popover's content id, but the content is not rendered until the popover opens, so the referenced id does not exist while closed. Assistive tech follows a dangling reference.Criterion: 4.1.2 Name, Role, Value (Level A)
This was invisible before the coverage sweep because these routes were never scanned.
Reproduce
Findings are currently recorded in
tests/e2e/a11y/baseline.json, so the sweep is green — they are tracked debt, not failures. Fixing one means deleting its line from the baseline; the sweep then keeps it fixed.Surfaced by the student-page coverage sweep (#901).