Register an Activity Using Only a Screen Reader
Activity registration is the most critical workflow in the app and must be fully accessible. The multi-step activity wizard (activity type → date → duration → notes → confirmation) must expose correct semantics at every step: step progress must be announced (e.g., 'Step 2 of 5: Select date'), picker controls must expose their current value and available options, the confirmation screen must summarise all selected values before submission, and error messages must be announced as live regions immediately when validation fails. The activity-wizard-semantics component must coordinate semantics across all wizard steps, and the focus-management-service must ensure focus lands on the first interactive element of each new step when advancing.
User Story
Acceptance Criteria
- Given a peer mentor opens the activity registration bottom sheet with VoiceOver active, when the first step loads, then VoiceOver announces 'Activity Registration, Step 1 of 5: Select activity type'
- Given the peer mentor is on the date step, when they interact with the date picker, then the current selected date and available navigation controls are announced with their values
- Given the peer mentor advances to the next step, when the new step loads, then focus automatically moves to the step heading and the step number is announced
- Given a required field is left empty and the peer mentor attempts to advance, when validation fails, then an error live region announces the specific error message immediately
- Given the confirmation step, when the screen reader traverses it, then all selected values (activity type, date, duration, notes) are listed and readable in sequence
- Given the peer mentor submits the registration, when it succeeds, then a live region announces 'Activity registered successfully' and focus returns to the home screen
Business Value
Activity registration is the single highest-priority function across all three organisations. For visually impaired peer mentors at Blindeforbundet, an inaccessible registration flow means their contributions go unrecorded — directly causing the underreporting problem the app was built to solve. Making this workflow fully accessible with a screen reader is not optional; it is the minimum viable product for this user population.
Components
- Activity Registration Bottom Sheet ui
- Activity Type Selection Step ui
- Date Selection Step ui
- Duration Selection Step ui
- Optional Notes Input Step ui
- Registration Confirmation View ui
- Activity Registration Cubit service
- Semantics Wrapper Widget ui
- Live Region Announcer ui
- Activity Wizard Step Semantics ui
- Focus Management Service service
- Semantics Service Facade infrastructure
- Wizard Progress Indicator ui
- Single-Action Screen Layout ui
- Plain Language Error Display ui
- Accessibility Live Region Announcer infrastructure