Categories: Software

Fünf kaum bekannte und erstaunliche Wahrheiten über HTML

Im Laufe des letzten Jahres hatte der Autor viel mit der HTML-5-Arbeitsgruppe des W3C zu tun. Dabei ließen sich einige wichtige neue Einsichten gewinnen. Und die betreffen nicht nur die HTML-5-Spezifikation, sondern auch gewisse Eigenheiten der HTML-4-Spezifikation.

<DOCTYPE> spielt keine Rolle.

Das dürfte für viele Leser eine schockierende Aussage sein. Denn versucht der Validator nicht anhand des <DOCTYPE> zu bestimmen, nach welchen Regeln das Dokument zu validieren ist? Doch, das tut er wohl. Das impliziert automatisch, dass der Browser dasselbe macht. Er schaut sich den <DOCTYPE> an und legt daraufhin fest, welche Parsingregeln, Ausgabemechanismen und so weiter auf das Dokument angewandt werden. Doch die Wirklichkeit sieht anders aus, denn der Browser schert sich nicht im Geringsten um den <DOCTYPE>!

Da XHTML etwas genauer ist, mag es damit vielleicht anders sein. Doch es kann ebensogut sein, dass es keinen Unterschied macht. Wer bislang <DOCTYPE> in der Hoffnung verwendet hat, den Browser damit zu bestimmten Verhaltensmustern bewegen zu können, kann sich das zukünftig sparen. Denn stattdessen passiert Folgendes: Der Browser verfügt über integrierte HTML-Regeln, und die wendet er auf alle Dokumente an, vollkommen unabhängig vom <DOCTYPE>.

Browser halten sich weit genauer an die Spezifikationen, als man denkt.

Eine der immer wiederkehrenden Beschwerden über verschiedene Webbrowser – üblicherweise den Internet Explorer – lautet: Sie stellen Inhalte unterschiedlich dar, weil sie sich nicht vollständig an die HTML-Spezifikationen halten. In Wirklichkeit machen das die Browser wesentlich häufiger, als man meint. Woher stammen dann diese ärgerlichen Abweichungen beim Rendern? Die HTML-Spezifikation macht in der Regel keine Aussage darüber, wie Inhalte in einem Webbrowser gerendert werden sollen. Falls ein Browser einmal etwas nicht wie erwartet darstellt, dann ist die Wahrscheinlichkeit groß, dass es in der HTML-Spezifikation einfach keine klare Aussage darüber gibt.

Wo keine klaren Regeln sind, kann man auch keine befolgen.

Doch selbst wenn der Browser die HTML-Spezifikation befolgt, ist noch längst nicht sichergestellt, dass ein Dokument auch wie erwartet ausgegeben wird. An vielen Stellen der aktuellen HTML-Spezifikation kommen das Wort „sollte“ und gelegentlich auch die Verneinung „sollte nicht“ vor, und nicht etwa „muss“ oder „darf nicht“. Deshalb bleibt den Browseranbietern bei der Handhabung gewisser Spezifikationen viel Spielraum, ohne gegen sie zu verstoßen. Auch hier soll HTML 5 für mehr Klarheit und Eindeutigkeit sorgen, damit genau diese Probleme vermieden werden.

Validatoren können nicht alle Aspekte berücksichtigen.

Ein beliebtes Tool vieler Webentwickler ist der HTML-Validator. Was viele Programmierer nicht bedenken, ist, dass sich einige Aspekte der Spezifikation nicht automatisch überprüfen lassen. In den meisten Fällen funktionieren Validatoren zwar, manchmal aber auch nicht. Es gibt eine Reihe von Fällen, in denen Spezifikationen von Bedingungen abhängen, die ein Computer einfach nicht besonders gut erkennt. Der Validator kann zwar zum Einsatz kommen, aber der HTML-Code sollte auch anhand der Spezifikation überprüft werden.

Der <q>-Tag ist nicht genau spezifiziert.

Der <q>-Tag soll eigentlich für einen eingerückten Textblock verwendet werden, der ein Zitat darstellt. Eine Analogie lautet: „<blockquote> verhält sich zu <div> wie <q> zu <span>.“ Aus mehreren Gründen wird <q> allerdings nicht besonders häufig verwendet. Sollen Zitate in HTML gekennzeichnet werden, geschieht das normalerweise mit dem wesentlich beliebteren <blockquote>-Tag. Was ist so besonders an <q>? Als Tag soll er etwas leisten, was kein anderer Tag tut: Er soll den Inhalt automatisch in Anführungszeichen setzen. Dieses Verhalten ist jedoch in HTML 4 nicht genau spezifiziert.

Der Internet Explorer hat dies niemals implementiert. Daher benutzen Autoren, die <q> verwenden, normalerweise eine Browser-Erkennung, um die Anführungszeichen im Internet Explorer hinzuzufügen. Der Internet Explorer 8 wird so angepasst, dass er auch diese Spezifikation einhalten kann. Das ist zwar eigentlich ein gute Sache, macht aber den Code für die Browser-Erkennung unbrauchbar. Die Idee, dass ein Tag Satzzeichen hinzufügt, mag zwar ungewöhnlich erscheinen, und <q> dürfte auch der einzige Tag sein, der so etwas macht, doch die Autoren, die <q> verwenden, wissen eigentlich genug, um diesen Tag richtig einzusetzen.

Dies sind nur einige der Merkwürdigkeiten, auf die man bei HTML stoßen kann. Weitere Informationen zu HTML 5 gibt es im Interview mit HTML-5-Editor Ian Hickson.

ZDNet.de Redaktion

Recent Posts

Studie: Ein Drittel aller E-Mails an Unternehmen sind unerwünscht

Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…

3 Tagen ago

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

4 Tagen ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

4 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

4 Tagen ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

5 Tagen ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

6 Tagen ago