Hallo Danny,
meine Theorie: die Browser (-Hersteller) sind an allem Schuld! (vor allem M$)
Bis auf die letzte Klammer (Netscape hat seinerzeit angefangen mit den schlampigen HTML-Erweiterungen und dem Versuch, alles irgendwie zu interpretieren) stimme ich dieser Theorie zumindest teilweise zu. Es haette der Entwicklung von HTML viel, viel besser getan, wenn von Anfang an jeder User-Agent die Verarbeitung einer Seite, auf der syntaktische Fehler enthalten sind, komplett verweigert haette. Genauso wie ein Script oder Programm abbricht, wenn es auf einen syntaktischen (und sei es noch so kleinen) Fehler stoesst, waere es sinnvoll, wenn Browser dies bei syntaktisch fehlerhaftem HTML-Code von Beginn an auch getan haetten.
Netscape hatte z.B. immer die Angewohnheit, eine Tabelle, bei der das schliessende </table> fehlte, ueberhaupt nicht anzuzeigen. So lernten alle Entwickler, penibel darauf zu achten, dass immer ein schliessendes </table> da war. Wenn ein solches Browser-Verhalten global bei allen Sprachelementen ueblich waere, waere das zweifellos der beste Erziehungseffekt, den man sich vorstellen kann.
Leider hat das W3C aber auch Fehler gemacht, was die "Interpretations-Politik" betrifft. Validierung war anfangs kein Thema, und die Direktive lautete: was der Browser nicht kennt, soll er einfach ignorieren. Damit wurde praktisch propagiert, dass sich Sprachstandard und Browser-Faehigkeiten durchaus unterscheiden duerfen, was leider viel zu dem ganzen Chaos beigetragen hat. Insofern kann man den Browser-Herstellern natuerlich keinen Vorwurf machen, wenn sie ihre Produkte den Quirks-Mode verstehen lassen.
viele Gruesse
Stefan Muenz