Notification Settings
Feature Detail
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.
-
docs/source/likeperson.md · line 16Appen SKAL oppfylle WCAG 2.2 nivÄ AA som minimumskrav for alle skjermer og interaksjoner - fra dag én, for alle organisasjoner.
-
docs/source/likeperson.md · line 21Touch targets: Minimum 24x24 CSS-piksler for alle interaktive elementer (WCAG 2.2 target size).
Analysis
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.
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)Peer Mentor (Likeperson)
Quick UAT
- Logg inn i Meander-mobilappen som Likeperson og Ă„pne hamburgermenyen â Innstillinger â Varslingsinnstillinger.
- Bekreft at skjermen viser kun kategorier som gjelder din rolle og lokallagets aktiverte moduler (f.eks. Aktiviteter, Oppdrag hvis aktivert).
- SlÄ av push-kanalen for kategorien 'PÄminnelser' og slÄ pÄ e-post for samme kategori.
- Sett stille-periode fra 22:00 til 07:00 og trykk Lagre.
- Lukk skjermen, Äpne den pÄ nytt og bekreft at endringene fortsatt er valgt.
Quick UAT â Accessibility
-
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.
-
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.
-
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.
-
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.
-
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.
Components (5)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.