test(a11y): demonstrate clipped initial mobile CV preview

This commit is contained in:
cesnimda
2026-10-10 21:02:38 +02:00
parent 6fb440aa23
commit 84e3bb5b44
9 changed files with 144 additions and 7 deletions
@@ -10,9 +10,11 @@ Audit source `cf847e9b256d9aec733abf3f37c42852c9dd2421`,2026-10-10. These findin
| **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
These are rule entries/nodes, not a count of independent defects. Best-practice tags are not mislabeled as WCAG-AA violations; absence of a human reader is not a functional FAIL.
These are rule entries/nodes, not a count of independent defects. Best-practice tags are not mislabeled as WCAG-AA violations; absence of completed human-reader results is not a functional FAIL.
| ID / route / PRES | Measured evidence | Classification and next action |
|---|---|---|
@@ -34,4 +36,4 @@ These are rule entries/nodes, not a count of independent defects. Best-practice
## Scope and stop conditions
**A11Y-01 makes 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 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.