HTML5
# HTML5

HTML5 ist die fünfte Fassung der Hypertext Markup Language (engl. für Hypertext-Auszeichnungssprache), einer Computersprache zur Auszeichnung und Vernetzung von Texten und anderen Inhalten elektronischer Dokumente, vorwiegend im World Wide Web.

Das World Wide Web Consortium (W3C) hat am 28. Oktober 2014 die fertige HTML5-Spezifikation („W3C Recommendation“) vorgelegt. HTML5 wird damit als Nachfolger von HTML4 die Kernsprache („core language“) des Webs. Sie ersetzt die Standards HTML 4.01, XHTML 1.0 und DOM HTML Level 2. Sie bietet neue Funktionen wie Video, Audio, lokalen Speicher und dynamische 2D- und 3D-Grafiken, die von HTML4 nicht direkt unterstützt wurden und sich ohne HTML5 nur mit zusätzlichen Plug-ins (z. B. Adobe Flash) umsetzen ließen. Zukunftsweisend sind weiterhin neue Elemente, die eine verbesserte semantische Struktur ermöglichen.

## Entstehung

Nach der Veröffentlichung der Spezifikation von HTML 4.0 im Dezember 1997 lag die Weiterentwicklung von HTML lange brach. Außer der Version 4.01 im Dezember 1999, die lediglich Fehlerkorrekturen enthält, gab es bis zum April 2009 keine Aktualisierungen der Auszeichnungssprache mehr. Das World Wide Web Consortium (W3C) setzte auf XML, das zum Nachfolger von HTML werden sollte, und reformulierte HTML 4.01 zu der XML-basierten Auszeichnungssprache XHTML 1.0. Dabei blieb der Funktionsumfang von HTML 4.01 ohne Änderungen erhalten. Daraufhin begann das W3C mit der Entwicklung von XHTML 1.1 und später von XHTML 2.0, das nicht mehr viel mit HTML 4.01 gemeinsam hatte. Dies führte dazu, dass XHTML 1.1 und XHTML 2.0 durch diese Neuentwicklungen nicht mehr abwärtskompatibel waren. Außerdem war die Erstellung von XHTML-2.0-Dokumenten in vielen Punkten im Vergleich zu HTML sehr schwer und erforderte viel Hintergrundwissen. Die Entwicklung von CSS verlief zu diesem Zeitpunkt ebenfalls nur sehr langsam, weshalb das W3C immer mehr in die Kritik geriet.

Um diesen Entwicklungen entgegenzuwirken, veröffentlichte die von mehreren Browserherstellern gegründete Web Hypertext Application Technology Working Group (WHATWG) Mitte 2004 unter dem Namen Web Applications 1.0 den ersten Vorschlag für HTML5.

Am 27. Oktober 2006 kündigte Tim Berners-Lee, der Gründer und Vorsitzende des World Wide Web Consortiums, eine neue Arbeitsgruppe mit dem Ziel der Weiterentwicklung von HTML an. Das W3C nutzte als Grundlage für seine Arbeit an HTML5 einen Fork der Version der WHATWG. Damit schuf sich das W3C Konkurrenz im eigenen Haus, da dieses ebenfalls schon die Entwicklung von XHTML 2.0, einem rein XML-basierten Format zur Webseitenauszeichnung, vorantrieb.

Um die Konkurrenz innerhalb des W3C abzumildern, wurden zwischen November 2006 und März 2007 die vorhandenen Arbeitsgruppen beim W3C umgestaltet. HTML5 und XHTML 2.0 wurden als verwandte Sprachen mit unterschiedlichen Zielgruppen definiert.

Im Mai 2007 entschieden die Mitglieder der HTML-Arbeitsgruppe in einer Abstimmung, dass der Web-Applications-1.0-Entwurf der WHATWG als Startpunkt zur Diskussion und Weiterentwicklung von HTML verwendet werden soll. Seitdem arbeiten das W3C und die WHATWG gemeinsam an der HTML5-Spezifikation.

Mitte 2009 gab das W3C bekannt, dass die Entwicklung von XHTML 2.0 mit Ende desselben Jahres nicht mehr weitergeführt werde. Die nächste Generation der Auszeichnungssprachen für das Web ist damit keine neue Variante von XHTML, sondern HTML5.

### Verschiedene Arbeitsmodelle von W3C und WHATWG

Die WHATWG verfolgt ein versionsloses Modell der Entwicklung. Sie arbeitet an einem sogenannten Living Standard, also einer Spezifikation, die einer ständigen Korrektur und Erweiterung unterliegt. Daher verzichtet die WHATWG auf die Versionsangabe „5“ und spricht nur noch vom „HTML-Standard“.

