Hallo,
Sie brauchen den gar nicht. Das ist einfach eine normative und kontingente Setzung des IE-Entwicklerteams, die die Render-Modi an irgendetwas festmachen mussten und daher ziemlich willkürlich auf die - wie man will - grandiose oder grandios dumme Idee des Doctype-Switches kamen.
Die Idee finde ich nicht grundsätzlich dumm, aber die Umsetzung ist inkonsequent. Man verlangt eine DTD und ignoriert sie dann bzw. ersetzt sie durch etwas, was fest implementiert ist. Das ist das Dumme daran.
[...] Solange man nicht die konkrete Syntax eines Dokuments gegen die allgemeinen Regeln prüfen will, besteht da natürlich kein Zusammenhang.
Das sollte ein Browser IMO aber tun, s.u.
Uff, jetzt bin ich platt.
Ich auch, angesichts der vielen "HTML"-Dokumente, die gegen die Syntax der einschlägigen DTDs verstoßen und auf Fehlertoleranz setzen. Der OP liefert ja gute Beispiele dafür.
Ja, leider sind sie vieeel zu fehlertolerant.
Kann man so sehen, aber andererseits rufst du offenbar dazu auf, auf Fehlertoleranz zu bauen?! ;)
Ähem, kann man so sehen. Beim type-Attribut zum script-tag sehe ich den Fehler allerdings in der DTD. Man hätte das Ding als optional deklarieren sollen. Javascript ist *die* Standard-Scriptsprache für HTML und alle Browser sehen das so. Es ist, wie wenn man einem Kind sagt "Komm jetzt zu Tisch und iss deine Suppe, und zwar mit dem Esslöffel". Den Esslöffel extra zu erwähnen ist unnötig. Wenn man das Kind schikanieren und ausnahmsweise einen Teelöffel oder einen Suppenlöffel verwendet sehen will, dann kann man das ja angeben.
Web-Browser sollten IMO lieber die angegebene DTD lesen und wie ein SGML-Parser vorgehen, wäre jedenfalls schön, oder?
»Wie ein SGML-Parser vorgehen« hat erstmal gar nichts notwendig mit »DTD lesen« zu tun. Es gibt validierende und nicht-validierende SGML-Parser.
Das ist mir neu. Dachte, die validieren immer.
Validierung ist wichtig beim Schreiben und Generieren von Markup, aber beim bloßen Parsen zur Erstellung eines DOM ist Validierung unzweckmäßig.
Aha, zweckmäßig ist also, den Browser raten zu lassen, was wohl gemeint sein könnte bei offensichtlich falschem Markup, um dann dennoch irgend etwas anzuzeigen. Während der Browser rät und seine Fehlertoleranz-Routinen laufen, könnte ebensogut eine echte Validierung stattfinden mit genauen Fehlermeldungen. Das würde den vielen selbsternannten Web-Entwicklern und -Designern auf die Sprünge helfen und alle wären glücklicher.
Es ist für viele anscheinend schwer einzusehen (für mich manchmal auch), warum man unbedingt valides HTML schreiben sollte, wenn die Browser fehlerhaftes Markup ohne Murren trotzdem anzeigen. Leider tun sie das nicht immer und nicht alle gleich. Es ist IMHO aber viel einfacher, valides HTML zu benutzen, als falsches Markup nur gerade soweit einzusetzen, dass die Inhalte dennoch richtig angezeigt werden. Erschwert wird einem aber die Erstellung validen Markups, weil die Browser nicht validieren.
Gruß, Don P
sh:( fo:) ch:? rl:( br:] n4:~ ie:% mo:? va:{ js:) de:/ zu:] fl:( ss:| ls:&