Section 12
Accessibility
A colouring app must be usable by people who can’t reliably distinguish colours. The number labels are the accessibility fallback, and they must remain legible at every zoom level.
12.1 — Colour‑blindness
- Palette validation in the bundler runs every artwork through deuteranopia, protanopia, and tritanopia simulations.
- An “always show numbers” setting is enabled by default and cannot be hidden by the canvas at any zoom level.
- Numbers render with a high‑contrast halo against the underlying region fill.
- An optional “pattern fills” mode applies subtle hatching distinct per colour for accessibility users who prefer it.
12.2 — Screen readers
- Every palette swatch announces its name and number (“Colour 7, Saffron, 42 cells remaining”).
- The canvas exposes a region count and completion percentage via semantics.
- Library cards announce title, category, premium status, and progress.
12.3 — Motion & dynamic type
- Respect the system “reduce motion” setting — disable fill animation, replace with an instant transition.
- Dynamic Type / Android font scaling supported on every screen except the canvas itself.
- Number labels on the canvas scale with the artwork zoom, not with system font scale.
12.4 — Tap targets
Regions smaller than 24 px at the artwork’s natural zoom level are flagged by the validator. The canvas implements a “snap to nearest small region” within a 16 px radius of the tap point to avoid frustrating misses.