Accueil🇫🇷Chercher

HTML5

HTML5 (HyperText Markup Language 5) est la dernière révision majeure du HTML (format de données conçu pour représenter les pages web). Cette version a été finalisée le . HTML5 spécifie deux syntaxes d'un modèle abstrait défini en termes de DOM : HTML5 et XHTML5.

HTML5
Logo.
Image illustrative de l’article HTML5

Date de première version 28 octobre 2014
Paradigme Langage de balisage
Auteur WHATWG
DĂ©veloppeur WHATWG et W3C
Dernière version 5.2 (21 décembre 2017)
Version en développement 5.3
Typage statique
Influencé par SGML
A influencé Wikicode, BBCode
Écrit en SGML
Site web (en)WHATWG et (en)W3C
Extensions de fichiers HTML: .html, .htm
XHTML: .xhtml, .xht, .xml

Le langage comprend Ă©galement :

  • une couche application avec de nombreuses API ;
  • 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é lancé par le WHATWG. Les deux organisations travaillent en parallèle sur le même document afin de maintenir une version unique de la technologie. Le W3C clôt les ajouts de fonctionnalités le , annonçant une finalisation de la spécification en 2014[1], et encourage les développeurs Web à utiliser HTML5 dès ce moment. Fin 2016, la version 5.1 est officiellement publiée et présente plusieurs nouveautés qui doivent faciliter le travail des développeurs d'applications Web[2].

Le 18 janvier 2011, le W3C a introduit un logo pour représenter l'utilisation ou l'intérêt pour HTML5. Contrairement à d'autres badges précédemment émis par le W3C, cela n'implique pas la validité ou la conformité à une certaine norme. Depuis le 1er avril 2011, ce logo est officiel[3].

Lors de sa présentation initiale au public, le W3C a annoncé le logo HTML5 comme une "identité visuelle à usage général pour un large éventail de technologies Web ouvertes, notamment HTML5, CSS, SVG, WOFF et autres"[4]. Certains défenseurs des normes Web, dont The Web Standards Project, ont critiqué cette définition de "HTML5" en tant que terme générique, soulignant le flou de la terminologie et le potentiel de mauvaise communication[4]. Trois jours plus tard, le W3C a répondu aux commentaires de la communauté et a modifié la définition du logo, supprimant l'énumération des technologies associées[5]. Le W3C a ensuite déclaré que le logo "représente HTML5, la pierre angulaire des applications Web modernes"[3].

Changements par rapport Ă  HTML 4.X et XHTML 1.X

Doctype

Tout comme les pages HTML ou XHTML, les documents HTML5 nécessitent une déclaration Doctype[6] indiquant la méthode standard de rendu par le navigateur. Dans le cas de HTML5, il faut préciser « <!DOCTYPE html> » au début de tout document en HTML. Toutefois, pour les documents XML cette déclaration est facultative, le navigateur l'interprétant en mode standard par défaut. Pour utiliser la structure XML (XHTML5), il faut préciser dans le header : « Content-Type: application/xhtml+xml ».

Exemple d'utilisation avec HTML5

La déclaration du Doctype n'est pas sensible à la casse et il n'y a plus de référence à une DTD (Document Type Definition, ou Définition de Type de Document, document permettant de décrire un modèle de document SGML ou XML).

Encodage

Le processus de détection de l'encodage a également été modifié et s'effectue dans l'ordre, la vérification de la présence d'un header HTTP « Content-Type », et ensuite à la détection du BOM en début de fichier.

Éléments du langage

XHTML5

Pour les documents XHTML5, l'auteur doit spécifier l'encodage dans le prologue XML, mais aussi le type de contenu : « application/xhtml+xml ». La globalité de la page doit être conforme à la syntaxe XML. De par le caractère extensible du langage XML, il est possible d'ajouter d'autres balises (exemple : <mabalise></mabalise>) ; une telle extension nécessite de déclarer les espaces de noms correspondants, sans quoi la page sera en erreur et le navigateur pourrait ne pas être capable de l'afficher. C’est le mode le plus strict qui impose d'avoir une syntaxe quasi parfaite.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
  <head>
    <title>Exemple</title>
  </head>
  <body>
    <!-- Contenu de la page respectant la syntaxe XML. -->
  </body>
</html>

