Depuis 2004, deux groupes de travail s’opposaient sur l’avenir du langage HTML. D’un côté, l’organisme international W3C voulait imposer XHTML 2.0 sans parvenir pas à le finaliser. Mais le format XHTML 2 suscitait la contreverse, outre le fait qu’il soit incompatible avec les précédents standards, on lui reprochait son orientation purement document alors que le Web devient 2.0 et a besoin de plus en plus d’applications et utilise des médias variés.
De l’autre, un groupe de travail indépendant WHATWG, soutenu par Apple, Mozilla et Opera, travaillait à la définition d’un format de page Web standard destiné à remplacer à la fois HTML 4 et XHTML, tout en gardant une compatibilité partielle : le HTML 5. HTML 5 s’intéressait donc aux applications Web. D’ailleurs cette version s’appelait à l’origine Web Application 1.0 avant de changer de nom pour mieux se poser en successeur de HTML 4.
Finalement, la guerre de tranchées entre le WhatWG et le W3C n’aura pas lieu. Ce dernier vient en effet de publier un document de travail dans le but de rassembler tous les principaux acteurs du web (Microsoft était en effet absent du WhatWG) mais également de recueillir l’avis de tous les utilisateurs et développeurs du web afin de s’assurer que la spécification HTML 5.0 répondra bien aux besoins du plus grand nombre, et pas seulement à ceux d’Apple, Opera et Mozilla.
HTML 5 standardise enfin les architectures web 2.0, notamment la notion de RIA et de client multimédia. Il supprime les balises de présentation (align, bgcolor, etc.) qui sont théoriquement remplacées par les feuilles de styles. Les frames disparaissent. Par conséquent les balises frame, frameset, noframe ne font plus partie du format.
Mais surtout, HTML 5 introduit une flopée de nouvelles APIs (interfaces de programmation) car le web permet désormais de développer des applications en ligne. Ces APIs s’étendent de la création de dessins en 2D, au contrôle de flux audio et vidéo, en passant par le mode déconnecté. Elles intègrent aussi nativement le support des événements utilisateur, du glisser-déplacer, l’édition de la page directement dans le navigateur, et le support des événements serveur.
Parmi les plus intéressantes, citons :
Canvas : C’est un canevas sur lequel on peut dessiner, et donc ajouter de nouveaux éléments graphiques à l’interface. Sur le canvas on peut effectuer des transformations d’agrandissement, rotation, translation… On dispose de figures variées: rectangles, courbes de Bézier, arc, avec les fonctions de remplissage et d’épaisseur de trait.
Audio et video : La balise video permet d’intègrer une vidéo dans le document. Elle s’accompagne d’un attribut src pour désigner le fichier, mais aussi d’attributs comme start, stop, autoplay etc qui définissent le comportement de la vidéo. La balise audio est l’équivalent pour les fichiers sonores.
Section : Les balises section permettent de diviser (ou subdiviser) un document en parts sémantiques. Elles servent à créer un plan, une table des matières. Les sections peuvent être des chapitres. Elles se différencient des balises div qui ont un rôle de présentation.
Mais HTML 5.0 va encore plus loin en proposant que les documents (page HTML, donc potentiellement une application AJAX) soient capables de dialoguer directement entre eux selon une logique peer-to-peer. D’autres architectures et technologies pourraient être intégrées à HTML 5. C’est le cas notamment des microformats (RDFa), des widgets (Widgets), de XMLHttpRequest (au coeur de l’architecture AJAX), mais aussi d’OpenID.
L’insuccès de XHTML 2 et ses limitations ouvrent donc la voie à HTML 5 qui n’est pas seulement une amélioration de HTML 4 et XHTML 1 mais aussi une réponse et une alternative à l’environnement Silverlight. Le W3C a démarré la standardisation du nouveau HTML. Il faudra sans doute longtemps avant qu’il ne devienne une recommandation (on parle de 2010), mais la plupart de ses fonctionnalités seront implémentées par de nombreux navigateurs rapidemment, certaines le sont même déjà sur les navigateurs basés sur Gecko 1.8, comme Firefox 1.5, Opera 9 ou une version récente de Safari.