JürgenB: Frage zum Wiki-Artikel „dialog“

Beitrag lesen

problematische Seite

Hallo Rolf,

Teile, die mit Javascript ein- und ausgeblendet werden können, sind ohne JS immer offen.

Ein dialog-Element ohne open Attribut ist ohne JS immer zu.

Sollte man also allen Dialog-Elementen im HTML das open-Attribut geben und dieses per JS beim Seitenstart entfernen? Dann sind ohne JS alle Dialoge offen.

das wäre eine Option.

Das setzt aber eine sinnvolle Platzierung der Dialoge voraus, und ist bei modalen Dialogen sinnfrei. Abgesehen davon weist die Spec ausdrücklich darauf hin, das open-Attribut nicht per removeAttribute zu entfernen, sondern close() zu verwenden, d.h. man müsste per JS zuerst mal alle Dialoge closen und DANN die Event-Handler für Close registrieren.

Brrr. Es scheint, als wäre das Dialog-Konzept nicht für Seiten gedacht, die auch ohne JS funktionieren sollen. Dafür bräuchte es einen Trigger-Mechanismus auf HTML-Ebene, der ohne JS funktioniert.

z.B. <noscript>

Wer Javascript abschaltet, hat dafür seine Gründe und muss dann abwägen, ob die sich daraus ergebenden Vorteile überwiegen. Webseiten können eben mehr sein, als statische Visitenkarten, und da braucht man oft auch Javascript.

Viele Javascript-Features sind nur Komfort, z.B. Schließen des Menüs bei der ESC-Taste, etc.. Wenn die fehlen, was soll's. Wenn alle Dialoge oder in der Navigation alle Submenüs offen sind, was soll's. Wenn natürlich dann absolut positionierte Elemente andere Teile überdecken, geht das nicht mehr. Letztendlich muss man problemabhängig entscheiden, ob man eine javascriptfreie Alternative anbietet, oder ob man den Besucher nur auf sein abgeschaltetes Javascript hinweist.

Und auch hier stelle ich noch mal die Frage: Wie schalte ich beim Smartphone Javascript ab? Und jetzt ohne Nachdenken und Suchen: Wie schalte ich beim Desktopbrowser Javascript ab?

Ich vermute mal, es gibt mehr Seitenbesucher mit einer Behinderung Einschränkung, als Seitenbesucher ohne Javascript. Man sollte sich lieber erst mal um die kümmern.

Gruß
Jürgen