Mermaid- en Gantt-diagrammen hebben in de app geen tekstalternatief #2731

Open
opened 2026-11-02 22:21:44 +00:00 by brenno · 0 comments
Owner

Wat er mis is

Een flowchart of Gantt op een dia is voor een schermlezer een naamloze afbeelding. De bron is gewone tekst. Bij een renderfout toont de app die bron wel. Een grafiekdia bouwt al wel een semantisch label. Het diagram niet.

Bewijs

  • lib/widgets/slides/mermaid_diagram.dart zet SvgPicture.string neer zonder semanticsLabel. lib/widgets/reader/doc_mermaid_view.dart doet hetzelfde. gantt_preview.dart gebruikt die widget.
  • lib/utils/sanitize_svg.dart laat title, desc, role en aria-* vallen. Dat is een beveiligingskeuze. Daarmee verdwijnt ook wat Mermaid zelf in de SVG zet.
  • chart_preview.dart bouwt wél een Semantics-label.

Voorstel

Een Semantics-label om het diagram, gelezen uit de Mermaid-bron (accTitle en accDescr als de auteur die zet, anders diagramtype plus de eerste regels). Niet uit de SVG, zodat de sanitizer onaangetast blijft. ExcludeSemantics om de SVG zelf. accTitle en accDescr in de handleiding noemen als het tekstalternatief voor een diagram.

Niet de sanitizer verruimen. Geen nieuwe afhankelijkheid. Geen conformiteitszin.

Of de HTML-export het alternatief doorgeeft, is niet in een browser nagekeken.

## Wat er mis is Een flowchart of Gantt op een dia is voor een schermlezer een naamloze afbeelding. De bron is gewone tekst. Bij een renderfout toont de app die bron wel. Een grafiekdia bouwt al wel een semantisch label. Het diagram niet. ## Bewijs - `lib/widgets/slides/mermaid_diagram.dart` zet `SvgPicture.string` neer zonder `semanticsLabel`. `lib/widgets/reader/doc_mermaid_view.dart` doet hetzelfde. `gantt_preview.dart` gebruikt die widget. - `lib/utils/sanitize_svg.dart` laat `title`, `desc`, `role` en `aria-*` vallen. Dat is een beveiligingskeuze. Daarmee verdwijnt ook wat Mermaid zelf in de SVG zet. - `chart_preview.dart` bouwt wél een `Semantics`-label. ## Voorstel Een `Semantics`-label om het diagram, gelezen uit de Mermaid-bron (`accTitle` en `accDescr` als de auteur die zet, anders diagramtype plus de eerste regels). Niet uit de SVG, zodat de sanitizer onaangetast blijft. `ExcludeSemantics` om de SVG zelf. `accTitle` en `accDescr` in de handleiding noemen als het tekstalternatief voor een diagram. Niet de sanitizer verruimen. Geen nieuwe afhankelijkheid. Geen conformiteitszin. Of de HTML-export het alternatief doorgeeft, is niet in een browser nagekeken.
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#2731
No description provided.