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

Black Friday: Vorsicht vor schädlichen QR-Codes

Bösartige QR-Codes, die per E-Mail versendet werden, eignen sich sehr gut, um Spam-Filter zu umgehen.

7 Stunden ago

Black Friday: Zahl der ominösen Shopping-Websites steigt

Unsichere Websites und Phishing-Mails in Verbindung mit Black Friday können kauffreudigen Konsumenten zum Verhängnis werden.

8 Stunden ago

SmokeBuster bekämpft SmokeLoader

Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.

15 Stunden ago

Taugen Kryptowährungen als Unterstützer der Energiewende?

Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.

1 Tag ago

Supercomputer-Ranking: El Capitan überholt Frontier und Aurora

Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…

1 Tag ago

Ionos führt neue AMD-Prozessoren ein

Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…

1 Tag ago