Ziel der HTML-Arbeitsgruppe des W3C ist es dagegen, eine stabile Momentaufnahme dieser Spezifikation unter dem Namen HTML5 zu publizieren. Dazu wird ein vordefiniertes Prozedere durchlaufen, bis die Spezifikation schließlich zu einer W3C-Empfehlung (Recommendation) heranreift. Die Vorstufe davon, eine Proposed Recommendation wurde im September 2014 veröffentlicht, die Empfehlung schließlich am 28. Oktober 2014.

### Verhältnis der Spezifikationen des W3C und der WHATWG

Der Verfasser (engl. editor) der Spezifikation ist Ian Hickson, Gründer der WHATWG und Angestellter von Google. Aus dem von ihm bearbeiteten Rohtext werden verschiedene Spezifikationen generiert, sowohl die auf Seiten der WHATWG als auch die W3C-Pendants.

Die WHATWG-HTML-Spezifikation integriert mehrere verwandte Teilspezifikationen, welche seitens des W3C in einzelne Dokumente aufgeteilt werden. Sie können damit unabhängig von der HTML5-Hauptspezifikation den W3C-Entwicklungsprozess durchlaufen. Diese separaten Standards sind Microdata-Metadaten, der 2D-Zeichenkontext des Canvas-Elementes sowie dokumentübergreifende Nachrichten (HTML5 Web Messaging).

### W3C-Veröffentlichungen

Im Folgenden sind die Veröffentlichungen der HTML5-Entwürfe durch das W3C aufgeführt. Neben den regelmäßigen Arbeitsentwürfen (Working Drafts) veröffentlicht das W3C in Abständen von Tagen sogenannte Editor’s Drafts. Die jeweils tagesaktuelle Fassung des Entwurfs – erweitert um WHATWG-spezifische Elemente – ist auf der Website der WHATWG verfügbar.

| Datum | Veröffentlichung (und Hinweise) |
| - | - |
| 22. Januar 2008 | 1. „Working Draft“ (Arbeitsentwurf) |
| 10. Juni 2008 | 2. Arbeitsentwurf, in den der bis dahin separate Web-Forms-2.0-Entwurf eingearbeitet wurde. |
| 12. Februar 2009 | 3. Arbeitsentwurf |
| 23. April 2009 | 4. Arbeitsentwurf |
| 25. August 2009 | 5. Arbeitsentwurf |
| 4. März 2010 | 6. Arbeitsentwurf. HTML Canvas 2D und HTML Microdata als eigene Arbeitsentwürfe ausgelagert. Neues Dokument „HTML: The Markup Language“. |
| 25. Juni 2010 | 7. Arbeitsentwurf und Überarbeitung der verwandten Spezifikationen und Dokumente. Neu hinzugefügt wurden die unterstützenden Dokumente HTML5: Techniques for providing useful text alternatives und Polyglot Markup: HTML-Compatible XHTML Documents. |
| 19. Oktober 2010 | 8. Arbeitsentwurf |
| 18. November 2010 | 1. Arbeitsentwurf von „HTML5 Web Messaging“. |
| 13. Januar 2011 | 9. Arbeitsentwurf |
| 5. April 2011 | 10. Arbeitsentwurf |
| 25. Mai 2011 | 11. Arbeitsentwurf |
| 29. März 2012 | 12. Arbeitsentwurf |
| 25. Oktober 2012 | 13. Arbeitsentwurf |
| 17. Dezember 2012 | Candidate Recommendation (Empfehlungs-Kandidat) |
| 6. August 2013 | Candidate Recommendation (Empfehlungs-Kandidat) |
| 4. Februar 2014 | Candidate Recommendation (Empfehlungs-Kandidat) |
| 29. April 2014 | Candidate Recommendation (Empfehlungs-Kandidat) |
| 17. Juni 2014 | Letzter Arbeitsentwurf |
| 31. Juli 2014 | Candidate Recommendation (Empfehlungs-Kandidat) |
| 16. September 2014 | Proposed Recommendation (Empfehlungs-Vorschlag) |
| 28. Oktober 2014 | Recommendation (Empfehlung) |

### Fortschritt in der Entwicklung

In der Spezifikation der WHATWG wird darauf hingewiesen, dass bestimmte Abschnitte ausgereifter sind als andere. Von den reiferen Neuentwicklungen sind viele bereits in aktuellen Browserversionen enthalten und können verwendet werden.

