Sensitive Field Readout Warning
Feature Detail
Description
This feature displays a visible and audible warning whenever a screen reader is about to read out a field that contains sensitive personal information, such as a contact's health data, assignment details, or personal identification numbers. The warning gives the user a moment to decide whether it is safe to allow the readout in their current environment before the value is spoken aloud. The feature is configurable so that administrators can annotate which fields are sensitive, and the warning behaviour can be adjusted for different screen contexts.
Analysis
Peer mentors frequently use the app in public settings - on public transport, in waiting rooms, or in the presence of others. Sensitive personal data such as health conditions, address details, or encrypted assignment contents being read aloud without warning would be a serious privacy violation and a breach of GDPR obligations. NHF explicitly raised this requirement during workshops. For the platform operator, preventing inadvertent disclosure of sensitive data protects both the end users and the organisations from regulatory and reputational harm. This feature also reinforces user trust, which is critical for volunteers who handle confidential information on behalf of vulnerable individuals.
Implementation uses Flutter's Semantics API to intercept or wrap sensitive widget nodes with a custom SensitiveFieldWrapper widget. When a screen reader focus event is detected on an annotated sensitive field, a modal or overlay warning is shown before the value node gains focus. The sensitive field annotation is applied at the data-binding layer using a metadata flag on the relevant data model fields, ensuring that annotation is consistent across all screens that render the same data. The warning overlay must itself be fully accessible - announced by the screen reader before the value - and must not trap keyboard or switch-access focus. Coordinates with the encrypted assignments feature to ensure assignment content fields are always annotated.
Components (43)
Shared Components
These components are reused across multiple features
User Interface (9)
Service Layer (15)
Data Layer (8)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.