User Interface low complexity mobile
1
Dependencies
0
Dependents
2
Entities
0
Integrations

Description

A Flutter SensitiveFieldWrapper widget that intercepts screen reader focus on sensitive content and presents an accessible modal warning before revealing the value. When SemanticsBinding.instance.accessibilityFeatures.accessibleNavigation is true and focus moves to a wrapped field, the widget pauses readout and offers the peer mentor options to dismiss, delay, or proceed. The warning modal is itself fully accessible with a dismiss Semantics action and never echoes the protected content in its own semantic tree.

Feature: Sensitive Field Readout Warning

sensitive-field-warning-widget

Sources & reasoning

NHF explicitly raised screen reader readout warnings as a WCAG requirement in workshops (line 37). Blindeforbundet's encrypted assignment feature handles names, addresses, and epikrise content readable by VoiceOver - a confidentiality breach in shared spaces. This Flutter widget is the single UI mechanism that intercepts screen reader focus and gates readout behind a user-confirmed warning, satisfying GDPR duty-of-care without affecting non-screen-reader users.

No source references — this artifact was included based on reasoning alone (see above).

Responsibilities

  • Detect active screen reader via Flutter SemanticsBinding.instance.accessibilityFeatures.accessibleNavigation
  • Intercept semantic focus on fields annotated with the sensitive metadata marker
  • Present accessible modal warning with dismiss/proceed actions before revealing field value
  • Ensure the warning widget itself is WCAG 2.2 AA compliant and never leaks protected content in its semantic tree
  • Apply consistently across contact ID fields, encrypted assignment body, relative personal details, and any schema-tagged sensitive field

Interfaces

SensitiveFieldWrapper(child: Widget, label: String)
dismiss()
proceedToReadout()
SensitiveFieldAnnotation metadata marker

Relationships

Dependencies (1)

Components this component depends on

Related Data Entities (2)

Data entities managed by this component