Im Mai 2011 erhielt HTML5 beim W3C den Status „Last Call“, der als letzte Aufforderung dienen sollte, Kommentare zum HTML5-Entwurf einzureichen. Die WHATWG hat den Status „Last Call“ bereits am 27. Oktober 2009 ausgerufen. Am 28. Oktober 2014 hat die W3C die HTML5-Empfehlung veröffentlicht. Am 14. Dezember 2017 wurde HTML 5.2 als W3C-Empfehlung, und gleichzeitig das Working Draft für HTML 5.3 veröffentlicht. In den meisten Browsern ist HTML5 bereits implementiert.

## Ziele

Die ersten wichtigen Ziele für HTML5 wurden von Tim Berners-Lee in dessen Blogeintrag „Reinventing HTML“ (HTML neu erfinden) festgelegt: An der Entwicklung sollen dabei vor allem auch die Gruppen beteiligt sein, die HTML verwenden (Webautoren, Hersteller von Browsern). Dabei muss HTML inkrementell, also durch Überarbeitung und Erweiterung der Vorversion, entwickelt werden, und der Übergang zu wohlgeformten Dokumenten soll dadurch weiter vorangetrieben werden. Die Entwicklung von Formularen in HTML soll erweitert werden und im Idealfall einen Schritt von der bestehenden Formularstruktur hin zu XForms bilden.

Im Zuge der Einrichtung der neuen HTML-Arbeitsgruppe und als Teil der architektonischen Vision für HTML, XForms und XHTML 2.0 wurden diese Ziele detaillierter festgelegt, teilweise verändert und um weitere Punkte ergänzt:

* Im Gegensatz zur bisherigen Vorgehensweise, in jeder Spezifikation nur die Unterschiede zu einer alten Version abzubilden, soll eine vollständige Spezifikation geschrieben werden.
* Das Vokabular von HTML muss als klassisches HTML und als XML-Dialekt verfasst werden können. Unabhängig von dieser Form muss das Vokabular in ein definiertes Infoset, das heißt in eine DOM-Abbildung des Quelltextes umgesetzt werden können.

Zusätzlich wurden zum Aufgabenbereich der Arbeitsgruppe die Definition von DOM-Schnittstellen für die Arbeit mit dem HTML-Vokabular sowie eine separate mit eingebundenen Medien festgelegt. Die Arbeitsgruppe soll Formulare und allgemeine Benutzereingabeelemente wie Fortschrittsanzeigen oder Menüs entwickeln und Schnittstellen für benutzerdefinierte WYSIWYG-Bearbeitungsfunktionen definieren.

Nach Gründung der Arbeitsgruppe wurden die HTML-Gestaltungsprinzipien als erstes Dokument veröffentlicht. Darin werden weitere Zielsetzungen ausführlich erläutert. Dazu gehören etwa:

### Kompatibilität

    Bestehender Inhalt muss weiterhin unterstützt werden. Neue Elemente der Sprache dürfen den bestehenden Inhalt nicht negativ beeinflussen.

### Verwendbarkeit

    Neue Funktionen sollen echte Probleme lösen, und dies vorrangig für Autoren, dann Browserhersteller und zuletzt der „reinen Lehre“ dienend; Funktionen jedoch, die bereits einen bestimmten Zweck erfüllen, sollen nicht neu erfunden werden.

### Sicherheit

    Bei der Entwicklung neuer Funktionen müssen Sicherheitsaspekte berücksichtigt werden.

### Konsistenz

    Teile aus XML, die in XHTML Anwendung finden, sollen auch in HTML erlaubt werden. HTML und XHTML besitzen eine gemeinsame DOM-Abbildung.

### Vereinfachung

    Durch genau definiertes Verhalten (auch in Fehlersituationen) und geringe Komplexität soll HTML interoperabel implementiert werden können.

### Universalität

    HTML soll auf allen Endgeräten und mit Inhalt in allen Weltsprachen verwendbar sein.

### Barrierefreiheit

    Die Barrierefreiheit von Inhalt und Funktion soll gewährleistet sein.

## Aufbau

HTML5, so wie es das W3C definiert, besteht insgesamt aus mehreren Spezifikationen und Dokumenten, deren Inhalt im folgenden Abschnitt erläutert wird.

### HTML5 – Ein Vokabular und dazugehörige Schnittstellen für HTML und XHTML

„HTML5“ ist die Hauptspezifikation, in der die wichtigsten Grundlagen von HTML5 enthalten sind.

**Vokabular**

