docs(a11y): record final responsive acceptance failures and evidence

This commit is contained in:
cesnimda
2026-10-10 21:07:41 +02:00
parent 84e3bb5b44
commit 82f8c37a28
26 changed files with 47610 additions and 13 deletions
@@ -1,6 +1,6 @@
# P5-15-02 — Accessibility and responsive findings
Audit source `cf847e9b256d9aec733abf3f37c42852c9dd2421`,2026-10-10. These findings are not application fixes. [Native proof](evidence/native-issues.json), [coverage](TEST_COVERAGE.md), [baseline triage](AXE_TRIAGE.md) and [operator script](MANUAL_ACCEPTANCE.md) distinguish native failures, automated rule findings and missing human evidence. No production data/provider is used. Final full-run evidence will supersede only its named observations.
Audit source `cf847e9b256d9aec733abf3f37c42852c9dd2421`,2026-10-10. These findings are not application fixes. [Native proof](evidence/native-issues.json), [fresh full-run evidence](evidence/fresh-audit.json), [coverage](TEST_COVERAGE.md), [baseline triage](AXE_TRIAGE.md) and [operator script](MANUAL_ACCEPTANCE.md) distinguish native failures, automated rule findings and missing human evidence. No production data/provider is used. Final execution supersedes only its named observations, retaining historical failures and evidence gaps.
## Confirmed behavioral failures
@@ -9,7 +9,6 @@ Audit source `cf847e9b256d9aec733abf3f37c42852c9dd2421`,2026-10-10. These findin
| **A11Y-01 — File-picker keyboard activation. W08/J10** | Native owned Job Documents at768px, EN/light: focus Upload, press Enter then Space; neither opens a picker. Settings General: repeat Import JSON and Convert CSV to Import JSON; neither keyboard key opens either picker. Click each same control: all three native pickers open. Six keyboard failures/three positive pointer controls; no file data written. | **P1, production-blocking** keyboard-only attachment upload/import unavailable; WCAG2.1.1 and button activation contract. `<label role=button tabindex=0>` with hidden file inputs and no click handler is the responsible boundary; MUI's nonnative keyboard handler does not invoke label default activation. This is more serious than the minor axe `aria-allowed-role` warning. No data/security exposure observed. | UI/attachments/import owner; independent **P5-15-04-A11Y-01** repair with native Enter/Space/pointer regressions, safe file/owner round-trip, locale/mobile/reader proof. **OPEN**. Do not bypass with focus on an inaccessible hidden input or mouse-only acceptance. |
| **A11Y-02 — Mobile drawer focus and immediate Escape. E07** | Jobs390×900 EN/light, reduced motion: focus Open navigation, Enter; drawer visible, Dashboard does not receive focus. Focus remains on the now-hidden background trigger before and after axe. Immediate Escape leaves drawer open. Tab then Escape can close it, but restores focus to another background button. CV390×844 NB/dark emulated tap also fails immediate Escape return. | **P2, release acceptance blocker**; focus order/modal containment/return (WCAG2.4.3/2.4.7 and PRES-E07). Recovery exists through an additional Tab, so this evidence does not establish every navigation action permanently unusable. Ordinary historical shell checks passing do not close the new reduced-motion path. No security/data finding. | Shell/accessibility owner; independent **P5-15-04-A11Y-02**, deterministic reduced-motion entry, containment, Escape/Tab and correct trigger return at breakpoints; retain existing shell behavior. Exact transition/focus race diagnosis remains required. **OPEN**. |
| **A11Y-03 — CV source-editor destination. C07** | Native CV Content, desktop EN/light: keyboard-activate Open Career Profile; actual href/destination `/career/profile`, which has no current route and resolves404. Expected existing `/career` or `/career?section=profile`, preserving canonical source isolation. Source action is equally incorrect for pointer activation. | **P2, functional acceptance blocker**; accessible destination/product source-versus-override contract. Canonical editor is reachable through shell; no canonical mutation, CV/history corruption or lost persisted data demonstrated. | CV/navigation owner; independent **P5-15-04-A11Y-03**, minimal existing-route correction and real source/action/Back/localisation tests. **OPEN**. Do not add a second embedded canonical editor. |
| **A11Y-11 — Initial mobile visible-page measurement. C06; C09/C12 supporting** | Open the synthetic CV directly at390×844 EN/light in initial Edit mode, wait for the native ready signal, Enter Preview and settle fonts/two animation frames. Hidden measurement width793.6875 is physical; visible page width/flow remains0 with ready=true/non-finite page dataset. Preview says1page and shows collapsed/clipped text. The same owned native export API returns200 and **1 A4 PDF page**: page count matches, content placement does not. [Native proof](evidence/mobile-preview-proof.json), [preview](evidence/screenshots/mobile-preview-measurement-390-en-light.png), [PDF page1](evidence/screenshots/mobile-preview-native-pdf-page1.png). Bokmål/dark emulated screenshot independently shows the same collapsed strip. | **P1, production/progression-blocking** materially incorrect content placement/clipping and unusable preview; no page-count mismatch is claimed for this fixture. [CV frame](../../../../../job-tracker-ui/src/views/CvBuilderEditor.tsx) hides visible-page frames in compact Edit mode; [pagination](../../../../../job-tracker-ui/src/cvPreview.ts) reads their width under display:none and publishes ready/page data without visible-mode remeasurement. The finite direct-renderer/desktop-first16 fixtures can pass while this lifecycle fails. Native PDF remains correct/authoritative; no content/revision/source mutation observed. | CV/rendering owner; independent **P5-15-04-CV-01**, regression-first deterministic visible-page physical measurement when initially hidden, readiness/layout after mode switch, EN/NB/themes/mobile/direct reload and full fidelity gates. Do not alter print geometry/PDF to match collapsed preview. **OPEN**. |
## Automated findings requiring a contextual disposition
@@ -36,4 +35,4 @@ These are rule entries/nodes, not a count of independent defects. Best-practice
## Scope and stop conditions
**A11Y-01 and A11Y-11 make P5-15-02 NO-GO for P5-15-03 until the severe keyboard gap is repaired or explicitly reviewed with adequate evidence.** Continue only safe audit collection; no upload of real user data, emergency broad UI change or automatic next slice. Other findings remain separately owned in P5-15-04; production additionally stays NO-GO for F04, backup/restore, configuration/schema/secrets, rollback and deployed acceptance. No new authentication/tenant-integrity regression is demonstrated by these UI findings. P5-13 remains deferred/unqualified/Production-withheld (0/366, no human semantic reviews/UI); no Docker/provider/B07/deployment work.
**A11Y-01 and A11Y-11 make P5-15-02 NO-GO for P5-15-03 until both severe defects are independently repaired and verified, or their findings are overturned by adequate evidence.** Continue only safe audit collection; no upload of real user data, emergency broad UI change or automatic next slice. Other findings remain separately owned in P5-15-04; production additionally stays NO-GO for F04, backup/restore, configuration/schema/secrets, rollback and deployed acceptance. No new authentication/tenant-integrity regression is demonstrated by these UI findings. P5-13 remains deferred/unqualified/Production-withheld (0/366, no human semantic reviews/UI); no Docker/provider/B07/deployment work.