5.2 KiB
P5-15-02 — Inherited axe triage
Source checkpoint cf847e9b256d9aec733abf3f37c42852c9dd2421. The raw-derived baseline inventory independently reconciles 267 result attachments / zero violations / 2,041 incomplete node occurrences from the final R-03 ordinary run. This is fresh parsing of inherited execution, not a new browser run. The approximate 2,040 in the request is superseded by the actual 2,041 count.
One occurrence is one incomplete[].nodes[] entry. Repeated states, languages, themes, generated IDs and CSS classes remain counted. Exact-node hashes and normalized grouping are provided to reduce duplicated investigation; neither is a count of distinct defects. The five rules have 5/38/4/304/2 normalized groups respectively. Full scan ledger, messages, representative targets, HTML excerpts and hashes are retained in the JSON. Attachments without result JSON are excluded; 267 is not every axe invocation in the application.
| Priority / rule | Occurrences | Underlying evidence and representative component | Required verification / status |
|---|---|---|---|
High: aria-hidden-focus |
41 | Five normalized groups; retained MUI modal drawer and modal focus scopes. Every message asks whether descendants are tabbable in the current state. | Traverse real Tab/Shift+Tab with drawer open/closed; inspect active modal/hidden background and Escape return, then human screen reader. PARTIAL; potentially serious if hidden content receives focus. A retained hidden node alone is not a failure. |
High: aria-valid-attr-value |
18 | Four groups in named-controls/modal fixtures. Generated aria-labelledby IDs are missing on Quick Search and other MUI Dialog papers, even when an explicit aria-label exists. |
Inspect settled DOM/AX name; match dialog title reference or explicit name, then test spoken name with operator. PARTIAL; unresolved semantic reference candidate, not automatically an unnamed dialog. |
Medium: aria-prohibited-attr |
209 | 204 generic spans and five generic divs; 38 groups. Includes CV/status labels, Board states and the admin version badge (div with aria-label, no supported naming role). |
Determine whether essential state is independently conveyed as readable text/control semantics; operator review. PARTIAL; unsupported ARIA use requires scope-specific correction if it carries essential meaning. No global removal or automatic violation inference. |
Medium: th-has-data-cells |
4 | Two groups in Jobs Table empty/missing action-data cells, both languages. Message: table data cells missing or empty. | Inspect populated and empty table header associations, row action names and nonvisual table navigation. PARTIAL; empty/action-column structure and tool limitation must be distinguished. |
Medium: color-contrast |
1,769 | 1,383 overlapped background +193 partially obscured +4 partial overlap +189 too-short-text checks; 304 groups. Includes badges, sticky/pane intersections and dialog states. | Human rendered-pair review and measured foreground/background in the actual unobscured state. Separate real obstructed controls from intentional off-screen/hidden/transitional content. PARTIAL; incomplete contrast is neither passing nor demonstrated low contrast. |
No category is closed solely from zero violations. Real low contrast, focus traps, inaccessible states or missing names found by the fresh audit belong in its defect register. Remaining incompletes require the operator programme, including speech rather than an accessibility snapshot. Representative messages may come from third-party MUI/axe behavior; that does not exempt the product from acceptance.
Acceptance standard and supplemental coverage
The Phase 3 accessibility plan requires ordinary text 4.5:1, large text 3:1, essential controls/focus 3:1, usable 320 CSS-px ordinary content and a 44px touch-target aim. Phase 4 acceptance and original PRES contracts remain binding. WCAG 2.2 AA obligations are not weakened: the 2.5.8 minimum/spacing exceptions and project 44px aim are distinct.
Installed axe-core 4.13.0 metadata maps the inherited rules to 1.4.3/4.1.2/1.3.1. Earlier fixture tags principally select WCAG 2.0/2.1 A/AA. target-size is disabled by default; a zero earlier result does not qualify 2.2 target size. Fresh supplemental audit explicitly selects wcag22aa and enables that rule. Supplemental scan totals are recorded separately from the inherited 267. No rules are disabled and no failed control is hidden to improve results. Local standards and installed metadata were inspected; external websites were not queried.
Human/device availability boundary
The read-only local probe found Narrator installed, no active screen-reader process and no detected physical test device; that is availability information, not testing. The owner subsequently reported a screen-reader operator available. An operator packet was issued; actual observed spoken results remain NOT VERIFIED until supplied. Installed software and operator availability cannot substitute for a completed workflow record. Physical touch, software keyboard, mobile screen reader, other browser/device combinations and production fonts remain open.