Das Vokabular von HTML5 setzt sich aus dem Vokabular vorangehender HTML-Spezifikationen, bis dato proprietären Bestandteilen sowie einigen neuen Elementen zusammen, darunter z. B. Teile der Ruby-Elementgruppe, die in XHTML 1.1 eingeführt wurden. Es umfasst dabei aber nur den Teil von HTML, den Autoren für das Erstellen von Dokumenten und Webanwendungen benutzen dürfen.

Neben dem Vokabular wird ein klares Strukturmodell definiert, also die Regeln, nach denen die verschiedenen Elemente ineinander verschachtelt werden dürfen.

**HTML-Parser**

Erstmals seit der Entstehung von HTML wird die Sprache nicht mehr als eine Anwendung von SGML, sondern selbst als eine generalisierte Sprache in der Art von SGML definiert. Dies wird damit begründet, dass moderne Browser HTML nicht mit einem SGML-Parser, sondern einem für das Web passenden Parser verarbeiten.

Wie diese Parser funktionieren, ist derzeit nicht definiert. HTML5 will dies durch die Definition eines HTML-Parsers ändern und so vermeiden, dass es Unterschiede zwischen den HTML-Parsern der verschiedenen Browserhersteller gibt.

Das Besondere an dem in HTML5 enthaltenen Parser ist, dass er nicht nur das erlaubte Vokabular versteht, sondern auch alle anderen Elemente, die in früheren Versionen vorhanden waren oder nur als proprietäre Elemente existierten. Durch diese genaue Definition will HTML5 sicherstellen, dass der Parser zu den im Web vorhandenen Dokumenten rückwärtskompatibel ist.

**HTML, XHTML und DOM**

Jedes Element und Attribut, das in HTML5 bekannt ist, ist in den Begriffen des Dokumentobjektmodells definiert. Das gilt unabhängig davon, ob das Element oder Attribut ein erlaubter Sprachbestandteil ist. Das bedeutet, dass neben der strukturellen Bedeutung der Elemente auch deren DOM-Interface sowie die damit verbundenen Schnittstellen (Methoden und Eigenschaften) definiert werden.

Auf Basis dieser Definition erlaubt HTML5 die Repräsentierung von Dokumenten in drei Varianten:

* Dokumente, die den Medientyp „text/html“ besitzen, gelten als HTML-Dokumente. Sie werden mit dem HTML-Parser verarbeitet. Diese Variante wird umgangssprachlich als HTML5 bezeichnet.
* Dokumente, die einen XML-Medientyp – z. B. „application/xhtml+xml“ oder „application/xml“ – besitzen, gelten als XML-Dokumente, die von einem XML-Parser verarbeitet werden. Diese Variante wird umgangssprachlich als XHTML5 bezeichnet.
* Die vorherigen Dokumente besitzen ein gemeinsames Dokumentobjektmodell. Das DOM wird in diesem Zusammenhang oft DOM5 genannt.

HTML5 versucht, die Unterschiede zwischen diesen drei Varianten auf die der jeweiligen Form innewohnenden Beschränkungen einzugrenzen. Beispielsweise ist die Zeichenkette „-->“ innerhalb von HTML und XML ungültig, im DOM kann sie jedoch dargestellt werden.

