Toegankelijkheid: bronscan in accessibility_labels_test.dart mist kale IconButton (WCAG 4.1.2) #1248
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1248
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Toegankelijkheid — bronscan in
accessibility_labels_test.dartheeft een blinde vlekDe vangrail in
test/accessibility_labels_test.dartbewaakt "elke knop heeft een toegankelijke naam" (WCAG 4.1.2). Hij doet dat op twee manieren:lib/**/*.dartnaarTooltip(message: …, child: IconButton(…))zondertooltip:op de knop — het patroon waarbij eenTooltip-wrapper lijkt te benoemen maar dat niet doet.De widgettest dekt slechts een fractie van het oppervlak (6 editors, 0 van de ~53 dialogen, niet de presentatiemodus). De bronscan moet de rest dekken, maar herkent slechts één van de twee manieren waarop een knop naamloos kan zijn:
Tooltip(child: IconButton())zondertooltip:op de knop — wordt herkend.IconButton()zondertooltip:en zonderTooltip-wrapper — wordt niet herkend.Dat is de symmetrische fout. De poort belooft in zijn eigen commentaar "covers everything, including the code nobody pumps", maar dekt slechts de helft van de manieren waarop een knop naamloos kan zijn.
Bewijs
Tijdens de audit gevonden met een script dat de constructor-argumenten van elke
IconButtonparset tot de matchende haak en controleert optooltip:(enIcon(semanticsLabel:)als alternatief). Dat vond twee kale knoppen — zie #1247. De bronscan in de test liet ze stil passeren.Voorstel
Breid de bronscan uit met het symmetrische patroon: naast "Tooltip om IconButton" ook "IconButton zonder
tooltip:in zijn eigen argumentenlijst". Het script dat dit vond (constructor-argumenten parsen tot de matchende haak, aanhalingstekens overslaand) is precies deze check en is ~25 regels. Eén extratest()-blok in hetzelfde bestand, met een zelftest die een kaleIconButtonrood maakt.Dit sluit de klasse universeel — niet alleen de twee bewezen gevallen — en maakt de widgettest tot een aanvulling op focusvolgorde/leesvolgorde in plaats van de enige dekking van naamloze knoppen.
Scope
Raakt geen bestandsformaat, opslag, afhankelijkheid of publieke belofte —
bewakerniet nodig.