HTML5 (HyperText Markup Language 5) est la dernière révision du principal langage du web, HTML. HTML5 spécifie deux syntaxes d'un modèle abstrait défini en termes de DOM : HTML5 et XHTML5. Le langage comprend également une couche application avec de nombreuses API, ainsi qu'un algorithme afin de pouvoir traiter les documents à la syntaxe non conforme. Le travail a été repris par le W3C en mars 2007 après avoir été initié par le WHATWG. Les deux organisations travaillent en parallèle sur le même document afin de maintenir une version unique de la technologie.
Changements par rapport à HTML 4.X/XHTML 1.X
Spécification
Doctype
Tout comme HTML ou XHTML, les documents HTML5 nécessitent un Doctype indiquant la méthode de rendu standard au navigateur. Toutefois, pour les documents XML cette déclaration est facultative, le navigateur l'interprétant en mode standard par défaut.
Exemple d'utilisation avec HTML5
<htmllang="fr"><head><metacharset="utf-8"/><title>titre du site</title><metaname="description"content=""/><metaname="keywords"content=""/><metaname="author"content=""/><linkrel="shortcut icon"href="favicon.ico"/><linkhref="css/template.css"type="text/css"rel="stylesheet"media="screen"charset="utf-8"/></head><body>class="ma-class-en-css"> ="ma-class-en-css"> <ul><li><ahref="mon url"title="titre du lien">nom de mon lien</a></li><li><ahref="mon url"title="titre du lien">nom de mon lien</a></li><li><ahref="mon url"title="titre du lien">nom de mon lien</a></li></ul></nav></header><div>class="ma-class-en-css"> <h1>titre de mon article</h1><p>texte de mon article</p>class="ma-class-en-css"> <h2>sous-titre mon article</h2><p>texte de mon sous-titre</p>class="ma-class-en-css"> <ahref="mon url"><imgsrc="url de mon image"alt="nom de mon image"></a></figure></section></article>class="ma-class-en-css"> <h1>titre de mon article</h1><p>texte de mon article</p>class="ma-class-en-css"> <h2>sous-titre mon article</h2><p>texte de mon sous-titre</p>class="ma-class-en-css"> <ahref="mon url"><imgsrc="url de mon image"alt="nom de mon image"></a></figure></section></article></div>="ma-class-en-css"> ="ma-class-en-css"> <ul><li><ahref="mon url"title="titre du lien">nom de mon lien</a></li><li><ahref="mon url"title="titre du lien">nom de mon lien</a></li><li><ahref="mon url"title="titre du lien">nom de mon lien</a></li></ul></nav></footer></body></html>
Voir aussi : html5-profile
Il est à noter que la déclaration du Doctype n'est pas sensible à la casse et qu'il n'y a plus de référence à une DTD.
autofocus(Présélectionne un élément lors du chargement de la page)
form
Pour la balise style :
scoped
Pour la balise textarea :
autofocus
form
placeholder
required
Ainsi que les attributs globaux qui s'appliquent à toutes les balises :
contenteditable
contextmenu
data-*
draggable
hidden
on* (gestionnaires d'événements)
spellcheck
Connexion et distribution 'P2P'
HTML 5 se voit doté de la capacité de réaliser des connexions entre utilisateurs PeerToPeerConnection(), et également grâce aux websockets.
Changements dans les balises et attributs
Les balises
basefont,
big,
center,
font,
s,
strike,
tt,
u,
ont été supprimées car leurs effets étaient purement représentatifs, ce qui est le rôle de CSS.
Les balises frame, frameset et noframes ont été supprimées elles-aussi, elles étaient déjà dépréciées car elles créaient des problèmes d'accessibilité et d'utilisation pour l'utilisateur final.
Les balises suivantes ont elles aussi été supprimées :
acronym n'est plus incluse car elle créait beaucoup de confusions;
applet est obsolète en faveur de object;
isindex, car elle peut être remplacée par l'utilisation des contrôleurs de formes;
dir est obsolète en faveur de ul.
Enfin, noscript n'est fournie que dans la version HTML, elle n'est pas incluse dans la version XML.
HTML5 introduit huit nouvelles APIs qui pourront aider à créer des applications web et qui peuvent être utilisées ensemble avec de nouveaux éléments introduits pour les applications dont :
une API de dessin 2D utilisé avec la nouvelle balise canvas;
une API pour jouer des vidéos et des sons/musiques utilisé avec les nouvelles balises video et audio;
une API utilisée pour les applications hors-lignes;
une API d'édition en combinaison avec le nouvel attribut contenteditable;
une API de drag and drop en combinaison avec l'attribut draggable;
une API qui permet l'accès à l'historique et permet aux pages d'en ajouter pour prévenir les problèmes de bouton retour-en-arrière.