Skip to content

Keryx accessibility (in-repo first slice) ​

First slice: 17 September 2026 · Decision: 20 September 2026

This packet is the in-repo slice of #116 (P4-02). It does not claim a WCAG, VoiceOver, or TalkBack pass.

#116 is closed (20 September 2026). OA-116-device-a11y was skipped: Keryx is for named hospital security personnel and SafeCall administrators, not a general-public accessibility store claim. Physical AT / contrast / tablet evidence is out of scope for launch. In-repo permission-recovery UI and widget tests stay.

Policy history: P0-04 in roadmap.md (superseded for the AT/WCAG device gate). Cadence: test-traceability.md.

Decision ​

ChoiceValue
ScopeCritical flows: onboarding, QR scan, permission recovery, Active/Archive, notification detail, pause/resume, rescan, reset, language
AutomatedCamera/notification denial UI + Settings CTA; 200% textScaler widget tests; spoken names on remaining controls
Not claimedVoiceOver/TalkBack, contrast screenshots, orientation/tablet matrix, WCAG 2.2 AA conformance
Launch gateClosed 20 September 2026: no VoiceOver/TalkBack walk; #116 closed

What this slice proves ​

  • Camera denial on the scanner is not a dead end: explanation + Open Settings (MobileScanner errorBuilder, first-party com.sourcectl.keryx/system_settings channel). Tests inject debugCameraDenied.
  • Notification denial shows a persistent home/onboarding banner with the same Settings path and does not block QR scan. Tests inject KeryxPermissionRecovery.
  • On resume, Keryx re-checks notification permission and retries the camera.
  • Scanner close, Scan QR, pause/resume, Reset App, and language controls have tooltips or Semantics names. Category cards already had a combined label.
  • IconButton targets stay at the Material default (48 dp). Onboarding and recovery copy scroll at 200% text.

EN/CS strings live in keryx/l10n/app_en.arb and app_cs.arb. Settings paths match app-onboarding-guide.md (iOS Settings → Keryx; Android Apps → Keryx).

What this slice does not do ​

  • Claim WCAG 2.2 AA, VoiceOver, or TalkBack.
  • Physical first/permanent deny + Settings recovery on device.
  • Contrast measurement, reduced-motion proof, or tablet/orientation matrix (#117 still owns OEM / soak, not AT).
  • A GitLab CI accessibility job.

Operator enable ​

OA-116-device-a11y is skipped. Do not reopen #116 as a launch blocker without a new product decision.