Adjust Font Scale for Improved Text Readability
Users access the Accessibility Settings screen and use the Font Scale Widget to select a font scale factor. The widget renders a live sample text block at the selected scale so users can see the effect before saving. Once confirmed, the ThemeService applies the chosen textScaleFactor at the MaterialApp level, ensuring consistent scaling across all screens without requiring an app restart. The preference is persisted via ThemeRepository to Supabase, enabling cross-device sync.
User Story
Acceptance Criteria
- Given a user opens the Accessibility Settings screen, when they interact with the Font Scale Widget slider, then the slider moves smoothly between 85% and 200% of the base font size in defined increments
- Given a user drags the font scale slider, when the slider position changes, then a sample text block below the slider immediately updates to reflect the selected scale factor
- Given a user selects a font scale and taps Confirm, when the preference is saved, then all text throughout the app scales uniformly to the selected factor without requiring an app restart
- Given a font scale preference has been saved, when the user closes and reopens the app, then the previously selected font scale is restored automatically
- Given a user has set a custom font scale, when they log in on a different device, then the same font scale preference is applied via cross-device sync
Business Value
Scalable font size is a baseline legal requirement for applications receiving public funding in Norway under WCAG 2.2 AA. Peer mentor users include elderly individuals and users with low vision who cannot use the app without adequate text size. Providing in-app font scaling removes dependency on OS-level settings that peer mentors may not know how to configure, directly reducing the barrier to adoption for the target demographic. All three partner organisations (NHF, Blindeforbundet, HLF) explicitly cited scalable text as a non-negotiable requirement.
Components
- Accessibility Settings Screen ui
- Font Scale Widget ui
- Theme Service service
- Theme Repository data