Dies ist teilweise ein historischer Überrest des Browserkriegs
IE und netscape konkurrierten um die Marktübernahme und veröffentlichten immer neue Funktionen, die immer "umwerfender" wurden und die Seiten akzeptieren mussten, die für den anderen Browser entwickelt wurden.
Dies bedeutet, dass der Browser unbekannte Tags stillschweigend akzeptiert und ignoriert, nachdem die Komitees angefangen haben, sich einzumischen. Nun, Sie haben ein Komitee, das Dinge entwirft, und infolgedessen viele verschiedene Versionen (mit einigen mehrdeutigen Spezifikationen), von denen der Browser die meisten unterstützen möchte sie, und für jede Version einen eigenen Parser zu erstellen, wäre enorm aufgedunsen. Daher ist es (relativ) einfacher, einen einzelnen Parser mit verschiedenen Modi zu verwenden.
Zum anderen wollten Netscape und IE, dass HTML für den normalen Benutzer zugänglich ist (wie es damals üblich war), was bedeutet, dass versucht wird, das zu tun, was der Benutzer wollte, anstatt das zu tun, was er gesagt hat, und über jedes baumelnde Tag gestolpert wird.
Erschwerend kommt hinzu, dass es auch mehrere "Tutorial" -Seiten gibt, die das Falsche lehren und denken, dass sie richtig sind, weil das, was sie lehren, funktioniert.
Letztendlich bedeutet dies, dass, wenn Sie jetzt einen Browser mit nur striktem HTML-Parsing erstellen, 99% der Websites nicht funktionieren.