Privacy-badge op dia-thumbnails toont altijd 'Persoonsgegevens geaccepteerd', ook wanneer niet geaccepteerd #1112

Closed
opened 2026-08-02 08:05:21 +00:00 by brenno · 0 comments
Owner

Symptoom

De privacy-badge op de gerenderde dia's in de bewerkstrook (de thumbnails) toont bij aanwijzen altijd de tekst "Persoonsgegevens geaccepteerd" — ook op dia's waar de bevindingen helemaal niet geaccepteerd zijn. De tekst hoort te matchen met de werkelijke stand: soms is er geaccepteerd, soms niet.

Waar

De tekst wordt op precies één plek gemaakt: _privacyBadgeTooltip in lib/widgets/slides/slide_thumbnail.dart (rond regel 43-48). Zowel de badge-tooltip als het schermlezer-label van de thumbnail lezen deze functie, dus ook de voorgelezen tekst klopt niet.

String _privacyBadgeTooltip(AppLocalizations l10n, SlideBadgeTone tone) =>
    switch (tone) {
      SlideBadgeTone.hint => l10n.d('Mogelijk persoonsgegevens'),
      SlideBadgeTone.accepted => l10n.d('Persoonsgegevens geaccepteerd'),
      _ => l10n.d('Persoonsgegevens gevonden'),
    };

Waarom het niet klopt

De grijze accepted-toon dekt drie verschillende privacy-standen af. In lib/models/privacy_disposition.dart is isResolved simpelweg "niet warn", dus accept, shield én redact krijgen allemaal dezelfde toon (accepted) en dus hetzelfde label:

  • accept — bewust aanwezig, dit hoort hier → écht "geaccepteerd"
  • shield — accepteren én de ontvanger waarschuwen
  • redact — de gevonden gegevens worden juist onleesbaar gemaakt (weggehaald)

Voor redact is "geaccepteerd" ronduit fout — daar is niets geaccepteerd, het wordt geredigeerd. Voor shield is het onvolledig. Dat verklaart de klacht "soms is het geaccepteerd en soms niet": het label collapst standen die de gebruiker juist uit elkaar moet kunnen houden. Staat het deck (of de dia) op een van deze standen, dan leest élke gevonden dia als "geaccepteerd".

De kwaliteits-tegenhanger Kwaliteitsproblemen geaccepteerd heeft dit probleem niet: kwaliteit kent alleen geaccepteerd/niet.

Verwacht gedrag

De badge- en schermlezertekst matcht de werkelijke stand van de dia:

  • niet afgehandeld → "Persoonsgegevens gevonden" / "Mogelijk persoonsgegevens" (bestaat al)
  • accept → geaccepteerd
  • shield → geaccepteerd + de ontvanger wordt gewaarschuwd (eigen tekst)
  • redact → geredigeerd/weggehaald (eigen tekst, níet "geaccepteerd")

Nieuwe zichtbare teksten via l10n.d(...) met de 31 vertalingen erbij, plus een regressietest die per disposition de badge-tekst vastlegt zodat een redact-dia nooit meer "geaccepteerd" kan tonen.

**Symptoom** De privacy-badge op de gerenderde dia's in de bewerkstrook (de thumbnails) toont bij aanwijzen altijd de tekst *"Persoonsgegevens geaccepteerd"* — ook op dia's waar de bevindingen helemaal niet geaccepteerd zijn. De tekst hoort te matchen met de werkelijke stand: soms is er geaccepteerd, soms niet. **Waar** De tekst wordt op precies één plek gemaakt: `_privacyBadgeTooltip` in `lib/widgets/slides/slide_thumbnail.dart` (rond regel 43-48). Zowel de badge-tooltip als het schermlezer-label van de thumbnail lezen deze functie, dus ook de voorgelezen tekst klopt niet. ```dart String _privacyBadgeTooltip(AppLocalizations l10n, SlideBadgeTone tone) => switch (tone) { SlideBadgeTone.hint => l10n.d('Mogelijk persoonsgegevens'), SlideBadgeTone.accepted => l10n.d('Persoonsgegevens geaccepteerd'), _ => l10n.d('Persoonsgegevens gevonden'), }; ``` **Waarom het niet klopt** De grijze `accepted`-toon dekt drie verschillende privacy-standen af. In `lib/models/privacy_disposition.dart` is `isResolved` simpelweg *"niet `warn`"*, dus `accept`, `shield` én `redact` krijgen allemaal dezelfde toon (`accepted`) en dus hetzelfde label: - `accept` — bewust aanwezig, dit hoort hier → écht "geaccepteerd" - `shield` — accepteren **én** de ontvanger waarschuwen - `redact` — de gevonden gegevens worden juist **onleesbaar gemaakt** (weggehaald) Voor `redact` is "geaccepteerd" ronduit fout — daar is niets geaccepteerd, het wordt geredigeerd. Voor `shield` is het onvolledig. Dat verklaart de klacht "soms is het geaccepteerd en soms niet": het label collapst standen die de gebruiker juist uit elkaar moet kunnen houden. Staat het deck (of de dia) op een van deze standen, dan leest élke gevonden dia als "geaccepteerd". De kwaliteits-tegenhanger `Kwaliteitsproblemen geaccepteerd` heeft dit probleem niet: kwaliteit kent alleen geaccepteerd/niet. **Verwacht gedrag** De badge- en schermlezertekst matcht de werkelijke stand van de dia: - niet afgehandeld → "Persoonsgegevens gevonden" / "Mogelijk persoonsgegevens" (bestaat al) - `accept` → geaccepteerd - `shield` → geaccepteerd + de ontvanger wordt gewaarschuwd (eigen tekst) - `redact` → geredigeerd/weggehaald (eigen tekst, níet "geaccepteerd") Nieuwe zichtbare teksten via `l10n.d(...)` met de 31 vertalingen erbij, plus een regressietest die per disposition de badge-tekst vastlegt zodat een `redact`-dia nooit meer "geaccepteerd" kan tonen.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1112
No description provided.