@@einsiedler
C) Ich verstehe folgende Fehlermeldungen des Validators NICHT und wie kann man es beheben? Validator-Meldung
Lesen wir doch mal in der Spec nach, was das noscript
-Element beïnhalten darf:
- In a head element, if scripting is disabled for the noscript element
- The noscript element must contain only link, style, and meta elements.
- In a head element, if scripting is enabled for the noscript element
- The noscript element must contain only text, except that invoking the HTML fragment parsing algorithm with the noscript element as the context element and the text contents as the input must result in a list of nodes that consists only of link, style, and meta elements that would be conforming if they were children of the noscript element, and no parse errors.
Soll heißen:
Im Browser, wenn JavaScript aktiviert ist, ist der Inhalt des noscript
-Elements einfach nur Text. Das erkennst du daran, dass im Entwicklerwerkzeug keine Baumstruktur unterhalb von noscript
angezeigt wird: (Chrome stellt den Inhalt gar in "
dar.)
Anders, wenn JavaScript deaktiviert ist. Dann ist das DOM ein anderes als du vermuten würdest. Da noscript
nur link
-, style
- und meta
-Elemente, aber kein span
enhalten darf, schließt der Parser das noscript
-Element vor dem <span>
-Tag. Da auch head
kein span
enthalten darf, wird auch dieses Element geschlossen und der body
geöffnet:
Im Validator Markup-Checker[1] wird auch kein JavaScript ausgeführt, deshalb passiert dort dasselbe und obige Fehlermeldung wird ausgegeben. Da noscript
und head
bereits geschlossen sind und body
bereits geöffnet ist, hängen deren End-Tags bzw. Start-Tag in der Luft rum, was als Folgefehler aufgelistet wird:
Aber was soll der Unfug mit „Diese Seite benötigt Java-Script! Bitte aktivieren Sie Javascript für eine korrekte Darstellung“ überhaupt? Wenn ein Nutzer sich dazu entschlossen hat JavaScript zu deaktivieren, dann wird sie es dir zuliebe wieder aktivieren? Kein Nutzer, jemals.
Sorge dafür, dass deine Seite auch ohne JavaScript benutzbar ist, und lass den Unfug weg.
Die anderen Fehler sind eigentlich selbsterklärend:
Das aria-expanded
-Attribut darf nur einen der Werte "true"
, "false"
oder "undefined"
haben, aber keinen Leerstring. [ARIA 1.1]
Was nicht selbsterklärend ist: Die Funktion der Buttons <button aria-expanded=""> </button>
. Keinerlei Beschriftung. Die Buttons müssen unbedingt ein accessible label haben. aria-label
als Notbehelf; besser aber ganz normal als Elementinhalt. Die Beschriftung kannst du visuell verstecken.
LLAP 🖖
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann