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

Description

This feature wraps form fields and data displays containing sensitive personal information (names, addresses, health details, fĂždselsnummer, epikrise content) with a screen-reader-aware warning system. Before VoiceOver/TalkBack reads out a sensitive field's content aloud, the wrapper announces a configurable caution (e.g. 'sensitive content - confirm surroundings') so the user can suppress audible output in public settings. The wrapper exposes per-field sensitivity metadata and integrates with the a11y primitives so any screen showing protected data inherits the protection without bespoke code.

Sources & reasoning

Explicitly called out in §1.2 (line 24) as an NHF-flagged requirement under the universal-design MUST HAVE umbrella. It is bundled with the Phase 1 WCAG accessibility scope and depends on the WCAG primitives to wrap fields uniformly.

  • Varsling ved opplesning av sensitive felt (NHF).
  • Skjermleser-stĂžtte (VoiceOver/JAWS): Alle interaktive elementer skal ha semantiske labels og ARIA-attributter. SĂŠrlig kritisk for Blindeforbundet, men relevant for alle.

Analysis

Business Value

Blind and low-vision users rely on screen readers in public spaces - buses, waiting rooms, cafés - where audible readout of contact addresses, health information, or assignment details would constitute a privacy breach by the app itself. NHF specifically flagged this risk during the workshop. Without an explicit pre-readout warning, the product would force visually impaired peer mentors to choose between using the app accessibly and protecting their contacts' personal data - an unacceptable trade-off that undermines both accessibility and GDPR posture. The feature is a small surface but a critical trust signal, especially for Blindeforbundet's user base, and supports the platform's broader commitment to dignity-preserving design.

Implementation Notes

Implementation introduces a SensitiveFieldWrapper Flutter widget that intercepts the Semantics node and prepends a Readout Warning Service announcement when the screen reader focuses or activates the field. Sensitivity is declared per-field via a metadata flag, allowing forms (Contact Edit, Assignment Detail, Caregiver Form, Home Visit Report) to opt in without duplicating logic. The warning text is sourced from the Organization Labels system so wording can be localized and tenant-customized. The service must coordinate with VoiceOver/TalkBack focus events and respect user preference to suppress repeated warnings within a session. Audit logging records when sensitive fields are revealed to support security review.

Quality Assurance

Peer Mentor (Likeperson) - primary
1
Scenarios
5
UAT Steps
15
A11y Annotations
2
Role Boundaries
Peer Mentor (Likeperson)

Peer Mentor (Likeperson)

Quick UAT

  1. SlÄ pÄ skjermleser (VoiceOver pÄ iOS / TalkBack pÄ Android) og logg inn i Meander-appen som Likeperson.
  2. Åpne Kontakter og velg en kontakt med sensitiv informasjon (helseopplysninger, fþdselsnummer).
  3. Naviger til et sensitivt felt (f.eks. Helsestatus) - bekreft at skjermleseren annonserer 'Sensitivt felt, dobbelttrykk for Ă„ lese innhold' i stedet for selve verdien.
  4. UtfÞr den eksplisitte bekreftelsesgesten (dobbelttrykk) for Ä lÄse opp feltet.
  5. Bekreft at skjermleseren nÄ leser opp den faktiske verdien, og at feltet lÄses igjen nÄr du forlater skjermen.

Quick UAT — Accessibility

  1. SlÄ pÄ skjermleser (VoiceOver pÄ iOS / TalkBack pÄ Android) og logg inn i Meander-appen som Likeperson.
    • Screen reader Innloggingsskjerm annonseres med tittel og felter; tab-rekkefĂžlge: e-post → passord → Logg inn.
    • Keyboard / focus Alle felt og knapper nĂ„s via tastatur/eksternt tastatur.
    • Focus visibility Synlig fokusring pĂ„ aktivt felt; alle kontroller har semantiske labels.
  2. Åpne Kontakter og velg en kontakt med sensitiv informasjon (helseopplysninger, fþdselsnummer).
    • Screen reader Listeoverskrift 'Kontakter' annonseres; hvert listeelement leses som 'Navn, kontakt, dobbelttrykk for Ă„ Ă„pne'.
    • Keyboard / focus Sveip/piltaster navigerer rader; Enter/dobbelttrykk Ă„pner kontakt.
    • Touch target Hvert listeelement ≄ 24×24 CSS px.
  3. Naviger til et sensitivt felt (f.eks. Helsestatus) - bekreft at skjermleseren annonserer 'Sensitivt felt, dobbelttrykk for Ă„ lese innhold' i stedet for selve verdien.
    • Screen reader Annonsering: 'Sensitivt felt: Helsestatus. Skjult. Dobbelttrykk for Ă„ lese innholdet.' - selve verdien leses IKKE opp.
    • Focus visibility Tydelig visuell indikator (lĂ„sikon + 'Skjult') pĂ„ feltet; ikke kun farge skiller skjult/synlig.
    • Contrast LĂ„sikon og 'Skjult'-tekst har minst 4.5:1 kontrast; status formidles av ikon + tekst, ikke kun farge.
  4. UtfÞr den eksplisitte bekreftelsesgesten (dobbelttrykk) for Ä lÄse opp feltet.
    • Screen reader Etter gest: 'Bekreft opplesning av sensitivt felt. Helsestatus. Dobbelttrykk for Ă„ bekrefte, sveip for Ă„ avbryte.'
    • Keyboard / focus Bekreftelse kan ogsĂ„ utlĂžses via Enter pĂ„ fokusert felt - det finnes et ikke-drag/ikke-gest alternativ.
    • Focus visibility Bekreftelsesdialog mottar fokus automatisk; fokus returneres til feltet etter lukking.
  5. Bekreft at skjermleseren nÄ leser opp den faktiske verdien, og at feltet lÄses igjen nÄr du forlater skjermen.
    • Screen reader Skjermleseren annonserer verdien Ă©n gang: 'Helsestatus: [verdi]'.
    • Focus visibility NĂ„r skjermen forlates og Ă„pnes pĂ„ nytt er feltet skjult igjen - opplĂ„sing persisteres ikke.
    • Live region 'Sensitivt felt lĂ„st opp midlertidig' annonseres som hĂžflig live region.

Role Boundaries

2 role(s) must NOT access this feature
  • Prospective Buyer

    Funksjonen finnes kun i Meander-mobilappen; prospective-buyer har ingen app-tilgang og kan ikke nÄ sensitive felt.

  • Global Administrator

    Global Admin har ingen standardtilgang til organisasjonens operative data og kan ikke utlĂžse opplesningsvarsel i mobilappen.

Expected End State

Sensitive felt leses aldri opp av skjermleser uten en eksplisitt brukerbekreftelse. Etter bekreftet opplÄsing leses verdien én gang; feltet lÄses automatisk igjen ved navigering bort fra skjermen, slik at konfidensiell informasjon ikke utilsiktet annonseres i offentlige eller delte miljÞer.

User Stories

No user stories have been generated for this feature yet.