a11y: Titel, Text und Knopf werden im Semantics-Baum zu einem Knoten zusammengefaltet (Web) #41

Closed
opened 2026-11-03 09:43:16 +00:00 by cschlaefke · 0 comments
Owner

Befund (aus E2E-Tests #38, QUE-06)

Auf Seiten ohne Eingabefeld faltet der Flutter-Web-Semantics-Baum Titel, Text und Knopf zu einem Knoten: Auf /auth/confirm ein heading mit dem Text „Confirm email address One click… Confirm email address“, auf der CheckEmail-Seite ebenso. Es gibt keinen eigenen button-Knoten; ein Klick auf die Mitte bewirkt nichts, per Tab und Enter geht es.

Für Screenreader im Web ist der Knopf damit nicht als Knopf auffindbar. Verstößt gegen die Definition of Done (Barrierefreiheit, Semantics-Labels) und QUE-06.

Zu tun

  • Ursache klären (fehlende container: true/explicitChildNodes/MergeSemantics o. Ä. in den Auth-Layouts, AppFormScaffold)
  • Semantics so ändern, dass Überschrift, Text und Knopf getrennte Knoten sind
  • E2E-Hilfsfunktion pressFirstButton (e2e/support) kann dann entfallen; Test mit echtem getByRole('button')
  • Widget-Test auf getrennte Semantics-Knoten

Betroffen: EmailLinkScreen, CheckEmailScreen, ggf. weitere Screens ohne Eingabefeld. Bezug #1, #38.

## Befund (aus E2E-Tests #38, QUE-06) Auf Seiten ohne Eingabefeld faltet der Flutter-Web-Semantics-Baum Titel, Text und Knopf zu **einem** Knoten: Auf `/auth/confirm` ein `heading` mit dem Text „Confirm email address One click… Confirm email address“, auf der CheckEmail-Seite ebenso. Es gibt keinen eigenen `button`-Knoten; ein Klick auf die Mitte bewirkt nichts, per Tab und Enter geht es. Für Screenreader im Web ist der Knopf damit nicht als Knopf auffindbar. Verstößt gegen die Definition of Done (Barrierefreiheit, Semantics-Labels) und QUE-06. ## Zu tun - [ ] Ursache klären (fehlende `container: true`/`explicitChildNodes`/`MergeSemantics` o. Ä. in den Auth-Layouts, `AppFormScaffold`) - [ ] Semantics so ändern, dass Überschrift, Text und Knopf getrennte Knoten sind - [ ] E2E-Hilfsfunktion `pressFirstButton` (e2e/support) kann dann entfallen; Test mit echtem `getByRole('button')` - [ ] Widget-Test auf getrennte Semantics-Knoten Betroffen: `EmailLinkScreen`, `CheckEmailScreen`, ggf. weitere Screens ohne Eingabefeld. Bezug #1, #38.
cschlaefke added the
type/bug
prio/should
labels 2026-11-03 09:43:16 +00:00
Sign in to join this conversation.
No description provided.