Wie in meinem Artikel Was ist HTML5 angekündigt, möchte ich eine strukturierte Übersicht über die entstehenden Standards aus dem HTML5-Umfeld geben. Für mich war es am Anfang nämlich nicht klar, an welchen Stellen und unter welchen Bedingungen an den verschiedenen HTML5-Techniken gearbeitet wird. So habe ich alle relevanten Links zusammengetragen.
Stand: 12. Februar 2010
Von den vorgestellten W3C-Dokumenten gibt es meist zwei Versionen, einen Arbeitsentwurf (Working Draft) auf www.w3.org sowie einen Autorenentwurf (Editor’s Draft) auf dev.w3.org. Der letztere enthält als Live-Version tagesaktuellen Änderungen, der Working Draft wird regelmäßig daraus generiert. Wenn Sie den experimentellen, unfertigen Stand suchen, ist der Autorenentwurf der richtige. Der stabilere Arbeitsentwurf enthält eher Techniken und Formulierungen, die sich in der Diskussion behauptet haben.
HTML5-Hauptspezifikation
HTML5 wird gleichzeitig beim WHATWG-Gremium und bei einer W3C-Arbeitsgruppe entwickelt. Da der Hauptautor auf der WHATWG-Seite steht, ist der erste Anlaufpunkt der täglich aktualisierte Entwurf (Draft) auf whatwg.org:
WHATWG Multi-Page
Die Spezifikation auf mehrere HTML-Dokumente verteilt
WHATWG Single-Page
Die gesamte Spezifikation in einer riesigen HTML-Datei
Ich rate von der täglichen Benutzung dieser WHATWG-Adressen ab. Sie laden umfangreiche JavaScript, die die Lade- und Lese-Performance verschlechtern. Diese Scripte binden allerdings Zusatzinhalte mit Angaben zur Browser-Unterstützung ein, ermöglichen das Abgeben von Kommentaren und zeigen Verknüpfungen zu offenen Fragen (Issues). Diese Angebote sind für diejenigen interessant, die die Entwicklung der HTML5-Spezifikation verfolgen oder gar zu ihr beitragen wollen. Sie stören hingegen beim bloßen Suchen und Lesen in der Spezifikation. Insbesondere die 4,2 Megabyte große Single-Page-Variante bringt manche Browser zum einfrieren!
Beim W3C liegen ebenfalls eine tagesaktuell generierte HTML5-Spezifikation. Für die tägliche Nutzung empfehle ich diese schnell ladenden Adressen:
W3C Working Draft
HTML5-Spezifikation beim W3C, letzter Arbeitsentwurf, Multi-Page
W3C Editor’s Draft
HTML5-Spezifikation beim W3C, aktueller Autorenentwurf, Multi-Page
HTML5 Author Edition
Der Autorenentwurf in der Ansicht für Autoren. Für alle, die die Entwicklung mitverfolgen wollen, gibt es auch beim W3C eine Variante der Spezifikation mit Anmerkungen
Ausgelagerte Teil-Spezifikationen beim W3C
Die HTML5-Entwürfe bei der WHATWG und der beim W3C sind unterschiedlich umfangreich. W3C-HTML5 deckt den größten Teil von WHATWG-HTML5 ab, hat allerdings die restlichen Teiltechniken in eigene Spezifikationen ausgelagert.
Grund dieser Aufsplittung ist eine andere Arbeitsweise des W3Cs. Während sich die WHATWG von einem Versionsmodell verabschiedet hat, will die W3C-Arbeitsgruppe einen stabilen Standard festlegen und klammert noch strittige und unfertige Teile aus der Hauptspezifikation aus. Daher nennt sich die WHATWG-Spezifikation »HTML5 (including next generation additions still in development)«, also: HTML5 plus Zusätze, die sich noch in der Entwicklung befinden.
Folgende Techniken, die seitens der WHATWG fest in die HTML5-Spezifikation integriert sind, sind seitens des W3C ausgelagert. Sie liegen derzeit alle als tagesaktuelle Autorenentwürfe (Editor’s Draft) vor:
Canvas 2D Context
JavaScript-API für das zweidimensionale Zeichnen auf dem canvas-Element
HTML Microdata
HTML-Attribute, um maschinenlesbare Metadaten unterzubringen, mit JavaScript-API
HTML Device
Entwürfe für eine API zum Zugriff auf Kamera und Mikrofon für audiovisuelle Streams
Referenzen der Auszeichnungssprache
Neben der offiziellen Spezifikation gibt es Zusammenfassungen von HTML5 als Auszeichnungssprache. Sprich, Referenzen über alle Elemente und deren Attribute, Verschachtelungsregeln und eventuell die DOM-Schnittstelle (Methoden und Eigenschaften der Elementobjekte).
HTML5: The Markup Language
Referenz von allen HTML-Elementen und -Attributen. Gute Übersicht für Webautoren, weil die Anweisungen zur Verarbeitung, die sich an Browserhersteller richten, wegfallen
HTML5 Elements and Attributes
Ein Frameset mit Deep-Links auf normative WHATWG-Spezifikation (Achtung, Single-Page!). Eignet sich gut, um schnell zur detaillierten Beschreibung eines gewissen Elemente in der Spec zu springen.
HTML5 Reference - A Web Developer’s Guide to HTML5
Einführung in die Syntax und kompakte Element-Referenz mit Kurzbeschreibung und Verschachtelungsregeln
Nicht-normative Hintergrundartikel
HTML5 differences from HTML 4
Unterschiede zwischen HTML 4 und HTML5. Artikel der HTML-Arbeitsgruppe als Zusatz zur Hauptspezifikation.
HTML Design Principles
Älterer Hintergrundartikel, der die Grundprinzipien von HTML5 beschreibt. Er ist vor allem als historisches Dokument zu lesen, denn vor einigen Jahren wurde diese Ansätze kontrovers diskutiert, heute stellen Sie die »Philosophie« der HTML5-Spezifikation.
HTML5 and XHTML5 - one vocabulary, two serializations
Der entstehende Artikel erklärt die zwei Serialisierungen von HTML5, HTML und XHTML, sowie die daraus resultierenden Syntaxunterschiede
JavaScript-Techniken aus dem Umfeld von HTML5
HTML5 ist ein Sammelbegriff für verschiedene neue Techniken, darunter vor allem JavaScript-APIs (Programmierschnittstellen). Im Umfeld von HTML5 entwickeln die Arbeitsgruppen künftige JavaScript-Standards.
Manche sind fester Bestandteil der HTML5-Spezifikation: Die Hauptspezifikation enthält nach wie vor zentrale JavaScript-APIs, z.B. werden die Objekte window, location, navigator, history und Rich Text Editing (contenteditable/designMode) endlich standardisiert. Dann gibt es APIs, die bei der WHATWG integriert und beim W3C ausgelagert sind (siehe oben). So etwa HTML5 Canvas.
Die meisten der neuen APIs werden in eigenen Spezifikationen entwickelt, siehe dazu die folgende Liste. Der Status der folgenden Techniken ist höchst unterschiedlich: Manche sind bereits in einigen Browsern testweise implementiert, auch wenn sich die Spezifikationen noch weiterentwickeln. Andere sind seit vielen Jahren in der Entwicklung, aber es gibt noch keine experimentellen Browserumsetzungen. Schließlich gibt es Spezifikationen, die lediglich den Status Quo bereits unterstützter JavaScript-Techniken dokumentieren und standardisieren sollen.
Web Storage
Einfaches clientseitiges, Cookie-artiges Speichern von JavaScript-Daten
Wichtige Objekte: window.sessionStorage, window.localStorage
Web Database
Clientseitiges Speichern von umfangreichen JavaScript-Daten in einer klassischen SQL-Datenbank
Wichtige Objekte: window.openDatabase()
Web Workers
Paralleles Ausführen von losgelösten JavaScript-Prozessen, die mit dem Haupt-Script über Nachrichten kommunizieren (vgl. Cross-Document Messaging in der HTML5-Hauptspezifikation)
Wichtige Objekte: new Worker()
Selectors API Level 1
Ansprechen und Auswählen von Elementen im DOM über CSS-artige Selektoren
Wichtige Objekte: document.querySelector(), document.querySelectorAll()
Selectors API Level 2
Erweiterung der Selectors-API (siehe oben) um die Möglichkeit, innerhalb eines Elements anstatt dokumentweit zu suchen
Wichtige Objekte: document.querySelector(), document.querySelectorAll(), document.queryScopedSelector(), document.queryScopedSelectorAll(),
Web Sockets
Echte Socket-Verbindungen mit dem Server per JavaScript für Anwendungen, bei denen HTTP ungeeignet ist
Wichtige Objekte: new WebSocket()
Server-Sent Events
Eine Server-Push-Lösung mit offen gehaltenen HTTP-Verbindungen, um einen kontinuierlichen Datenstrom zu empfangen (z.B. bei Chats)
Wichtiges Objekt: new EventSource()
Geolocation API
JavaScript-Schnittstelle zum Zugriff auf die gegenwärtige geographische Position des Benutzers/Rechners
Wichtige Objekte: navigator.geolocation.getCurrentPosition()
Cross-Origin Resource Sharing (CORS)
Nicht direkt eine JavaScript-Technik, sondern eine HTTP-Erweiterung, um Zugriffsrechte zu formulieren. Das ermöglicht ein kontrolliertes Umgehen der grundlegenden Sicherheitsregel im Web, der Same-Origin Policy. Darauf baut u.a. Cross-Site XMLHttpRequest (Cross-Domain Ajax) auf.
Kernbestandteil: Der HTTP-Antwortheader Access-Control-Allow-Origin und weitere, deren Namen mit »Access-Control-« beginnen
XMLHttpRequest
DiDie Standardisierung des bekannten und breit, aber uneinheitlich implementierten XMLHttpRequest-Objekt, dessen API einst von Microsoft stammt.
Wichtiges Objekt: new XMLHttpRequest()
XMLHttpRequest 2
Mögliche zukünftige Weiterentwicklung von XMLHttpRequest (»Ajax«) mit Ausrichtung auf domainübergreifende HTTP-Anfragen (mittels Cross-Origin Resource Sharing, siehe oben) sowie Datei-Uploads.
Wichtiges Objekt: new XMLHttpRequest()
File API
JavaScript-Zugriff auf den Inhalt von Dateien, die der Nutzer über Formularfelder ausgewählt hat
Wichtige Objekte: Die files-Eigenschaft bei <input type="file">-Elementen und new FileReader()
Jeena hat kommentiert:
2009-10-28 14:34
Das sieht ja nach so viel aus dass man sich da wirklich mal Zeit nehmen müsste und das lernen sollte ...
Flo hat kommentiert:
2009-10-29 00:28
Hey Mathias,
vielen Dank für die tolle Zusammenstellung!
Flo