Accessibility¶
DashPilot uses native SwiftUI navigation, controls and semantic colors. Accessibility is part of completion, including the meaning and coverage of a figure, not just whether its text fits.
Reading and operating¶
- Home, Work and Money are native tabs with separate navigation stacks and Settings toolbar access.
- Onboarding has scrolling pages, decorative artwork hidden from VoiceOver, a spoken step count,
reachable Skip or Close, and focus on the title after a page change. Reduce Motion disables its
animated button transitions. Completion remains version 1 under
onboarding.completedVersion. - Important financial elements identify their metric, amount or unavailable state, units and contributing coverage. Missing shift gross in detail names the metric rather than just saying that no amount was recorded. USD is fixed; locale affects formatting, not currency.
- Money and Insights stack values at accessibility text sizes. Home uses the same bounded fitting for monetary figures so cents stay attached to the amount. Qualifiers retain Dynamic Type.
- Insights has exact selected-week values and Read All Weekly Values. At accessibility text sizes these replace charts. Native week controls do not require chart gestures; vertical scrolling is not chart selection. Zero, missing and partial coverage also have text explanations.
- Park and Pause retain different labels and effects. Delivery controls name their subject, stacked deliveries remain separate, and destructive changes use native confirmations. Undo remains available across workspace tabs for its existing active-scene window.
See the design system, financial semantics and Insights for the shared behavior.
Verification matrix¶
Use synthetic records only. Capture diagnostics outside tracked documentation assets. Retain the 40-journey essential suite; extend relevant journeys instead of adding a screenshot-only suite.
| Configuration | Inspect |
|---|---|
| iPhone default light and dark | All welcome pages, Home, active Work, Money, Insights, Settings and a historical detail |
| Narrow iPhone at AX5 | Scroll all welcome pages, reach Back and finish, keep exact amounts readable, operate week controls and corrections |
| Bold Text and Increase Contrast | Financial labels, blue actions, unavailable text, selection and focus indicators |
| Reduce Motion | Button-driven welcome transitions and unchanged navigation usability |
| iPad | Width, native tab placement, sheets, readable values and welcome controls |
| VoiceOver on physical hardware | Reading order, focus after navigation, spoken units and coverage, lifecycle controls and confirmation recovery |
XCTest label and hit-target assertions are useful evidence, but do not establish actual spoken VoiceOver behavior or physical driving usability. Simulator screenshots do not prove contrast in sunlight, battery cost, route continuity or chart frame performance. Keep these limits explicit in any verification report.
Known limits¶
The Live Activity caps Dynamic Type at xLarge. The pinned delivery-entry bar caps it at accessibility1. These constraints need a focused hardware usability review before release. Route measurement in completed-shift detail still runs on the main actor; addressing it requires a separate bounded performance interval. No physical-device VoiceOver certification is claimed.