Nouveaux éléments

  • main : dĂ©finit le contenu principal de la page, il doit ĂŞtre unique dans la page.
  • section : dĂ©finit les sections du document, telles que les chapitres, en-tĂŞtes, pieds de page.
  • article : partie indĂ©pendante du site, comme un commentaire.
  • aside : associĂ© Ă  la balise qui le prĂ©cède.
  • header : spĂ©cifie une introduction, ou un groupe d'Ă©lĂ©ments de navigation pour le document.
  • footer : dĂ©finit le pied de page d'un article ou un document. Contient gĂ©nĂ©ralement le nom de l'auteur, la date Ă  laquelle le document a Ă©tĂ© Ă©crit et / ou ses coordonnĂ©es.
  • nav : dĂ©finit une section dans la navigation.
  • figure : dĂ©finit des images, des diagrammes, des photos, du code, etc.
  • figcaption : lĂ©gende pour la balise <figure>.
  • audio : pour dĂ©finir un son, comme la musique ou les autres flux audio (streaming).
  • video : permet d’insĂ©rer un contenu vidĂ©o en streaming.
  • track : permet d’insĂ©rer un sous-titre (au format WebVTT) Ă  une vidĂ©o affichĂ©e avec la balise vidĂ©o.
  • embed : dĂ©finit un contenu incorporĂ©, comme un plug in.
  • mark : dĂ©finit un texte marquĂ©.
  • meter : permet d’utiliser les mesures avec un minimum et maximum connus, pour afficher une jauge.
  • progress : dĂ©finit une barre de progression sur le travail en cours d’exĂ©cution.
  • time : dĂ©finit une date ou une heure, ou les deux. Cette balise a Ă©tĂ© abandonnĂ©e en en faveur de la balise data[7] avant d'ĂŞtre rĂ©introduite[8].
  • canvas : utilisĂ© pour afficher des Ă©lĂ©ments graphiques, il faut utiliser un script pour l’animer.
  • command : dĂ©finit un bouton. Cette balise est uniquement supportĂ©e par Internet Explorer 9. Il n'est donc pas recommandĂ© de l'utiliser[9] - [10].
  • details : prĂ©cise les dĂ©tails supplĂ©mentaires qui peuvent ĂŞtre masquĂ©s ou affichĂ©s sur demande.
  • keygen : permet de gĂ©nĂ©rer une clĂ© (sĂ©curisĂ©).
  • output : reprĂ©sente le rĂ©sultat d’un calcul.
  • ruby, rt et rp : annotations ruby.

Nouveaux attributs

Pour la balise <a> :

  • media : permet de spĂ©cifier pour quel mĂ©dia ou appareil il est optimisĂ©.
  • type : dĂ©finit le MIME de la cible URL.

Pour la balise <area> :

  • hreflang : spĂ©cifie le langage de l’url.
  • media : permet de spĂ©cifier pour quel mĂ©dia ou appareil il est optimisĂ©.
  • rel : indique la relation entre le document courant et l'URL cible.
  • type : dĂ©finit le MIME de la cible URL.

Pour la balise <button> :

  • autofocus : indique que le bouton doit avoir le focus pendant le chargement de la page.
  • form : spĂ©cifie Ă  quel formulaire le bouton appartient.
  • formaction : spĂ©cifie oĂą envoyer le form-data quand un formulaire est soumis. Remplace l'attribut action du formulaire.
  • formenctype : indique comment le form-data doit ĂŞtre encodĂ© avant d’être envoyĂ© Ă  un serveur. Remplace l'attribut enctype du formulaire.
  • formmethod : dĂ©finit comment il faut envoyer le form-data.
  • formnovalidate : si prĂ©sent, indique que le formulaire ne doit pas ĂŞtre validĂ© quand il est envoyĂ©.
  • formtarget : spĂ©cifie oĂą ouvrir/exĂ©cuter l’action.

Pour la balise <fieldset> :

  • name : dĂ©finit le nom du fieldset.
  • disabled : dĂ©sactive le fieldset.
  • form : dĂ©finit le formulaire du fieldset.

Pour la balise <form> :

  • autocomplete : autocomplĂ©tion.
  • novalidate : si prĂ©sent le formulaire n’est pas validĂ© lorsqu’il est soumis.

Pour la balise <html> :

  • manifest : URL de dĂ©claration (manifest) des fichiers pour un usage hors ligne.

