medium complexity extracted Accessibility Confidence: 100%
6
Components
106
Shared
0
User Stories
Yes
Analyzed

Description

This feature displays a prominent warning to the user when a screen reader is active and is about to read out a field that contains sensitive personal information — such as a contact's full name, address, phone number, or health-related data. The warning interrupts the automatic readout and prompts the user to confirm they are in a private environment before the content is spoken aloud. This prevents accidental exposure of confidential data to bystanders in public settings. The feature is configurable at the organisation level so that administrators can designate which fields are sensitive based on their specific data policies.

User Flow

Sensitive Field Readout Warning user flow
Click to expand

Analysis

Business Value

Partner organisations — particularly NHF and Blindeforbundet — handle highly personal data about vulnerable individuals, including health conditions, home addresses, and assignment details. Blind users who rely on screen readers routinely use the app in public spaces such as public transport or waiting rooms. Without a readout warning mechanism, sensitive data could be inadvertently broadcast to strangers, violating both user privacy and GDPR data minimisation principles. This feature was explicitly raised by NHF as a requirement and directly addresses the organisation's duty of care to both peer mentors and the contacts they support. It also reduces the liability exposure for Norse Digital Products and partner organisations in the event of a data incident.

Implementation Notes

Implementation involves annotating sensitive data fields in the data model layer with a sensitivity flag that the UI layer reads at render time. A SensitiveFieldWidget wrapper intercepts the Flutter accessibility system's focus and speak events using a custom SemanticsAction override. When a screen reader focuses a sensitive field, the widget triggers an interstitial dialog — rendered above the current screen with its own accessible label — that pauses readout and asks the user to confirm they are in a private environment. If confirmed, readout proceeds normally; if dismissed, the field announces only a generic placeholder (e.g., 'Sensitive data — tap to reveal'). The sensitivity configuration is driven by the organisation-level settings stored in the Organisation Settings screen, allowing admins to mark fields as sensitive without a code deploy. The feature must itself be fully accessible and operable by screen reader users.

Components (112)

User Interface (2)

Service Layer (2)

Data Layer (2)

Shared Components

These components are reused across multiple features

Service Layer (34)

Data Layer (22)

Infrastructure (38)

infrastructure Keychain/Keystore Adapter low Shared infrastructure JWT Claims Extractor low Shared infrastructure Organization Labels Adapter low Shared infrastructure Keychain/Keystore Adapter low Shared infrastructure Auth API Client medium Shared infrastructure REST API Client medium Shared infrastructure WCAG Accessibility Adapter low Shared infrastructure Registration API Client low Shared infrastructure Accounting API Client high Shared infrastructure PDF Renderer Adapter medium Shared infrastructure File Share Adapter low Shared infrastructure FCM/APNs Adapter high Shared infrastructure Share Sheet Adapter low Shared infrastructure Share Plus Adapter low Shared infrastructure Platform Accessibility Bridge medium Shared infrastructure Semantics Override Adapter high Shared infrastructure URL Launcher Adapter low Shared infrastructure Markdown Content Renderer low Shared infrastructure Network Connectivity Monitor low Shared infrastructure Expense Receipt Storage Adapter low Shared infrastructure Audit Log Writer low Shared infrastructure Feature Flag Checker low Shared infrastructure Logo Upload Adapter low Shared infrastructure Terminology Constants Registry low Shared infrastructure Feature Flag Cache Adapter low Shared infrastructure Org Scope JWT Resolver medium Shared infrastructure Association Audit Logger low Shared infrastructure Token Blocklist medium Shared infrastructure Analytics Tracker low Shared infrastructure SEO Metadata Config low Shared infrastructure Analytics Tracker low Shared infrastructure Analytics Tracker low Shared infrastructure Sales Analytics Tracker low Shared infrastructure Email Provider Adapter low Shared infrastructure Terms of Service Content Provider low Shared infrastructure Legal PDF Asset Provider low Shared infrastructure Consent-Gated Script Loader low Shared infrastructure Legal Page Layout low Shared

User Stories

No user stories have been generated for this feature yet.