wurden in diesem Buchabschnitt behandelt. Während es bei Elementen der ersten Sorte sofort auffällt, wenn ein Browser sie nicht interpretiert, ist dies bei Elementen der zweiten Sorte kaum der Fall. Lediglich bei Elementen, die eine neue Zeile im Textfluss erzeugen sollen, fällt es auf, wenn der Browser das nicht umsetzt. Im Klartext bedeutet das: Es ist gar nicht so wichtig, ob Ihr Browser oder die Browser der Anwender, die Ihre Seiten besuchen, HTML5-Elemente wie nav , aside , hgroup , figure usw. kennen oder nicht. Diese Elemente sind auch genaugenommen für Suchmaschinen interessanter als für Browser. Eigene Elemente Was mit noch neuen, unbekannten Elementen des HTML5-Standards funktioniert, funktioniert ebenso gut mit beliebigen Eigenkreationen. Im HTML5-Zeitalter wird kein Validator mehr meckern, wenn in Ihrem HTML-Quelltext eine Auszeichnung wie Durch diese hohle Gasse muß er kommen vorkommt. Letztlich geht es immer nur um die Frage: Wer braucht das? Wenn Sie Gründe für ein eigenes semantisches Markup haben, etwa den, dass dies ein wertvoller Input für eine websiteeigene Datenverarbeitung ist, dann spricht eigentlich nichts gegen ein solches Markup. Das Internet-Explorer-Problem Alle modernen Browser bis auf den Internet Explorer erzeugen von jedem unbekannten Element intern einen ganz normalen DOM-Elementknoten, auf den CSS-Selektoren anwendbar sind, oder auch DOM-Scripting. Beim Internet Explorer ist das leider nicht der Fall. Aus einem HTML-Code wie
erzeugt ein Internet Explorer, der die Elemente ul und li kennt, aber nicht das HTML5-Element nav , folgendes internes Abbild:
HOME
/nav> . Ein unbekanntes Element wird also vom Internet Explorer nicht wie ein Element mit Inhalt, sondern stets nur wie ein Standalone-Element ohne Inhalt behandelt. Nicht einmal das End-Tag mit dem typischen Schrägstrich wird als solches erkannt, sondern lediglich als weiteres unbekanntes Standalone-Element aufgelöst. Es leuchtet ein, dass auf ein solches Element weder CSS-Angaben noch Scripting anwendbar sind. Das wäre eine bedauerliche Situation, denn es würde künftig über Jahre hinweg verhindern, dass Elemente wie header oder nav verwendet werden, weil man sie wegen des Microsoft-Browsers nicht ins CSS-basierte Website-Layout integrieren kann. Damit diese neuen Elemente eine Chance haben, sich durchzusetzen, sind Lösungen für das Internet-Explorer-Problem erforderlich. Lösung: DOM-Objekte mit Scripting erzeugen Es gibt eine relativ einfache Lösung, das problematische Verhalten des Internet Explorers zu beseitigen. Alle unbekannten Elemente werden einfach zentral in einem Script einmalig als DOM-Objekte erzeugt. Anschließend behandelt der Internet Explorer die Elemente genauso wie die übrigen Browser. Nachfolgendes Beispiel-Script erzeugt Objekte aller neuen HTML5-Elemente, deren Zweck ausschließlich ein semantischer ist:
Diesen Script-Bereich müssen Sie im HTML-Kopfbereich, also zwischen
und
, notieren. Alternativ können Sie den reinen JavaScript-Code, also ohne die Tags
, in einer separaten Textdatei mit der Endung .js speichern und diese im HTML-Kopfbereich mit
einbinden. Die Lösung mit der separaten Datei hat den Vorteil, dass Sie diese Datei nur einmal erstellen müssen und dann in allen Webseiten einbinden können. Die Lösung mit dem Script erfordert allerdings aktiviertes JavaScript im Internet Explorer (in den Einstellungen dort wird JavaScript als »Active Scripting« bezeichnet). Zwar ist das die Voreinstellung, die auch von fast allen Anwendern benutzt wird. Doch wenn ein Anwender das Active Scripting aus irgendwelchen Gründen deaktiviert, wird die Lösung nicht mehr funktionieren, und als Folge davon würden CSS-basierte Layouts in Verbindung mit neuen Elementen inkorrekt dargestellt. Peter Kröner stellt in seinem Artikel »HTML5 – Was geht heute schon, was geht nicht? Der große