Pour la balise <iframe> :

  • sandbox : spĂ©cifie des restrictions sur le contenu de l'iframe
  • seamless : indique que l'iframe doit ĂŞtre parfaitement intĂ©grĂ©e dans le document.
  • srcdoc : le code HTML du document affichĂ© dans l'iframe.

Pour la balise <input> :

  • autocomplete : autocomplĂ©tion.
  • autofocus : dĂ©finit le focus lors du chargement de la page.
  • form : spĂ©cifie Ă  quel formulaire le champ appartient.
  • formaction : remplace l'attribut "action" du formulaire. Indique l'URL Ă  laquelle envoyer les donnĂ©es du formulaire.
  • formenctype : remplace l'attribut "enctype" du formulaire. Indique comment la forme-donnĂ©es doit ĂŞtre encodĂ© avant d’être envoyĂ© au serveur.
  • formmethod : remplace l’attribut "method" du formulaire. DĂ©finit la mĂ©thode HTTP d'envoi des donnĂ©es Ă  l'URL.
  • formnovalidate : remplace l'attribut "novalidate" du formulaire. S'il est prĂ©sent le champ de saisie ne devrait pas ĂŞtre validĂ© lors de son envoi.
  • formtarget : remplace l'attribut "target" du formulaire. Indique la fenĂŞtre cible utilisĂ©e lorsque le formulaire est soumis.
  • height : dĂ©finit la hauteur.
  • list : dĂ©signe un "datalist" contenant des options prĂ©dĂ©finies pour le champ de saisie.
  • max : indique la valeur maximale du champ d'entrĂ©e.
  • min : indique la valeur minimale du champ d'entrĂ©e.
  • multiple : si prĂ©sent, l’utilisateur peut entrer plusieurs valeurs.
  • pattern : dĂ©finit un motif.
  • placeholder : un conseil pour aider les utilisateurs Ă  remplir le champ de saisie.
  • required : indique que la valeur du champ de saisie est nĂ©cessaire pour soumettre le formulaire.
  • step : indique l’intervalle entre les valeurs.
  • nouveaux types :
    • datetime
    • datetime-local
    • date
    • month
    • week
    • time
    • tel
    • number
    • range
    • email
    • url
    • search
    • color

Pour la balise <link> :

  • sizes : dĂ©finit la taille, hauteur et largeur.

Pour la balise <menu> :

  • label : label visible du menu.
  • type : dĂ©finit le type de menu Ă  afficher. La valeur par dĂ©faut est « list ».

Pour la balise <meta> :

  • charset : dĂ©finit la table de caractères pour l'encodage de la page.

Pour la balise <ol></ol> :

  • reversed : si prĂ©sent, change l’ordre d’affichage.

Pour la balise <script> :

  • async : dĂ©finit si le script doit ĂŞtre exĂ©cutĂ© de manière asynchrone ou pas.

Pour la balise <select> :

  • autofocus : active le focus sur cet Ă©lĂ©ment.
  • form : dĂ©finit un ou plusieurs formulaires pour le "select".

Pour la balise <style> :

  • scoped : si prĂ©sent, le style est appliquĂ© uniquement sur le parent et les fils.

Pour la balise <textarea> :

  • autofocus : focus l’élĂ©ment textarea.
  • dirname : indique le nom du textarea.
  • form : dĂ©finit une ou plusieurs formulaires pour le textarea.
  • maxlength : nombre maximum de caractères.
  • placeholder : dĂ©finit une astuce pour aider l’utilisateur.
  • required : indique que la valeur du champ de saisie est nĂ©cessaire.
  • wrap : dĂ©finit comment le texte est affichĂ© dans le textarea.

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

  • HTML5[11] - [12] - [13] - [14] - [15] 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 suivantes sont supprimées car leurs effets étaient purement représentatifs, ce qui est le rôle de CSS.

  • basefont,
  • big,
  • center,
  • font,
  • strike,
  • tt,
  • u,

Les balises frame, frameset et noframes ont été supprimées elles aussi ; elles étaient déjà désuètes car elles créaient des problèmes d'accessibilité et d'utilisation pour l'utilisateur final.

Les balises suivantes sont elles aussi supprimées :

  • acronym n'est plus incluse car elle crĂ©ait beaucoup de confusions ;
  • applet est remplacĂ© par 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 fourni que dans la version HTML, il n'est pas inclus dans la version XML.

Obsolescence d'attributs

