a11y phase 1: axe-core e2e gate + vendored-asset exclusion + dev-tools/admin batch (epic #732) #772

Closed
opened 2026-07-21 18:12:11 +00:00 by spikerj · 1 comment
Owner

First execution slice of epic #732.

Finding that reshapes the epic: ALL 72 Web:ImgWithoutAltCheck findings are in ONE file — assets/perfidy/models/Overview.html, the bundled Kenney "Hexagon Kit" asset-pack vendor documentation (not routed; /perfidy serves the snake game). That pile is vendor noise (interpreter.js precedent), not app a11y debt → sonar.exclusions **/assets/perfidy/**. The real app debt is ~82 findings across ~40 component files (keyboard equivalents, aria-labels, role misuse, table headers).

Scope of this slice:

  1. @axe-core/playwright gate in the anonymous e2e walk: hard-asserts zero alt-class violations on every public route (verified clean today — keeps it that way), and attaches a full WCAG A/AA violation report per route as test annotations for epic tracking (report-only until each class is fixed, then promoted to assertion).
  2. Sonar exclusion of the vendored Kenney overview page (clears 72).
  3. Fix batch 1 — top-density files (22 findings): dev-tools-decompiler (5× mat-chip keyboard), dev-tools-reg-ex (3× S5255 aria-label + 2× S6842 roles), skill-management (4× mat-chip keyboard), x86 desktop-layout (4× S6845 tabIndex), sql-runner (3× S5255 + 1× S6842).

Remaining after this slice (future batches, tracked on #732): ~60 findings in the long tail of files + the maintainability-tagged phase-2 set.

First execution slice of epic #732. **Finding that reshapes the epic:** ALL 72 `Web:ImgWithoutAltCheck` findings are in ONE file — `assets/perfidy/models/Overview.html`, the bundled Kenney "Hexagon Kit" asset-pack vendor documentation (not routed; /perfidy serves the snake game). That pile is vendor noise (interpreter.js precedent), not app a11y debt → sonar.exclusions `**/assets/perfidy/**`. The real app debt is ~82 findings across ~40 component files (keyboard equivalents, aria-labels, role misuse, table headers). Scope of this slice: 1. `@axe-core/playwright` gate in the anonymous e2e walk: hard-asserts zero alt-class violations on every public route (verified clean today — keeps it that way), and attaches a full WCAG A/AA violation report per route as test annotations for epic tracking (report-only until each class is fixed, then promoted to assertion). 2. Sonar exclusion of the vendored Kenney overview page (clears 72). 3. Fix batch 1 — top-density files (22 findings): dev-tools-decompiler (5× mat-chip keyboard), dev-tools-reg-ex (3× S5255 aria-label + 2× S6842 roles), skill-management (4× mat-chip keyboard), x86 desktop-layout (4× S6845 tabIndex), sql-runner (3× S5255 + 1× S6842). Remaining after this slice (future batches, tracked on #732): ~60 findings in the long tail of files + the maintainability-tagged phase-2 set.
Author
Owner

Phase 1 merged in spikersoft-angular PR #507: axe gate live in CI, vendored Kenney page excluded, 18 findings fixed, 4 accepted as correct ARIA in SonarQube. Batch 2 (~60 long-tail findings) in progress under epic #732. Closing this phase ticket.

Phase 1 merged in spikersoft-angular PR #507: axe gate live in CI, vendored Kenney page excluded, 18 findings fixed, 4 accepted as correct ARIA in SonarQube. Batch 2 (~60 long-tail findings) in progress under epic #732. Closing this phase ticket.
Sign in to join this conversation.