Fehlerhafte Darstellungen im Edge
bearbeitet von
@@einsiedler
> C) Ich verstehe folgende Fehlermeldungen des Validators NICHT und wie kann man es beheben? [Validator-Meldung](https://validator.w3.org/nu/?doc=https%3A%2F%2Fwww.tassilosturm.de%2F)
{:@en width="700"}
Lesen wir doch mal in der [Spec](https://w3c.github.io/html/semantics-scripting.html#the-noscript-element) 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.
{:@en}
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.)
{:width="700"}
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>`{:.language-html.bad}-Tag. Da auch `header` kein `span` enthalten darf, wird auch dieses Element geschlossen und der `body` geöffnet:
{:width="700"}
Im ~~Validator~~ Markup-Checker[^Checker] wird auch kein JavaScript ausgeführt, deshalb passiert dort dasselbe und obige Fehlermeldung wird ausgegeben. Da `noscript` und `header` 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:
[^Checker]: [Check it Before you Wreck it with Mike[tm] Smith](http://html5doctor.com/html5-check-it-before-you-wreck-it-with-miketm-smith/){:@en}
{:@en width="700"}
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:
{:@en width="700"}
Das `aria-expanded`-Attribut darf nur einen der Werte `"true"`, `"false"` oder `"undefined"` haben, aber keinen Leerstring. [[ARIA 1.1](https://www.w3.org/TR/wai-aria-1.1/#aria-expanded)]
Was nicht selbsterklärend ist: Die Funktion der Buttons `<button aria-expanded=""> </button>`{:.language-html.bad}. Keinerlei Beschriftung. Die Buttons müssen unbedingt ein *accessible label*{:@en} haben. `aria-label` als Notbehelf; besser aber ganz normal als Elementinhalt. Die Beschriftung kannst du [visuell verstecken](https://a11yproject.com/posts/how-to-hide-content/).
LLAP 🖖
--
*„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“* —Kurt Weidemann
Fehlerhafte Darstellungen im Edge
bearbeitet von
@@einsiedler
> C) Ich verstehe folgende Fehlermeldungen des Validators NICHT und wie kann man es beheben? [Validator-Meldung](https://validator.w3.org/nu/?doc=https%3A%2F%2Fwww.tassilosturm.de%2F)
{:@en width="700"}
Lesen wir doch mal in der [Spec](https://w3c.github.io/html/semantics-scripting.html#the-noscript-element) 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.
{:@en}
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.)
{:width="700"}
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>`{:.language-html.bad}-Tag. Da auch `header` kein `span` enthalten darf, wird auch dieses Element geschlossen und der `body` geöffnet:
{:width="700"}
Im ~~Validator~~ Markup-Checker[^Checker] wird auch kein JavaScript ausgeführt, deshalb passiert dort dasselbe und obige Fehlermeldung wird ausgegeben. Da `noscript` und `header` 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:
[^Checker]: [Check it Before you Wreck it with Mike[tm] Smith](http://html5doctor.com/html5-check-it-before-you-wreck-it-with-miketm-smith/){:@en}
{:@en width="700"}
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 er 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:
{:@en width="700"}
Das `aria-expanded`-Attribut darf nur einen der Werte `"true"`, `"false"` oder `"undefined"` haben, aber keinen Leerstring. [[ARIA 1.1](https://www.w3.org/TR/wai-aria-1.1/#aria-expanded)]
Was nicht selbsterklärend ist: Die Funktion der Buttons `<button aria-expanded=""> </button>`{:.language-html.bad}. Keinerlei Beschriftung. Die Buttons müssen unbedingt ein *accessible label*{:@en} haben. `aria-label` als Notbehelf; besser aber ganz normal als Elementinhalt. Die Beschriftung kannst du [visuell verstecken](https://a11yproject.com/posts/how-to-hide-content/).
LLAP 🖖
--
*„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“* —Kurt Weidemann
Fehlerhafte Darstellungen im Edge
bearbeitet von
@@einsiedler
> C) Ich verstehe folgende Fehlermeldungen des Validators NICHT und wie kann man es beheben? [Validator-Meldung](https://validator.w3.org/nu/?doc=https%3A%2F%2Fwww.tassilosturm.de%2F)
{:@en width="700"}
Lesen wir doch mal in der [Spec](https://w3c.github.io/html/semantics-scripting.html#the-noscript-element) 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.
{:@en}
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.)
{:width="700"}
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>`{:.language-html.bad}-Tag. Da auch `header` kein `span` enthalten darf, wird auch dieses Element geschlossen und der `body` geöffnet:
{:width="700"}
Im ~~Validator~~ Markup-Checker[^Checker] wird auch kein JavaScript ausgeführt, deshalb passiert dort dasselbe und obige Fehlermeldung wird ausgegeben. Da `noscript` und `header` 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:
[^Checker]: [Check it Before you Wreck it with Mike[tm] Smith](http://html5doctor.com/html5-check-it-before-you-wreck-it-with-miketm-smith/){:@en}
{:@en width="700"}
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 er 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:
{:@en width="700"}
Das `aria-expanded`-Attribut darf nur einen der Werte `"true"`, `"false"` oder `"undefined"` haben, aber keinen Leerstring. [[ARIA 1.1](https://www.w3.org/TR/wai-aria-1.1/#aria-expanded)]
Was nicht selbsterklärend ist: Die Funktion der Buttons `<button aria-expanded=""> </button>`{:.language-html.bad}. Keinerlei Beschriftung. Die Buttons müssen unbedingt ein *accessible label*{:@en} haben. `aria-label` als Notbehelf; besser aber ganz normal als Elementinhalt. Die Beschriftung kannst du [visuell verstecken](https://a11yproject.com/posts/how-to-hide-content/).
LLAP 🖖
--
*„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“* —Kurt Weidemann