Accessibility
Accessibility is an acceptance criterion in Parch, not a polish phase.
Contrast
- Body text: ≥ 4.5:1 against its background, in both themes.
- Large text (≥ 24px or ≥ 19px bold): ≥ 3:1.
- UI component boundaries and focus indicators: ≥ 3:1.
- Color never carries meaning alone, pair status colors with icons or labels (a red “Failed” chip also says “Failed”).
Keyboard & focus
- Every interactive element is reachable with Tab and operable with Enter/Space; focus order follows visual order.
- Focus is always visible (2px accent ring); never
outline: nonewithout a replacement. - Dialogs trap focus while open and return it on close.
- See Keyboard interaction for shortcut conventions.
Screen readers
- All controls expose name, role, and value through the toolkit's accessibility bridge (GTK: ATK/AT-SPI; Qt: QAccessible).
- Images that convey information get alt text; decorative images get none.
- Live regions announce progress completion and toasts; nothing important appears only visually.
Input flexibility
- Hit targets ≥ 32px with ≥ 8px gaps; 44px on touch-first surfaces.
- No interaction depends on hover alone or on precise pointing.
- Respect the system's reduced-motion and reduced-transparency settings.
Testing baseline
- Keyboard-only pass of every flow.
- Both themes with contrast checked on real content.
- Orca (or the platform screen reader) over the primary flows.
- 200% font-size scaling without clipping.