@@Matthias Apsel
welches aber in keinster Weise darauf eingeht, dass es problematisch ist, Tabellenelemente auf
display: block
zu setzen, da dadurch jeglicher Zusammenhang zwischen den Daten verlorengeht. Genau das ist Heydons Punkt.Was mich aber ein wenig verwundert. CSS ist für die Darstellung da. Warum beeinflusst diese die Semantik des zugrundeliegenden HTML?
Zum einen sind Screenreader aber keine akustischen Browser, sondern eben: Screenreader, sie lesen das vor, was auf dem Bildschirm ist, und das möglichst adäquat. Deshalb wirkt display: none
auch auf Screenreader.
Zum anderen kann man dieses Verhalten, dass die Änderung der Darstellung (womit nicht Nichtdarstellung gemeint ist) den Elementen ihre Bedeutung nimmt, durchaus als Bug ansehen. Was nichts daran ändert, dass man damit irgendwie umgehen muss.
Man könnte den Tabellenelementen explizit ihre Rolle per role
-Attribut zuweisen; diese bliebe dann bei Änderung der display
-Eigenschaft erhalten. Was aber ebenfalls nicht unproblematisch ist. Schon gar nicht, wenn die Tabelle als Liste dargestellt wird.
Siehe dazu Adrian Rosellis Artikel Tables, CSS Display Properties, and ARIA (den ich unlängst schon mal verlinkte).
LLAP 🖖
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann