No reviewers
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!1851
Loading…
Reference in a new issue
No description provided.
Delete branch "gate/1844-a11y-screenreader"
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?
Closes #1844 (deels — het vinkje 'echte schermlezer' volgt in een reactie op het issue zodra de VoiceOver-ronde gelopen is).
De toegankelijkheidspoort uit IMAGE_CALLOUTS.md §12 tegen de gebouwde oppervlakken gelegd, in plaats van tegen het ontwerp. Vier echte gebreken kwamen eruit.
Wat er stuk was
De markering noemde haar letter twee keer.
Semantics(container: true, label: 'B, de inlaat')met een zichtbareText('B')eronder levert één knoop met labelB, de inlaat\nB. Een schermlezer zegt de referentieletter dan dubbel. Nu staat de zichtbare letter metExcludeSemanticsbuiten de boom — hij is al het eerste woord van de naam.De bullet had geen Flutter-tegenhanger van
aria-describedby. De HTML-export koppelde de bullet al aan de verborgen beschrijving; in de app stond de beschrijving nergens. Nu draagt de bullet hem alshintop één samengevoegde knoop, zodat het lezen van de bullet de betekenis één keer meeleest.PPTX en ODP lieten hun alt-tekstsleuf leeg.
descrop de vorm en<svg:desc>in het frame bestonden allebei en stonden allebei leeg. §12.2 eist dat de betekenis niet weggegooid wordt waar het doelformaat er een plek voor heeft. Nu gevuld metcalloutAltText: de alt-tekst van het beeld plusA: …per beschrijving. Een gerasterde dia blijft structureel ontoegankelijk — dat blijft zo staan in ACCESSIBILITY.md.Privacylek. OciWacht scánde
calloutDescription(er was zelfs een test voor), maarPrivacyProjectionredigeerde het veld niet. Wie een bevinding kreeg en de dia op redigeren zette, verstuurde de tekst alsnog: in het.md, de HTML-export en de TikZ-notities. Punt 3 hierboven maakte dat lek stiller in plaats van kleiner — de alt-tekstsleuf staat nergens op het beeld. De projectie redigeert het veld nu op dezelfde fragment-index als de scanner hem meldt; de geometrie blijft staan.Wat er niet bewaakt werd
De drie widgettoetsen in
callout_reveal_test.dartrenderden nooit een markering:CalloutOverlaytekent niets vóór de intrinsieke beeldmaat bekend is, en die komt uit een echte decode die onderflutter testniet loopt.expect(find.text('A'), findsNothing)was dus even groen mét als zónder het onthullingsfilter. Ze draaien nu binnentester.runAsyncop een PNG op schijf. Mutatieproef: het filter uitschakelen (if (false && …)) maakt drie toetsen rood — daarvóór nul.Ontwerpdoc: revisie 5
§12.2 sprak §7 tegen. Het vroeg de HTML-export om verborgen niet-onthulde groepen en één
aria-live-region per dia, terwijl §7 zegt dat een statische export elke groep toont. Er is dus niets te verbergen en geen stap om aan te kondigen; een dode live region is slechter dan geen, want het is opmaak die gedrag belooft dat het bestand niet heeft. Die twee eisen horen bij het Flutter-oppervlak, dat wél stapt — en dáár staan ze ook geïmplementeerd (sendAnnouncementinpresenter_navigation.dart). Een toets valt om zodra de HTML-export tóch gaat stappen, zodat het paar niet vergeten kan worden.Wat er nog niet in zit
De verificatie onder een echte schermlezer (VoiceOver) is nog niet gelopen; die volgt als reactie op #1844. Alles wat hier zit is de laag eronder: de accessibility tree zoals een schermlezer hem krijgt, geen DOM-aanname.
Test plan
make checkgroenmake check-secretsgroen (gitleaks + trufflehog, 0 geverifieerd)make sastgroen (semgrep, 4 regels over 1186 bestanden, 0 bevindingen)test/callout_accessibility_test.dart— 15 toetsen over de semantics-boom, de HTML-a11y-eigenschappen en de alt-tekstsleuf van PPTX/ODPcallout_privacy_and_limits_test.dart, eerst rood tegen de onherstelde projectiecallout_reveal_test.darttoetst nu het echte beeld; mutatieproef gedaanBewaker
Geraakt: een publieke belofte (ACCESSIBILITY.md, USER_GUIDE) en waar gegevens van de gebruiker landen (de exportsleuf). Beide kanten opgeschreven in plaats van stilzwijgend: de gids zegt nu expliciet dat de beschrijving gewone inhoud is die meereist en gescand én geredigeerd wordt, en ACCESSIBILITY.md houdt de claim 'de exports zijn geen toegankelijke documenten' overeind — één regel tekst per dia is geen structuur.
Het bestandsformaat is niet geraakt: er komt niets bij in het
.md.🤖 Generated with Claude Code