WCAG-Compliant Screen Reader Labels Resolved from Organization Terminology
Blindeforbundet and NHF both have users who rely on screen readers. The WcagSemanticsLabelResolver bridges the dynamic terminology system with Flutter's Semantics layer, ensuring that every interactive widget's accessibilityLabel and hint are derived from the organization's label configuration rather than static strings. This is especially critical for activity registration fields, navigation items, and form controls, where the role-specific terminology directly informs the semantic description announced to the user.
User Story
Acceptance Criteria
- Given a peer mentor uses VoiceOver on iOS, When they navigate the activity registration wizard, Then the screen reader announces organization-specific terminology (e.g., 'Register peer mentor session' instead of 'Register activity') as configured for their organization
- Given a label key is updated in the organization's terminology configuration, When the sync completes and the user navigates the app with a screen reader, Then the updated semantic label is announced without requiring an app restart
- Given a terminology-aware widget is rendered, When Flutter's accessibility inspector examines it, Then the semantics node carries the resolved organization label, not the raw label key string
- Given a label key has no organization-specific override, When a screen reader announces it, Then a sensible default value is used rather than exposing the raw key identifier
- Given the WCAG 2.2 AA standard, When all terminology-aware widgets are audited by the accessibility audit runner, Then no contrast, labeling, or focus management violations are reported
Business Value
Universal accessibility is a MUST HAVE requirement identified across all partner organizations, with particular criticality for Blindeforbundet (screen reader dependency) and NHF (users with cognitive and motor impairments). Ensuring that dynamic terminology is properly surfaced through the accessibility layer means the organization's inclusive language commitment extends to assistive technology users, avoiding a two-tier experience.
Components
- WCAG Semantics Label Resolver infrastructure
- Terminology-Aware Text Widget ui
- Label Key Resolver Service service
- Label Key Registry infrastructure
- Terminology Riverpod Providers infrastructure
- Semantics Wrapper Widget ui
- Live Region Announcer ui
- Semantics Service Facade infrastructure
- WCAG 2.2 AA Compliance Checker infrastructure
- Accessibility Audit Runner infrastructure