[#1801 gate] Toegankelijkheid onder echte screen reader #1844

Closed
opened 2026-08-29 12:37:37 +00:00 by brenno · 1 comment
Owner

Context

Onderdeel van de acceptatiepoorten voor #1801 (IMAGE_CALLOUTS.md §9, §12).

Wat gevraagd wordt

§12 specificeert de accessibility-semantiek per oppervlak. aria-describedby op bullets is getest in DOM (marp_html_service_callouts_test.dart), maar de volledige semantiek moet onder een echte screen reader geverifieerd:

  1. De description wordt één keer uitgesproken, met stable id.
  2. Elke markering role="img" met accessible name = reference, description + target n of m.
  3. Bullet <li> draagt aria-describedby naar de description.
  4. Unrevealed groups zijn absent from the accessibility tree, niet alleen onzichtbaar.
  5. Eén polite live region per slide kondigt elke reveal-stap aan + hoeveel markeringen meekomen.
  6. Flutter mirror in Semantics.

Status

DOM-asserties bestaan voor aria-describedby; de overige semantiek (live region, unrevealed = absent, target-n-of-m announcement) is niet onder een echte screen reader geverifieerd.

Acceptatie

  • Verificatie onder echte screen reader (VoiceOver/NVDA) — documenteer resultaat
  • Live region bij reveal-stap getest
  • Unrevealed = absent from tree bevestigd
  • Flutter Semantics-mirror getest
  • Raster PDF/PPTX/ODP blijven "not structurally accessible" — statement staat, descriptions in alt waar slot bestaat
## Context Onderdeel van de acceptatiepoorten voor #1801 (IMAGE_CALLOUTS.md §9, §12). ## Wat gevraagd wordt §12 specificeert de accessibility-semantiek per oppervlak. `aria-describedby` op bullets is getest in DOM (`marp_html_service_callouts_test.dart`), maar de volledige semantiek moet onder een **echte screen reader** geverifieerd: 1. De description wordt één keer uitgesproken, met stable id. 2. Elke markering `role="img"` met accessible name = *reference, description* + *target n of m*. 3. Bullet `<li>` draagt `aria-describedby` naar de description. 4. **Unrevealed groups zijn absent from the accessibility tree**, niet alleen onzichtbaar. 5. Eén polite live region per slide kondigt elke reveal-stap aan + hoeveel markeringen meekomen. 6. Flutter mirror in `Semantics`. ## Status DOM-asserties bestaan voor `aria-describedby`; de overige semantiek (live region, unrevealed = absent, target-n-of-m announcement) is niet onder een echte screen reader geverifieerd. ## Acceptatie - [ ] Verificatie onder echte screen reader (VoiceOver/NVDA) — documenteer resultaat - [ ] Live region bij reveal-stap getest - [ ] Unrevealed = absent from tree bevestigd - [ ] Flutter Semantics-mirror getest - [ ] Raster PDF/PPTX/ODP blijven "not structurally accessible" — statement staat, descriptions in alt waar slot bestaat
Author
Owner

Opgepakt. Tak: gate/1844-a11y-screenreader. Reikwijdte: lib/services/marp_html/marp_html_service_callouts.dart, lib/widgets/slides/previews/callout_overlay.dart, lib/widgets/slides/previews/bullets_image_preview.dart, test/callout_accessibility_test.dart, docs/design/IMAGE_CALLOUTS.md.

Opgepakt. Tak: gate/1844-a11y-screenreader. Reikwijdte: lib/services/marp_html/marp_html_service_callouts.dart, lib/widgets/slides/previews/callout_overlay.dart, lib/widgets/slides/previews/bullets_image_preview.dart, test/callout_accessibility_test.dart, docs/design/IMAGE_CALLOUTS.md.
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#1844
No description provided.