Übersicht über HTML5-Spezifikationen und -Literatur

· 2 Kommentare

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

W3C Editor’s Draft, Michael(tm) Smith (W3C)

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.

Simon Pieters (Opera)

HTML5 Reference - A Web Developer’s Guide to HTML5

Einführung in die Syntax und kompakte Element-Referenz mit Kurzbeschreibung und Verschachtelungsregeln

W3C Editor’s Draft, Lachlan Hunt (Opera)

Nicht-normative Hintergrundartikel

HTML5 differences from HTML 4

Unterschiede zwischen HTML 4 und HTML5. Artikel der HTML-Arbeitsgruppe als Zusatz zur Hauptspezifikation.

Anne van Kesteren (Opera)

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.

W3C Working Draft, Anne van Kesteren (Opera), Maciej Stachowiak (Apple)

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

W3C Editor’s Draft, Karl Dubost (ehemals W3C)

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

Ian Hickson (Google, HTML5-Editor)

Web Database

Clientseitiges Speichern von umfangreichen JavaScript-Daten in einer klassischen SQL-Datenbank

Wichtige Objekte: window.openDatabase()

Ian Hickson (Google, HTML5-Editor)

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()

Ian Hickson (Google, HTML5-Editor)

Selectors API Level 1

Ansprechen und Auswählen von Elementen im DOM über CSS-artige Selektoren

Wichtige Objekte: document.querySelector(), document.querySelectorAll()

Anne van Kesteren, Lachlan Hunt (jeweils Opera)

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(),

Lachlan Hunt (Opera)

Web Sockets

Echte Socket-Verbindungen mit dem Server per JavaScript für Anwendungen, bei denen HTTP ungeeignet ist

Wichtige Objekte: new WebSocket()

Ian Hickson (Google, HTML5-Editor)

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()

Ian Hickson (Google, HTML5-Editor)

Geolocation API

JavaScript-Schnittstelle zum Zugriff auf die gegenwärtige geographische Position des Benutzers/Rechners

Wichtige Objekte: navigator.geolocation.getCurrentPosition()

Andrei Popescu (Google)

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

Anne van Kesteren (Opera)

XMLHttpRequest

DiDie Standardisierung des bekannten und breit, aber uneinheitlich implementierten XMLHttpRequest-Objekt, dessen API einst von Microsoft stammt.

Wichtiges Objekt: new XMLHttpRequest()

Anne van Kesteren (Opera)

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()

Anne van Kesteren (Opera)

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()

Arun Ranganathan (Mozilla)

« CSS kompakt: Einschließen von Floats

Was ist HTML 5? – Weit mehr als eine Auszeichnungssprache »

  • Jeena hat kommentiert:

    Das sieht ja nach so viel aus dass man sich da wirklich mal Zeit nehmen müsste und das lernen sollte ...

  • Flo hat kommentiert:

    Hey Mathias,

    vielen Dank für die tolle Zusammenstellung!

    Flo

Wenn es Ihnen beliebt, können Sie einen Kommentar hinterlassen. Nur zu.

(Benötigt)

(wird nicht veröffentlicht - benötigt)