low complexity extracted Notifications Confidence: 100%
3
Components
2
Shared
0
User Stories
Yes
Analyzed

Description

Notification Settings give every user a granular preference center to control which notification scenarios they receive on which channels, set quiet hours, and toggle per-organization noise. Preferences are stored server-side and synced across devices. The settings screen meets WCAG 2.2 AA: minimum 24x24 touch targets, screen-reader-labeled toggles, and tested keyboard navigation. Sensible defaults are role-aware so a new peer mentor receives essential alerts without configuration.

Sources & reasoning

Notification preferences are implied by the WCAG 2.2 AA mandate (line 16) and the accessibility touch-target requirement (line 21), and required to deliver the per-scenario channel choices in notification-scenarios. As baseline privacy/UX hygiene it belongs in MVP alongside push.

  • Appen SKAL oppfylle WCAG 2.2 nivĂ„ AA som minimumskrav for alle skjermer og interaksjoner - fra dag Ă©n, for alle organisasjoner.
  • Touch targets: Minimum 24x24 CSS-piksler for alle interaktive elementer (WCAG 2.2 target size).

Analysis

Business Value

Without user-controlled notification preferences, the app risks immediate uninstall when alerts feel intrusive - especially for older volunteers who form a large share of the user base across all four organizations. Preference control is also a regulatory expectation under GDPR's data-minimization principle: users must be able to opt out of non-essential communications. Providing clear, accessible toggles from MVP day one prevents support tickets, protects engagement metrics, and demonstrates respect for volunteer time, which directly supports recruitment and retention narratives that NHF and HLF highlight as strategic concerns.

Implementation Notes

Implemented as a Notification Settings Screen (Flutter) backed by a Notification Preferences Service that reads/writes a notification_preferences row keyed to user. The Notification Pref Store schema captures per-scenario channel toggles (push/email/SMS), quiet hours window, and global mute. The screen uses the existing design-token system and AppTextField/AppButton primitives to inherit WCAG 2.2 AA compliance and the Organization Labels system for terminology. Defaults seeded at user creation are role-aware (peer mentor vs coordinator). All changes are immediately persisted via REST API; offline edits queue through the Sync Outbox.

Quality Assurance

Peer Mentor (primary) · Coordinator (same flow)
1
Scenarios
5
UAT Steps
11
A11y Annotations
3
Role Boundaries
Peer Mentor (Likeperson)

Peer Mentor (Likeperson)

Quick UAT

  1. Logg inn i Meander-mobilappen som Likeperson og Ă„pne hamburgermenyen → Innstillinger → Varslingsinnstillinger.
  2. Bekreft at skjermen viser kun kategorier som gjelder din rolle og lokallagets aktiverte moduler (f.eks. Aktiviteter, Oppdrag hvis aktivert).
  3. SlÄ av push-kanalen for kategorien 'PÄminnelser' og slÄ pÄ e-post for samme kategori.
  4. Sett stille-periode fra 22:00 til 07:00 og trykk Lagre.
  5. Lukk skjermen, Äpne den pÄ nytt og bekreft at endringene fortsatt er valgt.

Quick UAT — Accessibility

  1. Logg inn i Meander-mobilappen som Likeperson og Ă„pne hamburgermenyen → Innstillinger → Varslingsinnstillinger.
    • Screen reader VoiceOver/TalkBack annonserer 'Varslingsinnstillinger, overskrift'; fokus lander pĂ„ sideoverskrift.
    • Keyboard / focus Hamburgermeny nĂ„s med Tab; Enter Ă„pner; menyelementer i logisk rekkefĂžlge.
  2. Bekreft at skjermen viser kun kategorier som gjelder din rolle og lokallagets aktiverte moduler (f.eks. Aktiviteter, Oppdrag hvis aktivert).
    • Screen reader Hver kategori annonseres med navn og status, f.eks. 'Aktiviteter, gruppe'.
    • Zoom Liste forblir lesbar ved 200% zoom uten horisontal scroll.
  3. SlÄ av push-kanalen for kategorien 'PÄminnelser' og slÄ pÄ e-post for samme kategori.
    • Screen reader Bryter annonseres som 'Push, av' og 'E-post, pĂ„' etter aktivering.
    • Focus visibility Synlig fokusring pĂ„ aktiv bryter; bryter har tilgjengelig label koblet til kategorinavn.
    • Touch target Hver bryter er minst 24x24 CSS px.
  4. Sett stille-periode fra 22:00 til 07:00 og trykk Lagre.
    • Keyboard / focus Tidsvelgere nĂ„s med Tab; piltaster justerer timer/minutter; Enter bekrefter.
    • Contrast Valgte tidsverdier har minst 4.5:1 kontrast; status indikeres ikke kun med farge.
  5. Lukk skjermen, Äpne den pÄ nytt og bekreft at endringene fortsatt er valgt.
    • Screen reader Bryterne annonserer korrekt lagret tilstand ved gjeninnlasting.
    • Live region 'Varslingsinnstillinger lagret' annonseres hĂžflig etter lagring.

Role Boundaries

3 role(s) must NOT access this feature
  • Organization Administrator

    Org Admin logger ikke pÄ mobilappen som seg selv (kun som Koordinator-kontekst). I Admin-portalen finnes ingen personlig varslingsinnstillinger-skjerm; deep-link returnerer 404.

  • Global Administrator

    Ingen mobil-tilgang; skjermen er ikke tilgjengelig. Deep-link i mobilappen avvises med 403.

  • Prospective Buyer

    Salgsnettstedet har ingen pÄlogging; varslingsinnstillinger eksisterer ikke som rute.

Expected End State

Brukerens varslingspreferanser (kategori-opt-ins, kanalvalg per kategori og stille-periode) er lagret i Notification Pref Store og leveres uendret ved neste lasting av skjermen. Scenario-dispatcher konsulterer disse preferansene fĂžr utsendelse av varsel.

User Stories

No user stories have been generated for this feature yet.