Ein anderes Beispiel ist der Versuch, die Unterschiede zwischen HTML und XHTML zu verringern: Die Kernspezifikation des DOM sagt aus, dass HTML-Elemente im null-Namensraum enthalten sind (während XHTML-Elemente dem Namensraum „http://www.w3.org/1999/xhtml“ angehören). HTML5 definiert jedoch, dass auch HTML-Elemente dem Namensraum „http://www.w3.org/1999/xhtml“ zuzuordnen sind.

**Standarddarstellung**

HTML5 versucht, die Erwartung von Autoren an die Standarddarstellung der Elemente wiederzugeben. Für alle Elemente und deren Attribute gibt es daher eine „erwartete Darstellung“, die durch CSS-Eigenschaften definiert wird. HTML5 unterscheidet dabei zwischen Darstellungseigenschaften, die bei der standardkonformen und der kompatibilitätsorientierten Verarbeitung von Webseiten angewendet werden sollen.

**Browserkontext**

HTML5 führt das Konzept eines Browserkontextes ein: in jedem Browserkontext wird ein Dokument geladen bzw. weitere Browserkontexte (im Fall von Frames) erzeugt. Zu den Bestandteilen eines Browserkontextes gehören großteils JavaScript-Objekte, die zuvor keinem Standard angehörten, z. B. das History-Objekt, in dem die Abfolge der besuchten Webseiten gespeichert wird. Dadurch wird versucht, das Verhalten der Browser zu vereinheitlichen und einer gemeinsamen Definition zu unterwerfen.

### HTML Microdata

Diese Spezifikation versucht, das Einbinden maschinenlesbarer Informationen in HTML-Dokumente zu definieren. Ziel dabei ist, dass dieser Mechanismus eindeutig definiert und zu anderen Formaten wie RDF und JSON kompatibel ist.

### HTML-Canvas-2D-Kontext

In dieser Spezifikation werden Schnittstellen zum Zeichnen zweidimensionaler Formen festgelegt. Als Zeichenoberfläche dient das in der Hauptspezifikation eingeführte Canvas-Element.

Gezeichnet werden können Linien, Schatten, einfache und komplexe Konturen (Pfade) sowie Texte und im Dokument enthaltene Bilder.

### HTML5-Nachrichtenübermittlung

Dieser Arbeitsentwurf definiert zwei Methoden, die es voneinander unabhängigen Browserkontexten erlauben sollen, miteinander Daten auszutauschen:

* „Cross-document messaging“, das die Kommunikation von ineinander eingebetteten Dokumenten (z. B. über iframes) ermöglichen soll, und
* „Channel messaging“, das die Kommunikation für voneinander unabhängige Dokumente (z. B. getrennt durch zwei verschiedene Browserfenster) ermöglichen will.

### HTML+RDFa – Ein Mechanismus zum Einbetten von RDF in HTML

Das Dokument adaptiert die Einbettung von RDF in XHTML für Dokumente, wie sie in HTML5 definiert sind.

### Unterstützende Dokumente

**HTML: Die Auszeichnungssprache**

Bei „HTML: Die Auszeichnungssprache“ handelt es sich um keine Spezifikation, sondern um ein unterstützendes Dokument, das die Auszeichnungssprache HTML genauer beschreibt. Es will Autoren Details über die korrekte Verwendung der Sprache näher bringen, dabei aber kein Tutorium oder Handbuch darstellen. Das Dokument macht keine Aussagen über Definitionen oder wie HTML verarbeitet werden sollte.

**Unterschiede zwischen HTML5 und HTML4**

In diesem Dokument werden die Unterschiede zwischen HTML4 (genauer: HTML 4.01 und in Teilen XHTML 1.0 sowie DOM Level 2 HTML) und HTML5 aufgeführt und Begründungen für die Änderungen gegeben. Das Dokument wird jeweils bei Veröffentlichung eines neuen Arbeitsentwurfs der Hauptspezifikation aktualisiert und veröffentlicht.

**HTML5-Techniken für nützliche Textalternativen**

Dieser entstehende Leitfaden für HTML-Autoren beschreibt, welche Alternativtexte für Bilder (vor allem im alt-Attribut des img-Elements) zu wählen sind. Diese sind wichtig, damit die Inhalte, die durch Bilder transportiert werden, auch für beispielsweise blinde Webnutzer zugänglich sind.

**„Polyglottes“ Markup: HTML-kompatible XHTML-Dokumente**

Das Dokument beschreibt Regeln für HTML5-Dokumente, welche in XHTML-Syntax verfasst sind und somit sowohl von HTML5-Parsern als auch von XML-Parsern verarbeitet werden können.

## Technische Neuerungen

Die nachfolgende Übersicht der Neuerungen in HTML5 erhebt keinen Anspruch auf Vollständigkeit und unterliegt durch den Status der Spezifikationen bedingt Veränderungen.

Grundlegend lässt sich vorweg sagen, dass praktisch alle Elemente aus HTML 4.01 auch in HTML5 enthalten sind. HTML4 ist sogesehen eine Teilmenge von HTML5.

### Dokumenttypangabe

Die Dokumenttypangabe in HTML5-Dokumenten besteht aus der Zeichenkette „<!DOCTYPE html>“, wobei Groß- und Kleinschreibung keine Rolle spielen. Diese Zeichenkette bewirkt in allen modernen Browsern das Verarbeiten des Quelltextes im standardkonformen Modus.

Da ein Browser HTML-Dokumente nicht nach ihrer Version unterscheidet, wurde bewusst auf jede Art von Versionierung verzichtet. Auch hier zeigt sich, dass HTML5 sich als Obermenge von HTML 4.01 definiert.

### Einbindung von SVG und MathML

HTML5 ermöglicht das einfache Einbinden von SVG und MathML in den HTML-Quelltext. Es bestehen nur zwei Einschränkungen:

* Die Elemente dürfen keine Namensraumpräfixe enthalten.
* Der Namensraumpräfix für XLink (bei Attributen) muss „xlink“ lauten.

Als Nebeneffekt sind alle benannten Entitäten aus SVG und MathML als Teil von HTML erlaubt.

### Neue Elemente

HTML5 führt zahlreiche neue Elemente ein, die nachfolgend vorgestellt werden.

**Strukturierende Elemente**

Die Elemente section, nav, article, aside, header und footer sollen eine bessere Strukturierung ermöglichen. Anders als div-Kästen, die bislang zur Strukturierung von HTML-Dokumenten verwendet wurden, wird durch das Element hier auch definiert, welche Art von Inhalt sich in dem Element befindet. Zum Beispiel bezeichnet section einen Abschnitt eines durchgängigen Textes, nav ein Menü, article einen Artikel oder footer einen Seitenfuß.

In einer Untersuchung des Suchmaschinenanbieters Google wurde festgestellt, dass die am häufigsten vergebenen Klassennamen in HTML-Dokumenten sich gut den jeweiligen neuen HTML-Elementen zuordnen lassen.

Einige dieser Elemente (section, nav, article und aside) bringen auch eine Funktion in der Kombination mit den Überschriftenelementen h1 bis h6. Die Überschriftenhierarchie wird nicht mehr nur allein anhand der Überschriftenelemente bestimmt, sondern auch anhand derer Position innerhalb der neuen Elemente. Verwendet ein Dokument beispielsweise eine Überschrift erster Ordnung und nutzt dann in einem Artikelelement ebenfalls eine Überschrift erster Ordnung, so ist diese der nicht-verschachtelten Überschrift untergeordnet. Das gilt selbst dann, wenn die nicht-verschachtelte Überschrift niedrigerer Ordnung ist.

Derartige neue Elemente werden von älteren Browsern (vor allem von Internet Explorer 6, aber auch von neueren Versionen des Internet Explorers bis IE8 inklusive) nicht erkannt. Für diese Versionen wird JavaScript benötigt, damit der IE die neuen Elemente als solche erkennt und darstellt.

**Gruppierungselement figure**

Das figure-Element und das dazu passende Überschriftenelement figcaption wurden hinzugefügt, um die Auszeichnung zusätzlicher Inhalte, beispielsweise Abbildungen mit Bildunterschriften, zu vereinfachen.

**Elemente zur Textauszeichnung**

Auf Textauszeichnungsebene wurden die Elemente time für Zeitangaben, die dynamisch lokalisiert werden können; mark für hervorgehobene Textabschnitte; ruby, rp und rt für einfache Ruby-Annotierungen und das vormals proprietäre wbr-Element, das Textumbruchsmöglichkeiten in langen Wörtern bietet, hinzugefügt.

**Multimedia-Elemente**

HTML5 führt spezifische Elemente zur Einbindung von Audio- und Videodateien ein. Für diese können eine oder mehrere Quellen bzw. verschiedene Formate hinterlegt werden, aus denen ein Browser dann ein für ihn verständliches Format auswählt. Die Wiedergabe von 5.1 Surround Sound Content war bisher in HTML4 über das mehrkanaltonfähige VLC-Browser-Plug-in oder, in Dolby Pro Logic II codiert, über den Stereokanal eines sonstigen, gängigen Plug-ins und einen an die Soundkarte angeschlossenen Mehrkanalton-Decoder möglich. Mit HTML5 ist es erstmals möglich, 5.1 Surround Sound Content direkt aus dem Browser an entsprechende Soundkarten im Mehrkanalton auszugeben, ohne dass ein Browser-Plug-in oder eine Codierung bei der Erstellung der Medien und eine anschließende Decodierung beim Abspielen im Browser nötig wären. Die Mediendatei wird dabei per progressivem Download in den Cache des Browsers geladen. Für das Einbinden von Anwendungen oder interaktiven, nicht auf HTML basierenden Inhalten beschreibt HTML5 das vormals proprietäre embed-Element.

Zudem wurde eine Zeichenoberfläche (Canvas-Element) hinzugefügt, auf der mit Hilfe von Skripten zweidimensionale Bilder gezeichnet werden können.

**Formularelemente (nach WHATPAG 7.1324)**

Das input-Element wurde um verschiedene Typen erweitert, z. B. zur Eingabe von Suchbegriffen, Telefonnummern, URL- und E-Mail-Adressen, Datums- und Zeitangaben, Zahlen sowie Farbangaben.

Zum Entwurf wurden darüber hinaus folgende Elemente hinzugefügt: datalist, mit dem beispielsweise Vervollständigungsvorschläge angegeben werden; output, das Ergebnisse von Berechnungen darstellt; progress, das den Fortschritt einer Aktion abbildet; meter, das für messbare Wertebereiche (z. B. Speicherbelegung auf der Festplatte) gedacht ist und das vormals proprietäre keygen-Element, das zur Erstellung von Identifikations-Schlüsselpaaren dienen soll.

**Interaktive Elemente**

Die details- und summary-Elemente ähneln im Aufbau den figure und figcaption-Elementen. Der Inhalt des summary-Elements wird dabei ständig angezeigt, der restliche Inhalt des details-Elements kann ein- und ausgeblendet werden.

Für das Erstellen von Werkzeugleisten und (Kontext-)Menüs werden das menu-Element als strukturierende Basis und das command-Element als Interaktionspunkt definiert.

### Elemente mit geänderter Bedeutung

Einigen, vormals nur der Darstellung dienenden Elementen (z. B. b, i, hr oder small) wurde eine Semantik gegeben. Die jeweiligen Definitionen sind dabei relativ weit gefasst, wodurch sichergestellt werden soll, dass die neue Bedeutung nicht der Benutzung in existierenden Webseiten widerspricht.

Im Gegensatz dazu werden einige Elemente (z. B. cite) umdefiniert. Dadurch ist unter anderem das direkte Portieren von älteren Standards nur noch bedingt möglich.

Aus dem Vokabular von HTML5 entfallen einige Elemente (z. B. acronym, center, font, frame etc.). Es wird jedoch weiterhin definiert, wie ein Browser mit diesen Elementen umzugehen hat. Dadurch wird die Kompatibilität zu bestehenden Webseiten sichergestellt.

### Elemente und Attribute in HTML und XHTML

Das noscript-Element ist zwar in HTML5, jedoch nicht in XHTML5 erlaubt, da das Elementmodell nicht mit den XML-Verarbeitungsregeln vereinbar ist.

In HTML5 ist das xml:base-Attribut nicht erlaubt, da es dort keine Wirkung hat.

### Unterschiede zu DOM HTML Level 2

HTML5 definiert einige DOM-Schnittstellen, die der Erstellung von Webanwendungen dienen sollen, dazu gehören unter anderem Schnittstellen für:

* die Kontrolle von Multimediaelementen,
* die Manipulation der History (feingradigere Vor- und Zurücknavigation),
* Drag & Drop,
* bearbeitbare Inhalte,
* Offlineanwendungen,
* das Speichern von Anwendungsdaten (üblicherweise 5 MB pro Domain).

Einige vormals proprietäre oder nur in Funktionssammlungen enthaltene Eigenschaften und Methoden wie innerHTML und getElementsByClassName wurden der Spezifikation hinzugefügt.

Des Weiteren ist das Verhalten der Elemente in HTML dem Verhalten der Elemente in XHTML angepasst worden, d. h.:

* localName gibt den Element- bzw. Attributnamen kleingeschrieben wieder.
* namespaceURI jedes Elements lautet „http://www.w3.org/1999/xhtml“

### Media Source Extensions

Media Source Extensions (MSE) ist eine vom W3C definierte Programmierschnittstelle, die es ermöglicht, durch JavaScript generierte Video-Datenströme im Webbrowser wiederzugeben.

## Kritik

HTML5 ist ein langjähriges, umfangreiches Projekt, zu dem es auch viele kritische Stimmen gibt.

### Kritik an der Weiterentwicklung von HTML

Joe Clark, Autor und Webaktivist für Zugänglichkeit, gesteht zwar der Vorversion HTML 4.01 Probleme zu, ist aber nicht der Meinung, dass die Sprache bezüglich bereits vorhandener Elemente weiterentwickelt werden müsse. Selbst sehr schlecht geschriebener Code führe demnach bereits heute in allen Browsern zu einem zufriedenstellenden Ergebnis. Clark kritisiert, dass die Weiterentwicklung von HTML in die falsche Richtung verlaufe. Das W3C habe an wichtigeren Baustellen zu arbeiten, beispielsweise dem in der Szene umstrittenen WCAG-2.0-Standard.

Shane McCarron, der als Editor für zahlreiche XHTML-Spezifikationen mitverantwortlich ist, vermutet, dass HTML weiterentwickelt werde, weil die großen Browserhersteller der Herausforderung, die in der Implementierung des Semantic Web liegt, nicht gewachsen seien. Daraus folgert er, dass das W3C auf Druck dieser Hersteller das Ziel eines XML-basierten Ökosystems aufgegeben habe.

### Kritik am Entstehungsprozess von HTML5

**Alleiniges Schreibrecht von Ian Hickson**

Ian Hickson war von Anfang an eine der treibenden Kräfte hinter HTML5. Er schrieb 2004 die Entwürfe für Web Forms 2.0 und Web Applications 1.0 und wurde 2005 von Google angestellt, um sich auf die Weiterführung dieser Arbeit konzentrieren zu können. Durch dieses Engagement wuchs Hickson in die Rolle des „wohlwollenden Diktators“. Er allein besaß das Bearbeitungsrecht für den HTML5-Entwurf und war für viele Entscheidungen, die die Spezifikation betreffen, allein verantwortlich.

Diese Vorgehensweise entspricht kaum der des W3C, dessen Spezifikationen auf demokratischem Konsens basieren. Daher fragen sich viele Webautoren, beispielsweise Kyle Weems, ob der Zweck (eine funktionale Spezifikation) die Mittel (konsequente, nichtdemokratische Entstehung jener Spezifikation) rechtfertigt.

**Fehlende Ernsthaftigkeit für interne Vorschläge**

Mathias Schäfer, Webentwickler und Mitautor verschiedener Dokumentationen (beispielsweise SELFHTML), kritisiert die fehlende Sachlichkeit bei der Diskussion von HTML5 während der Entstehung. Anhand des Beispiels der „verteilten Erweiterbarkeit“ (Erweiterung des HTML-Vokabulars um proprietäre bzw. private, etwa firmeninterne Elemente) zeigt er, dass Vorschläge nicht ernst genommen werden, obwohl Schäfer meint, dass gerade diese Vorgehensweise HTML5 zum Erfolg führen könnte.

### Kritik an der WHATWG

Die WHATWG selbst steht in der Kritik, da sie HTML5 nach wie vor auf ihrer Webseite als Spezifikation führt. Tatsächlich handelt es sich dabei jedoch nicht um HTML5, sondern – nach eigenen Angaben – um die nächste Generation von HTML. Das heißt, der Entwurf umfasst zwar den aktuellen Stand von HTML5, erweitert diesen aber um neue, noch unausgereifte Funktionen. Zudem besitzt der WHATWG-Entwurf einige Unterschiede zur Variante des W3C. Problematisch sind Unterschiede in den normativen Abschnitten, da hier das W3C den Standard festlegt, Browserhersteller aber in der Regel dem WHATWG-Entwurf folgen.

### Audio- und Videoelemente

Zum Einbinden von Audio- bzw. Videodaten definiert HTML5 die Elemente audio und video. Da jedoch kein Format definiert ist, welches als Mindeststandard unterstützt werden muss, gab es lange Zeit kein Format, das von allen Browsern unterstützt wurde. Zur Diskussion standen in der Vergangenheit unter anderem die Formate Ogg, Vorbis und Theora (die, ohne Lizenzgebühren zahlen zu müssen, verwendet werden können und ursprünglich als Mindeststandard festgelegt waren), H.264 (das eine bessere Qualität bietet, jedoch patentiert ist) und WebM mit den Codecs VP8/VP9.

Nachdem die MPEG Licensing Administration im August 2010 beschlossen hatte, dauerhaft keine Lizenzgebühren für freies Internet-Streaming von H.264-Inhalten zu verlangen, wird das Format mittlerweile von allen Browsern unterstützt und hat sich als De-facto-Standard etabliert.

**Digitale Rechteverwaltung**

2013 richteten die Unternehmen Google, Microsoft und Netflix an das W3C den Wunsch, dass über eine sogenannte Encrypted Media Extension (EME) verschlüsselte Medieninhalte über HTML5 ausgegeben werden können sollen. Durch dieses wurde Digital Rights Management (DRM) in Browser integriert. Unter den meistbenutzten Browsern unterstützen alle EME. Mozilla Firefox unterstützt EME ab Version 38, bot 2015 auch eine EME-freie Version an. Seitdem wird eine Möglichkeit geboten, EME bzw. DRM in den Einstellungen zu deaktivieren, womit auch das closed-source Widevine-CDM (Content Decryption Module) deinstalliert wird. Google Chrome unterstützt EME ab Version 26 mit selbstentwickelten Widevine-CDM, Internet Explorer ab Version 11. Am 18. September 2017 beschloss die W3C die Einführung von Encrypted Media Extensions als Webstandard. Aus Protest gegen diese Entscheidung ist die Electronic Frontier Foundation aus dem W3C-Konsortium ausgetreten. Im Oktober 2017 wurde der österreichische Negativpreis Big Brother Award in der Kategorie Behörden und Verwaltung an das W3C für die Einführung von EME als Webstandard verliehen.

