a11y: WCAG/mobile fixes and deterministic visual gates #65
No reviewers
Labels
No Label
area/backend
area/data
area/frontend
area/model
area/privacy
area/release
area/safety
blocked
human-gate
priority/P0
priority/P1
priority/P2
state:review
type/docs
type/epic
type/feature
type/ops
type/research
type/security
type/test
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stackchain/timmy-talking-turd#65
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "free/step-timmy-14"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #14
Strict RED-GREEN browser-verified fixes:
Privacy/safety paths unchanged. Evidence: 67 unit tests pass, staging-deploy 20 tests OK, test:ui / test:a11y / test:photo / test:sleek all PASS, check:syntax clean, check_diff clean, npm audit 0 vulnerabilities. Screenshots visually inspected.
No merge, no deploy — awaiting review.
Strict RED-GREEN per defect, verified in a real browser: - Nav buttons expose accessible names ('Today navigation item') and the active view carries aria-current=page - Urgent red-flag box is an assertive role=alert live region so screen readers announce 'Pause and get medical help' the moment a red-flag symptom is checked - Log sheet dismisses on Escape (keyboard path out of the modal) - --muted darkened #756e68 -> #6a635c: muted text now meets WCAG AA 4.5:1 on paper, surface, and soft backgrounds - New npm run test:a11y gates (Playwright, mobile viewport): landmarks/labels/focus-ring/touch-targets/reduced-motion, urgent-alert announcement + dialog semantics, token contrast math and 200% text-zoom resilience; each writes a synthetic screenshot to artifacts/a11y-*.png for human inspection - CI runs test:a11y and uploads the screenshots as artifacts - sleek-chat selector updated to the new accessible nav name Privacy/safety paths unchanged: local-first storage, consent-gated AI, deterministic urgent override all still pass existing suites.Exact-head hostile review of
6eeb098245da: REQUEST_CHANGES / do not merge. The controller's CI-only commit correctly replaced unsupportedupload-artifact@v4with Gitea-compatible v3 and exact-head CI is green, but the accessibility implementation remains release-blocked:aria-modal; Tab reaches background nav, no focus trap/inert background, close does not restore opener. Immediate Escape fails for manual logger; photo dialog has no Escape handler.#chat-messagecomposer has no visible keyboard focus (outline:0, no replacement).test:a11y; hard-coded port readiness can attach to a stale server.Preserved passes: 67/67 units, deploy suite, six browser suites, urgent alert treatment, storage/SW isolation, strict staged CSP, audit/syntax/diff, and the corrected artifact action. Required: real modal lifecycle/keyboard behavior, visible focus on every interactive control, 320px no-overflow proof, non-vacuous browser assertions, dynamic owned server startup, and a11y in release gates. No merge/deploy.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Gitea.