fix(a11y): twee naamloze zoekveld-wisknoppen (WCAG 4.1.2) (#1247) #1256

Merged
brenno merged 3 commits from fix/1247-naamloze-knoppen into main 2026-08-05 07:09:39 +00:00
Owner

Samenvatting

Twee IconButtons zonder tooltip: of Semantics-label — in searchable_language_picker.dart en new_deck_dialog.dart — werden door een schermlezer aangekondigd als "knop", precies de fout die #586 opruimte bij de presentatie-uitknop. WCAG 2.2 SC 4.1.2 (Naam, rol, waarde) vereist een toegankelijke naam op elk besturingselement.

  • tooltip: l10n.d('Zoekveld wissen') op beide knoppen (één regel per knop).
  • L10n-sleutel Zoekveld wissen toegevoegd in 31 talen via tool/add_l10n.dart; spec in tool/clear_search_field_l10n_spec.json.
  • Vangrail-tests in accessibility_labels_test.dart: pompen beide dialogen, typen tekst zodat de wisknop verschijnt, en draaien unnamedButtons(). Rood bewezen tegen de onherstelde code, groen met de tooltip.

De bronscan in accessibility_labels_test.dart herkent een kale Tooltip om een IconButton, maar niet een kale IconButton zonder tooltip — en deze twee dialogen werden door geen enkele widget-test gepompt met de clear-knop in beeld. De knop is pas zichtbaar als er tekst in het zoekveld staat. Dat is de blinde vlek die deze PR dicht.

Bewaker

De wijziging raakt de interface maar niet het bestandsformaat, de opslag, een afhankelijkheid, uitgaand verkeer of een publieke belofte. Het versterkt waarde 7 (menselijkheid en respect — schermlezerlabels, 32 talen). Geen botsing; de bewaker-stap is hier een bevestiging, niet een knoop.

Testplan

  • make check groen (8514 tests, dekking 87.5%)
  • Vangrail-tests rood tegen de onherstelde code
  • Vangrail-tests groen met de tooltip
  • make l10n-check groen (31 vertalingen aanwezig, geen onvertaalde Engelse zinnen)

Sluit #1247.

Generated with Devin

## Samenvatting Twee `IconButton`s zonder `tooltip:` of `Semantics`-label — in `searchable_language_picker.dart` en `new_deck_dialog.dart` — werden door een schermlezer aangekondigd als "knop", precies de fout die #586 opruimte bij de presentatie-uitknop. WCAG 2.2 SC 4.1.2 (Naam, rol, waarde) vereist een toegankelijke naam op elk besturingselement. - `tooltip: l10n.d('Zoekveld wissen')` op beide knoppen (één regel per knop). - L10n-sleutel `Zoekveld wissen` toegevoegd in 31 talen via `tool/add_l10n.dart`; spec in `tool/clear_search_field_l10n_spec.json`. - Vangrail-tests in `accessibility_labels_test.dart`: pompen beide dialogen, typen tekst zodat de wisknop verschijnt, en draaien `unnamedButtons()`. Rood bewezen tegen de onherstelde code, groen met de tooltip. De bronscan in `accessibility_labels_test.dart` herkent een kale `Tooltip` om een `IconButton`, maar niet een kale `IconButton` zonder tooltip — en deze twee dialogen werden door geen enkele widget-test gepompt met de clear-knop in beeld. De knop is pas zichtbaar als er tekst in het zoekveld staat. Dat is de blinde vlek die deze PR dicht. ### Bewaker De wijziging raakt de interface maar niet het bestandsformaat, de opslag, een afhankelijkheid, uitgaand verkeer of een publieke belofte. Het versterkt waarde 7 (menselijkheid en respect — schermlezerlabels, 32 talen). Geen botsing; de bewaker-stap is hier een bevestiging, niet een knoop. #### Testplan - [x] `make check` groen (8514 tests, dekking 87.5%) - [x] Vangrail-tests rood tegen de onherstelde code - [x] Vangrail-tests groen met de tooltip - [x] `make l10n-check` groen (31 vertalingen aanwezig, geen onvertaalde Engelse zinnen) Sluit #1247. Generated with [Devin](https://devin.ai)
De wisknoppen in de taalkiezer en de sjabloonzoek kregen een tooltip, en
die tooltip-tekst moet in 31 talen vertaald zijn — anders faalt de
l10n-dekkingspoort. Toegevoegd via tool/add_l10n.dart; de spec staat in
tool/ voor herhaalbaarheid.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Twee IconButton's zonder tooltip of Semantics-label — in
searchable_language_picker.dart en new_deck_dialog.dart — werden door
een schermlezer aangekondigd als "knop", precies de fout die #586
opruimde bij de presentatie-uitknop. WCAG 2.2 SC 4.1.2 (Naam, rol,
waarde) vereist een toegankelijke naam op elk besturingselement.

Eén regel per knop: tooltip: l10n.d('Zoekveld wissen').

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
test(a11y): vangrail voor de twee zoekveld-wisknoppen (#1247)
All checks were successful
scans / scans (pull_request) Successful in 1m32s
static-gate / static-gate (pull_request) make check groen lokaal (8514 tests, dekking 87.5%)
617f2bbe78
De bronscan in accessibility_labels_test.dart herkent een kale Tooltip
om een IconButton, maar niet een kale IconButton zonder tooltip — en
deze twee dialogen werden bovendien door geen enkele widget-test
gepompt met de clear-knop in beeld. De knop is pas zichtbaar als er
tekst in het zoekveld staat, dus de test typert eerst en draait dan
unnamedButtons(). Rood bewezen tegen de onherstelde code, groen met de
tooltip.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno merged commit 783dc62d44 into main 2026-08-05 07:09:39 +00:00
Sign in to join this conversation.
No description provided.