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
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.
Exemple d'utilisation avec XHTML5
Encodage
Le processus de détection de l'encodage a également été modifié et s'effectue dans l'ordre :
- Vérification de la présence d'un header HTTP "Content-Type" ;
- Détection du BOM en début de fichier ;
- Utilisation d'une balise meta spécifique (<meta charset="UTF-8"> par exemple, la syntaxe utilisée dans les versions précédentes étant toujours compatible)
Pour les documents XHTML5, l'auteur doit spécifier l'encodage dans le prologue XML :
Nouvelles balises
- section (Identifier un bloc de contenu)
- article
- aside (Insérer un contenu sans rapport avec la page)
- header (Indiquer le haut de page (début de page) de la section concernée)
- footer (Indiquer le pied de page de la section concernée)
- nav (Indiquer une section avec beaucoup de liens internes au site)
- figure
- audio (Insérer un contenu Audio.)
- [video](/fr/definitions/video)[type=embedded-definition] (Insérer un contenu Vidéo.)
- embed
- mark
- meter
- [progress](/fr/definitions/progress)[type=embedded-definition] (Indiquer un niveau d'avancement)
- time
- canvas
- command
- details
- keygen
- output
- [ruby](/fr/definitions/ruby)[type=embedded-definition], rt et rp (pour les annotations ruby)
Il y a également de nouveaux types pour la balise input :
- datetime
- datetime-local
- date
- month
- week
- time
- number
- range
- email
- url
- search
- color
Nouveaux attributs
Pour la balise a :
- media
- [ping](/fr/definitions/ping)[type=embedded-definition]
- target (précédemment déprécié)
Pour la balise area :
- hreflang
- media
- ping
- rel
- target (précédemment déprécié)
Pour la balise base :
Pour la balise button :
- autofocus
- form
- formaction
- formenctype
- formmethod
- formnovalidate
- formtarget
Pour la balise fieldset :
Pour la balise form :
Pour la balise html :
Pour la balise iframe :
Pour la balise input :
- autocomplete
- autofocus (sauf lorsque l'attribut type est défini à hidden)
- form
- formaction
- formenctype
- formmethod
- formnovalidate
- formtarget
- list
- max
- min
- multiple
- pattern
- placeholder
- required (sauf lorsque l'attribut type est défini à hidden, image ou les types de boutons tel que submit)
- step
Pour la balise li :
- value (précédemment déprécié)
Pour la balise link :
Pour la balise menu :
Pour la balise meta :
Pour la balise ol :
- reversed
- [start](/fr/definitions/start)[type=embedded-definition] (précédemment déprécié)
Pour la balise script :
Pour la balise select :
- autofocus (Présélectionne un élément lors du chargement de la page)
- form
Pour la balise style :
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
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](/fr/definitions/applet)[type=embedded-definition] 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](/fr/definitions/noscript)[type=embedded-definition] n'est fournie que dans la version HTML, elle n'est pas incluse dans la version XML.
API
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.