Sur la balise a
  • charset
  • coords
  • name (prĂ©fĂ©rer l'attribut id)
  • methods
  • rev
  • shape
  • urn
Sur la balise area
  • nohref
Sur la balise embed
  • name (prĂ©fĂ©rer l'attribut id)
Sur la balise form
  • accept
Sur la balise head
  • profile
  • nohref
Sur la balise html
  • version
Sur la balise iframe
  • longdesc
Sur la balise input
  • ismap
  • usemap
Sur la balise img
  • longdesc
  • lowsrc
  • name (prĂ©fĂ©rer l'attribut id)
Sur la balise link
  • charset
  • methods
  • rev
  • target
  • urn
Sur la balise meta
  • scheme
Sur la balise object
  • archive
  • classid
  • code
  • codebase
  • codetype
  • declare
  • standby
Sur la balise option
  • name (prĂ©fĂ©rer l'attribut id)
Sur la balise param
  • type
  • valuetype
Sur la balise script
  • event
  • for
  • language
Sur la balise table
  • datapagesize
  • summary
Sur la balise td
  • axis
  • scope
Sur la balise th
  • axis

API

Avancées de la spécification HTML5 et des API associées.

HTML5 introduit plusieurs nouvelles API qui peuvent aider à créer des applications web et qui peuvent être utilisées ensemble, proposant de nouveaux éléments introduits pour les applications, et notamment :

  • dessin 2D utilisĂ©e avec la nouvelle balise canvas,
  • jouer des vidĂ©os et des sons/musiques utilisĂ©e avec les nouvelles balises vidĂ©o et audio,
  • applications hors-lignes,
  • Ă©dition en combinaison avec le nouvel attribut dit contenteditable,
  • glisser-dĂ©poser en combinaison avec l'attribut dit draggable,
  • accès Ă  l'historique de navigation et aux pages d'ajouter cette fonction d'historique de navigation, afin de prĂ©venir les problèmes du bouton retour-en-arrière.

De plus, des API tierces viennent s'intégrer à ce standard, telles que WebGL du Khronos Group permettant d'ajouter aux pages du contenu 3D.

Controverses

Vers la fin de l'année 2012, une campagne menée par plusieurs associations de défense des libertés numériques, dont la Free Software Foundation[16], a tenté d'attirer l'attention sur l'inclusion de verrous numériques (DRM) dans la norme HTML5[17].

Notes et références

  1. (fr) Le W3C confirme qu'HTML5 sera disponible en mai 2011 pour appel à commentaires, www.w3.org, le 14 février 2011.
  2. « Quelles nouveautés propose HTML 5.1 ? »,
  3. « W3C HTML5 Logo FAQ », sur www.w3.org (consulté le )
  4. « HTML5 logo: be proud, but don’t muddy the waters! - The Web Standards Project », sur web.archive.org, (consulté le )
  5. (en-US) « The HTML5 Logo Conversation | W3C Blog » (consulté le )
  6. (en)W3C Working Draft.
  7. (en)Bug 13240 - Consider replacing , w3.org.
  8. (en)W3C Adds Time Element Back to HTML5, webmonkey.com, publié en novembre 2011..
  9. (en) « Removed from html5 », sur w3schools.com (consulté le ).
  10. « <command> : The HTML Command element », sur MDN Web Docs (consulté le ).
  11. (en)W3C information :
  12. (en)HTML 5 plans to allow peer to peer connections from javascript, but these connections will not be raw TCP. The complete spec can be found at http://dev.w3.org/html5/websockets/.
  13. (en)Smart Clients: ReverseHTTP & WebSockets.
  14. (en)Will HTML5 allow web apps to make peer-to-peer HTTP connections?
  15. P2P, audio et vidéo au menu du HTML5.
  16. Dites au W3C : nous ne voulons pas d'un Hollyweb http://www.defectivebydesign.org/no-drm-in-html5/fr
  17. Levée de boucliers contre l'arrivée des DRM au sein du HTML5 http://www.numerama.com/magazine/25802-levee-de-boucliers-contre-l-arrivee-des-drm-au-sein-du-html5.html

Voir aussi

Bibliographie

  • (en) Mark Pilgrim, HTML5 : Up and Running, O'Reilly, , 205 p. (ISBN 978-0-596-80602-6)
  • (en) Jeremy Keith (prĂ©f. Jeffery Zeldman), HTML5 for Web Designers, A Book Apart, , 87 p. (ISBN 978-0-9844425-0-8)

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.