Demnach dürfte so gut wie keine Webseite in HTML funktionieren. Man bedenke nur die ganze meta- oder br-Elemente. Die funktionieren aber auch nie ;)
Nein, gerade weil es keine SGML-fähigen User Agents gibt, funktionieren die Webseiten - besonders XHTML ausgeliefert als text/html funktioniert nur aus aus diesem Grund - wenn das wirklich korrekt liefe, würde einiges angezeigt werden, was eigentlich nicht da sein soll. Ein Beispiel für einen SMGL-fähigen User Agent ist Emacs/W3 - der ist zwar schon lange tot, aber zeigt deutlich, dass ein standardkonformer Browser (zumindest was den SGML-Teil angeht) keine gute Idee ist.
Gerade deshalb hätte man, als man XHTML zur dominaten Sprache im Web machen wollte, hier eine Vereinheitlichung auslösen sollen.
XML(-fähige)-Parser gabs vorher auch schon (und wurden und werden auch verwendet). Bessere Webseiten gabs deswegen auch nicht [1].
Ich sprach primär von SGML-fähigen Browsern - einen XML-Parser zu schreiben ist im vergleich zu einem SGML-Parser ein Kinderspiel.
Einen HTML5-Parser zu schreiben ist auch nicht schwieriger als einen XML-Parser zu schreiben.
Bei HTML5 hat man an allen Ecken und Enden das gefühl, dass Hixie schlechtes Zeug raucht und sich irgendwas aus den Fingern saugt. Sollte HTML5 nicht etwas sein, dass das derzeitige Web abbildet? Wie kommen dann so Geschichten wie die cite-Sache zustande wo man nicht auf die Community hört und sein eigenes Ding durchzieht?
Der genannte Fall ist mir nicht bekannt, daher kann ich dazu nichts sagen.
Mir gefällt auch nicht alles in HTML5. Es wäre auch besser, wenn es noch einen zweiten starken Editor geben würde (nicht so ne Pfeife wie Hyatt).
Allerdings wächst auch nicht alles auf Hixies mist. Verschiedene Browserhersteller sind direkt dafür verantwortlich, dss bestimtme Elemente nicht mehr spezifiziert sind oder wieder erlaubt wurden (dialogue, s, etc.).
Dass es die auch heute noch gibt ist den Autoren von HTML 4.0 anzulasten. Die hätten ja auf bessere Konformität zu SGML hinarbeiten können.
Die Autoren oder die die Browserhersteller? Ich würde eher sagen die Browserhersteller wären hier verlangt gewesen - es hat praktisch nie einen massentauglichen Browser gegeben, der tatsächlich SGML verstand - man war, selbst wenn man es besser wusste, gezwungen nur eine Teilmenge zu nutzen und konnte versehentlich SGML-Features nutzen, die zwar ein Validator als Gültig abstempelt, aber in den meisten Browser nicht funktionieren.
Ich glaube nichtmal Tim hatte einen SGML-Parser; vielleicht hatte er den notwendigen Obolus für die Spezifikation nicht übrig, wer weiß?
Ich würde die Autoren nicht so einfach aus der Verantwortung ziehen. Die Spezifikationen die HTML im Laufe der Zeit beschrieben, haben keine Anstalten gemacht, die Situation zu verändern.
Folgendes ist valide[1]:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<title>foo</>
<p/bar/
>
> Der einzige Browser der das zumindest ansatzweise richtig macht ist Safari - er zeigt zumidnest den Titel richtig an - nicht aber den Inhalt des body. Alle anderen Browser zeigen "foo></> <p/bar/" im Titel an.
Das Beispiel ist ja bekannt :)
Ich gebe zu, meine Kenntnis über SGML ist nicht sehr groß, aber die Autoren von HTML hätten sicher die Möglichkeit gehabt, derlei Späße einzuschränken. Vor allem, da bereits feststand, dass es keine echten SGML-Parser gibt.
Hätte es SGML-Parser gegeben, dann hätte XHTML vermutlich gar keinen Aufschwung erleben können. Von daher hatte die ganze Problematik ja auch ihre Vorteile, nicht?
> > An den HTML5-Parser halten sich die Browserhersteller: Erst Firefox, dann Chrome, dann IE und jetzt auch Opera.
>
> Ja - aber wie lange wird es dauern bis die ersten Bugs auftauchen? :) Nein, die Regeln sind wenig komplex - das wird hoffentlich nicht passieren.
Die Bugs sind nicht das Problem. Das Problem ist eher, dass man sich nicht traut (oder das Web es unmöglich macht - oder beides) ein paar der vorhandenen Regeln zu lockern.
Hixie gibt daran ja teilweise auch sich selbst die Schuld.
> > [1] rebell.at hat momentan 14 Fehler. Ein XML-Parser dürfte die Seite garnicht darstellen. Tatsächlich ignorieren selbst XML-fähige Browser
>
> rebell.at wird als text/html ausgeliefert und \_darf\_ nicht als XML verarbeitet werden. Würde die Site tatsächlich als XML verarbeitet, käme eine Fehlermeldung des XML-Parsers.
Welchen Vorteil hat dann das Nutzen von XHTML.
Was wäre, wenn ein XML-Parser ohne Kenntnis des Medientyps das Dokument verarbeitet?