Gunnar Bittersmann: Fehlerhafte Darstellungen im Edge

Beitrag lesen

@@einsiedler

C) Ich verstehe folgende Fehlermeldungen des Validators NICHT und wie kann man es beheben? Validator-Meldung

Error: Bad start tag in span in head.

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:

Error: Stray end tag noscript. Error: Stray end tag head. Error: Start tag body seen but an element of the same type was already open.

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:

Error: Bad value for attribute aria-expanded on element button.

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

  1. Check it Before you Wreck it with Mike[tm] Smith ↩︎