AccueilđŸ‡«đŸ‡·Chercher

Hypertext Markup Language

Le HyperText Markup Language, généralement abrégé HTML ou, dans sa derniÚre version, HTML5, est le langage de balisage conçu pour représenter les pages web.

HTML
HyperText Markup Language
Caractéristiques
Extensions
.html, .htm
Type MIME
text/html
PUID
Développé par
Version initiale
Type de format
Basé sur
Origine de
Norme
Spécification
Site web

Ce langage permet d’écrire de l’hypertexte (d’oĂč son nom), de structurer sĂ©mantiquement une page web, de mettre en forme du contenu, de crĂ©er des formulaires de saisie ou encore d’inclure des ressources multimĂ©dias dont des images, des vidĂ©os, et des programmes informatiques. L'HTML offre Ă©galement la possibilitĂ© de crĂ©er des documents interopĂ©rables avec des Ă©quipements trĂšs variĂ©s et conformĂ©ment aux exigences de l’accessibilitĂ© du web.

Il est souvent utilisé conjointement avec le langage de programmation JavaScript et des feuilles de style en cascade (CSS). HTML est inspiré du Standard Generalized Markup Language (SGML). Il s'agit d'un format ouvert.

DĂ©nominations

L’anglais « Hypertext Markup Language » se traduit littĂ©ralement en « langage de balisage d’hypertexte »[1]. On utilise gĂ©nĂ©ralement le sigle « HTML », parfois mĂȘme en rĂ©pĂ©tant le mot « langage » comme dans « langage HTML ». Hypertext est parfois Ă©crit HyperText pour marquer le T du sigle HTML.

Le public non averti parle parfois de HTM au lieu de HTML, HTM Ă©tant l’extension de nom de fichier tronquĂ©e Ă  trois lettres, une limitation que l’on trouve sur d’anciens systĂšmes d’exploitation de Microsoft.

Évolution du langage

Durant la premiĂšre moitiĂ© des annĂ©es 1990, avant l’apparition des technologies Web comme le langage JavaScript (JS), les feuilles de style en cascade (CSS) et le Document Object Model (DOM), l’évolution de HTML a dictĂ© l’évolution du World Wide Web. Depuis la crĂ©ation de l'HTML 4 en 1997, l’évolution de HTML a fortement ralenti ; dix ans plus tard, HTML 4 reste utilisĂ© dans les pages web. En 2008, la spĂ©cification du HTML5 est Ă  l’étude[2] et devient d'usage courant dans la seconde moitiĂ© des annĂ©es 2010.

1989-1992 : Origine

HTML est une des trois inventions Ă  la base du World Wide Web, avec le Hypertext Transfer Protocol (HTTP) et les adresses web (URL). HTML a Ă©tĂ© inventĂ© pour permettre d'Ă©crire des documents hypertextuels liant les diffĂ©rentes ressources d’Internet avec des hyperliens. Aujourd’hui, ces documents sont appelĂ©s « page web ». En , lorsque Tim Berners-Lee annonce publiquement le web sur Usenet, il ne cite que le langage Standard Generalized Markup Language (SGML), mais donne l’URL d’un document de suffixe .html.

Dans son livre Weaving the web[3], Tim Berners-Lee dĂ©crit la dĂ©cision de baser HTML sur SGML comme Ă©tant aussi « diplomatique » que technique : techniquement, il trouvait SGML trop complexe, mais il voulait attirer la communautĂ© hypertexte qui considĂ©rait que SGML Ă©tait le langage le plus prometteur pour standardiser le format des documents hypertexte. En outre, SGML Ă©tait dĂ©jĂ  utilisĂ© par son employeur, l’Organisation europĂ©enne pour la recherche nuclĂ©aire (CERN). ;

Les premiers éléments du langage HTML comprennent :

  • le titre du document,
  • les hyperliens,
  • la structuration du texte en titres, sous-titres, listes ou texte brut,
  • un mĂ©canisme rudimentaire de recherche par index.

La description de HTML est alors assez informelle et principalement définie par le support des divers navigateurs web contemporains. Dan Connolly a aidé à faire de HTML une véritable application de SGML[4].

1993 : Apports de NCSA Mosaic

L’état de HTML correspond alors Ă  ce que l’on pourrait appeler HTML 1.0. Il n’existe cependant aucune spĂ©cification portant ce nom, notamment parce que le langage Ă©tait alors en pleine Ă©volution. Un effort de normalisation Ă©tait cependant en cours[5]. À partir de fin 1993, le terme HTML+ est utilisĂ© pour dĂ©signer la version future de HTML[6] - [7]. MalgrĂ© l’effort de normalisation ainsi initiĂ©, et jusqu’à la fin des annĂ©es 1990, HTML est principalement dĂ©fini par les implĂ©mentations des navigateurs web.

Avec le navigateur NCSA Mosaic, HTML connaĂźt deux inventions majeures :

  • d’abord l’invention de l’élĂ©ment IMG permet d’intĂ©grer des images (dans un premier temps, uniquement aux formats GIF et XBM) aux pages web (Mosaic 0.10) ;
  • ensuite l’invention des formulaires (Mosaic 2.0pre5) rend le web interactif en permettant aux visiteurs de saisir des donnĂ©es dans les pages et de les envoyer au serveur web. Cette invention permet notamment de passer des commandes, et donc d’utiliser le web pour faire du commerce Ă©lectronique.

1994 : Apports de Netscape Navigator

Avec l’apparition de Netscape Navigator 0.9 le , le support de nombreux Ă©lĂ©ments de prĂ©sentation est ajoutĂ© : attributs de texte, clignotement, centrage, etc.

Le développement de HTML prend alors deux voies divergentes :

  • d’une part, les dĂ©veloppeurs de navigateurs s’attachent Ă  maximiser l’impact visuel des pages web en rĂ©ponse aux demandes des utilisateurs[8] ;
  • d’autre part, les concepteurs du web proposent d’étendre les capacitĂ©s de description sĂ©mantique (logos, notes de bas de page, etc.) et les domaines d’applications (formules mathĂ©matiques, tables) de HTML.

Les concepteurs suivent les principes de SGML consistant Ă  laisser la prĂ©sentation Ă  un langage de style. En l’occurrence, les feuilles de style en cascade (CSS) sont prĂ©vues pour HTML. Seul le support des tables est rapidement intĂ©grĂ© aux navigateurs, notamment parce qu’il permet une trĂšs nette amĂ©lioration de la prĂ©sentation.

Outre la multiplication des Ă©lĂ©ments de prĂ©sentation, les logiciels d’alors produisant et consommant du HTML conçoivent souvent les documents comme une suite de commandes de formatage plutĂŽt que comme un marquage reprĂ©sentant la structure en arbre aujourd’hui appelĂ©e Document Object Model (DOM). Le manque de structure du HTML alors mis en Ɠuvre est parfois dĂ©noncĂ© comme Ă©tant de la « soupe de balises », en anglais : tag soup.

1995-1996 : HTML 2.0

En , le World Wide Web Consortium (W3C) nouvellement fondĂ© propose le rĂ©sultat de ses recherches sur HTML+ : le brouillon HTML 3.0. Il comprend notamment le support des tables, des figures et des expressions mathĂ©matiques. Ce brouillon expire le sans donner de suites directes. Fin 1995, le RFC 1866[9] dĂ©crivant HTML 2.0 est finalisĂ©. Le principal Ă©diteur est Dan Connolly. Ce document dĂ©crit HTML tel qu’il existait avant , donc sans les nombreuses additions de Netscape Navigator.

1997 : HTML 3.2 et 4.0

Le , le W3C publie la spĂ©cification HTML 3.2. Elle dĂ©crit la pratique courante observĂ©e dĂ©but 1996[10], donc avec une partie des additions de Netscape Navigator et d’Internet Explorer. Ses plus importantes nouveautĂ©s sont la standardisation des tables et de nombreux Ă©lĂ©ments de prĂ©sentation. HTML 3.2 prĂ©cĂšde de peu HTML 4.0 et contient des Ă©lĂ©ments en prĂ©vision du support des styles et des scripts.

Le , le W3C publie la spĂ©cification HTML 4.0 qui standardise de nombreuses extensions supportant les styles et les scripts, les cadres (frames) et les objets (inclusion gĂ©nĂ©ralisĂ©e de contenu). HTML 4.0 apporte Ă©galement diffĂ©rentes amĂ©liorations pour l’accessibilitĂ© des contenus[11] dont principalement la possibilitĂ© d’une sĂ©paration plus explicite entre structure et prĂ©sentation du document, ou le support d’informations supplĂ©mentaires sur certains contenus complexes tels que les formulaires, les tableaux ou les sigles. HTML 4.0 introduit trois variantes du format, destinĂ©es Ă  favoriser l’évolution vers un balisage plus signifiant, tout en tenant compte des limites temporaires des outils de production :

  • la variante stricte (strict) exclut des Ă©lĂ©ments et attributs dits « de prĂ©sentation », destinĂ©s Ă  ĂȘtre remplacĂ©s par les styles CSS, ainsi que les Ă©lĂ©ments applet et frame qui sont remplacĂ©s par l’élĂ©ment object conçu pour ĂȘtre plus apte Ă  l’interopĂ©rabilitĂ© et Ă  l’accessibilitĂ© ;
  • la variante transitoire (transitional) Ă©tend la variante stricte en reprenant les Ă©lĂ©ments et attributs dĂ©prĂ©ciĂ©s de HTML 3.2, dont les Ă©lĂ©ments de prĂ©sentation sont couramment utilisĂ©s par les Ă©diteurs HTML de l’époque ;
  • la variante frameset normalise la technique des jeux de cadres composant une ressource unique Ă  partir de plusieurs pages web assemblĂ©es par le navigateur.

Ces variantes perdurent par la suite sans modifications notables en HTML 4.01 et dans le format de transition XHTML 1.0 issu de HTML. La derniĂšre spĂ©cification de HTML est la version 4.01 datant du . Elle n’apporte que des corrections mineures Ă  la version 4.0.

2000-2006 : XHTML

Le dĂ©veloppement de HTML en tant qu’application du Standard Generalized Markup Language (SGML) est officiellement abandonnĂ© au profit de XHTML, application de Extensible Markup Language (XML).

Cependant, en 2004, des éditeurs de navigateurs web[12] créent le web Hypertext Application Technology Working Group (WHATWG) dans le but, notamment, de relancer le développement du format HTML et de répondre aux nouveaux besoins sur une base technologique jugée plus aisément implémentable que celle du XHTML 2.0 en cours de conception.

Ceci s’inscrit dans le contexte d’une contestation plus gĂ©nĂ©rale du mode de fonctionnement du W3C, rĂ©putĂ© trop fermĂ© par une partie des dĂ©veloppeurs et designers web[13].

De 2007 Ă  nos jours : HTML 5 et abandon du XHTML 2

En , tirant la consĂ©quence des rĂ©ticences d’une partie de l’industrie et des concepteurs de contenus web face Ă  XHTML 2.0[14], le W3C relance le dĂ©veloppement de HTML et crĂ©e un nouveau groupe de travail encadrĂ© par Chris Wilson (Microsoft) et initialement Dan Connolly (W3C),puis Michael Smith (W3C).

Il s’agit notamment[15] :

  • de faire Ă©voluer HTML pour dĂ©crire la sĂ©mantique des documents mais aussi les applications en ligne ;
  • de parvenir Ă  un langage extensible via XML tout en maintenant une version non XML compatible avec les analyseurs syntaxiques (parsers) HTML des navigateurs actuels ;
  • et d’enrichir les interfaces utilisateurs avec des contrĂŽles spĂ©cifiques : barres de progrĂšs, menus, champs associĂ©s Ă  des types de donnĂ©es spĂ©cifiques.

Les travaux du WHATWG ont Ă©tĂ© formellement adoptĂ©s en comme point de dĂ©part d’une nouvelle spĂ©cification HTML5[16]. Ce document[17] a Ă©tĂ© publiĂ© sous forme de Working Draft le . Parmi les principes de conception Ă©voquĂ©s par le groupe de travail figurent en particulier[18] :

  • la compatibilitĂ© des futures implĂ©mentations HTML avec le contenu web existant, et la possibilitĂ© pour d’anciens agents utilisateurs d’exploiter les futurs contenus HTML 5 ;
  • une approche pragmatique, prĂ©fĂ©rant les Ă©volutions aux modifications radicales, et adoptant les technologies ou pratiques dĂ©jĂ  largement partagĂ©es par les auteurs de contenus actuels ;
  • la prioritĂ© donnĂ©e, en cas de conflit d’intĂ©rĂȘt, aux besoins des utilisateurs sur ceux des auteurs, et par suite, Ă  ceux des auteurs sur les contraintes d’implĂ©mentation par les navigateurs ;
  • le compromis entre la richesse sĂ©mantique du langage et l’utilitĂ© pratique des solutions disponibles pour remplir l’objectif majeur d’indĂ©pendance envers le mĂ©dia de restitution.

Une Accessibility Task Force est créée par le W3C en afin de résoudre les problÚmes de compatibilité du nouveau format avec les normes d'accessibilité[19], liés notamment à l'implémentation d'ARIA, aux alternatives textuelles et aux nouveaux éléments canvas et video[20].

Le dĂ©veloppement de XHTML 2.0 est initialement poursuivi en parallĂšle, en rĂ©ponse aux besoins d’autres secteurs du web, tels que les pĂ©riphĂ©riques mobiles, les applications d’entreprise et les applications serveurs[21]. Puis, en , le W3C dĂ©cide la non-reconduction du XHTML 2 Working Group Ă  la fin 2009[22].

Avec l'abandon du XHTML 2, la version XHTML 1.1 reste donc la version normalisĂ©e. Le HTML5 sera compatible avec le XHTML et le XML, et autorisera donc des documents XHTML5[23]. Cependant, il est probable que le W3C s'oriente vers un abandon pur et simple du XHTML 1.1, car l'implantation du XML dans le HTML5 rend inutile la dĂ©finition de document de type XHTML y.y (oĂč y.y sont les numĂ©ros de version)[23].

Avenir du HTML

En , des divergences de points de vue entre Ian Hickson (ingĂ©nieur chez Google), qui Ă©crit la spĂ©cification HTML5, et les membres du groupe de travail du W3C conduisent le WHATWG Ă  crĂ©er HTML Living Standard (littĂ©ralement : standard vivant du HTML), une spĂ©cification de HTML prĂ©vue pour ĂȘtre en constante Ă©volution, afin de coller avec les dĂ©veloppements rapides de nouvelles fonctionnalitĂ©s par les dĂ©veloppeurs de navigateurs[24](par opposition Ă  des versions numĂ©rotĂ©es, donc « fixes »).

Le HTML Living Standard a pour but d'inclure le HTML5, et de le dĂ©velopper en permanence[25]. En particulier, dans la version du , le document de rĂ©fĂ©rence[25] explique que le HTML5 du W3C, publiĂ© le , est basĂ© sur une version du HTML Living Standard, mais que le HTML Living Standard ne s'arrĂȘte pas Ă  cette version, et continue Ă  Ă©voluer. Il dĂ©veloppe en particulier les diffĂ©rences entre la version W3C (le HTML5) et la version HTML Living Standard (par exemple, les nouveaux bugs ne sont pas pris en compte dans le HTML5, des diffĂ©rences syntaxiques sont rĂ©pertoriĂ©es, et de nouvelles balises crĂ©Ă©es par le HTML Living Standard ne sont pas incluses dans le HTML5).

Description de HTML

HTML est un langage de description de format de document qui se prĂ©sente sous la forme d’un langage de balisage dont la syntaxe vient du Standard Generalized Markup Language (SGML).

Syntaxe de HTML

Jusqu’à sa version 4.01 comprise, HTML est formellement dĂ©crit comme une application du SGML. Cependant, les spĂ©cifications successives admettent, par diffĂ©rents biais, que les agents utilisateurs ne sont pas, en pratique, des analyseurs SGML conformes[26]. Les navigateurs Web n’ont jamais Ă©tĂ© capables de dĂ©chiffrer l’ensemble des variations de syntaxe permises par SGML[27] ; en revanche ils sont gĂ©nĂ©ralement capables de rattraper automatiquement de nombreuses erreurs de syntaxe, suivant la premiĂšre partie de la « loi de Postel » : « Soyez libĂ©ral dans ce que vous acceptez, et conservateur dans ce que vous envoyez » (RFC 791[28]). De fait, les dĂ©veloppeurs de pages Web et de navigateurs Web ont toujours pris beaucoup de libertĂ© avec les rĂšgles syntaxiques de SGML. Enfin, la document type definition (DTD) de HTML, soit la description technique formelle de HTML, n’a Ă©tĂ© Ă©crite par Dan Connolly que quelques annĂ©es aprĂšs l’introduction de HTML[4].

MalgrĂ© les libertĂ©s prises avec la norme, la terminologie propre Ă  SGML est utilisĂ©e : document, Ă©lĂ©ment, attribut, valeur, balise, entitĂ©, validitĂ©, application, etc. GrĂące Ă  la DTD, il est possible de vĂ©rifier automatiquement la validitĂ© d’un document HTML Ă  l’aide d’un parseur SGML[29].

À l’origine, HTML a Ă©tĂ© conçu pour baliser (ou marquer) simplement le texte, notamment pour y ajouter des hyperliens. On utilisait un minimum de balises, comme dans le document HTML suivant :

<TITLE>Exemple de HTML</TITLE>
Ceci est une phrase avec un <A HREF=cible.html>hyperlien</A>.
<P>
Ceci est un paragraphe o&ugrave; il n'y a pas d'hyperlien.

Cet exemple contient du texte, cinq balises et une rĂ©fĂ©rence d’entitĂ© :

  • <TITLE> est la balise ouvrante de l’élĂ©ment TITLE.
  • </TITLE> est la balise fermante de l’élĂ©ment TITLE.
  • Exemple de HTML est le contenu de l’élĂ©ment TITLE.
  • <A HREF=cible.html> est la balise ouvrante de l’élĂ©ment A, avec :
    • HREF=cible.html, l’attribut HREF dont la valeur est cible.html.
  • <P> est la balise ouvrante de l’élĂ©ment P. Toutefois, elle est utilisĂ©e ici comme s’il s’agissait d’un sĂ©parateur de paragraphe, et c’est mĂȘme ainsi qu’elle est souvent prĂ©sentĂ©e dans les plus anciennes documentations de HTML. Il s’agit de la balise ouvrante du paragraphe dont le contenu est Ceci est un paragraphe o&ugrave; il n’y a pas d’hyperlien. La balise fermante de l’élĂ©ment P, qui est optionnelle, est ici omise. L’élĂ©ment P est implicitement terminĂ© lorsqu’un nouveau paragraphe commence ou que l’élĂ©ment parent est fermĂ© (cas prĂ©sent).
  • &ugrave; est une rĂ©fĂ©rence d’entitĂ© reprĂ©sentant le caractĂšre « Ăč ».
  • Les balises peuvent ĂȘtre indiffĂ©remment Ă©crites en minuscules ou majuscules. L’usage des minuscules devient plus courant car XHTML les impose.

Un document HTML valide est un document qui respecte la syntaxe SGML, n’utilise que des Ă©lĂ©ments et attributs standardisĂ©s, et respecte l’imbrication des Ă©lĂ©ments dĂ©crite par le standard. Il ne manque qu’une dĂ©claration de type de document Ă  l’exemple prĂ©cĂ©dent pour qu’il soit un document HTML 2.0 valide[30].

Un document valide n’est cependant pas suffisant pour ĂȘtre conforme Ă  la spĂ©cification HTML visĂ©e. En effet, outre l’exigence de validitĂ©, un document conforme est soumis Ă  d’autres contraintes qui ne sont pas exprimĂ©es par la dĂ©finition de type de document (DTD), mais qui le sont par la spĂ©cification elle-mĂȘme. C’est notamment le cas du type de contenu de certains attributs, comme celui de l’attribut datetime : pour ĂȘtre conforme Ă  HTML 4.01, celui-ci doit ĂȘtre lui-mĂȘme conforme Ă  un sous-ensemble de la norme ISO 8601[31]. Un parseur strictement SGML tel que le validateur HTML du W3C ne peut donc pas garantir la conformitĂ© d’un document HTML.

Structure des documents HTML

Dans les premiĂšres annĂ©es, les documents HTML Ă©taient souvent considĂ©rĂ©s comme des structures plates, et les balises comme des commandes de style[32]. Ainsi la balise <p> Ă©tait considĂ©rĂ©e comme un saut de ligne, et la balise </p> Ă©tait ignorĂ©e. Ou encore lorsque JavaScript 1.0 est apparu, il ne donnait accĂšs qu’aux liens et formulaires du document Ă  travers les tables document.forms et document.links.

Avec l’introduction des Cascading Style Sheets et du Document Object Model, il a fallu considĂ©rer que les documents HTML ont une vĂ©ritable structure en arbre, avec un Ă©lĂ©ment racine contenant tous les autres Ă©lĂ©ments[33]. Les balises ouvrantes et fermantes de ces Ă©lĂ©ments restent d’ailleurs optionnelles. Cependant, aujourd’hui, on a tendance Ă  baliser chaque Ă©lĂ©ment[34] et Ă  indiquer la DTD. À l'exception de l'Ă©lĂ©ment Ă  la racine, chaque Ă©lĂ©ment a exactement un Ă©lĂ©ment parent direct ; cet « arbre du document » est notamment utilisĂ© par la structure de formatage qui en est dĂ©rivĂ©e pour l’application des feuilles de style en cascade oĂč chaque Ă©lĂ©ment peut avoir un fond, un bord et une marge propres.

Structure d’un document HTML
Source HTML ModĂšle du document
<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
 <head>
  <title>
   Exemple de HTML
  </title>
 </head>
 <body>
  Ceci est une phrase avec un <a href="cible.html">hyperlien</a>.
  <p>
   Ceci est un paragraphe oĂč il n’y a pas d’hyperlien.
  </p>
 </body>
</html>

html

head

title

texte

body

texte

a

texte

texte

p

texte

ÉlĂ©ments de HTML

La version 4 de HTML dĂ©crit 91 Ă©lĂ©ments. En suivant la spĂ©cification de HTML 4, les fonctionnalitĂ©s implĂ©mentĂ©es par HTML peuvent ĂȘtre rĂ©parties ainsi :

Structure gĂ©nĂ©rale d’un document HTML[35]
Au plus haut niveau, un document HTML est sĂ©parĂ© entre un en-tĂȘte et un corps. L’en-tĂȘte contient les informations sur le document, notamment son titre et Ă©ventuellement des mĂ©tadonnĂ©es. Le corps contient ce qui est affichĂ©.
Informations sur la langue[36]
Il est possible d’indiquer la langue de n’importe quelle partie du document et de gĂ©rer le mĂ©lange de texte s’écrivant de gauche Ă  droite avec du texte de droite Ă  gauche.
Marquage sémantique[37]
HTML permet de diffĂ©rencier des contenus spĂ©cifiques tels que les citations d’Ɠuvres externes, les extraits de code informatique, les passages en emphase et les abrĂ©viations. Certains de ces Ă©lĂ©ments, conçus initialement pour permettre le support de documentations techniques, sont trĂšs rarement employĂ©s (diffĂ©renciation entre les Ă©lĂ©ments de variable et d’exemple de valeur dans un code informatique, par exemple, ou encore instance d’un terme dĂ©fini dans le contexte).
Listes[38]
HTML diffĂ©rencie des listes non ordonnĂ©es et des listes ordonnĂ©es, selon que l’ordre formel du contenu dans le code est en soi ou non une information. Des listes de dĂ©finition existent Ă©galement, mais sans que leur champ d’application ne soit exactement dĂ©terminĂ©.
Tables[39]
Cette fonctionnalité sert formellement à la présentation de données tabulaires, mais a été surtout exploitée pour ses capacités de mise en page avant que les feuilles de style en cascade (CSS) atteignent un degré de maturité suffisant.
Hyperliens[40]
La fonctionnalité premiÚre de HTML.
Inclusion d’images, d’applets et d’objets divers[41]
À l’origine HTML permettait seulement de donner des hyperliens sur les mĂ©dias externes. L’invention d’élĂ©ments spĂ©cialisĂ©s pour le multimĂ©dia a permis l’inclusion automatique d’image, de musique, de vidĂ©o, etc. dans les pages web.
ÉlĂ©ments de regroupement[42]
Ne confĂ©rant pas de signification au contenu qu’ils balisent, ces Ă©lĂ©ments gĂ©nĂ©riques permettent d’appliquer des styles de prĂ©sentation, de rĂ©aliser des traitements via des scripts ou tout autre opĂ©ration nĂ©cessitant d’isoler une partie du contenu.
Style de la présentation[43]
Chaque élément, voire tout le document, peut se voir appliquer des styles. Les styles sont définis dans le document ou proviennent de feuilles de style en cascade (CSS) externes.
Marquage de présentation du texte[44]
DĂ©veloppĂ© avant la gĂ©nĂ©ralisation de CSS pour fournir rapidement des fonctionnalitĂ©s aux graphistes. D’usage dĂ©sormais officiellement dĂ©conseillĂ© pour la plus grande partie.
Cadres[45]
Aussi connu sous le nom de frames, une fonctionnalitĂ© souvent dĂ©criĂ©e qui permet d’afficher plusieurs documents HTML dans une mĂȘme fenĂȘtre.
Formulaire pour l’insertion interactive de donnĂ©es[46]
Les éléments de formulaire permettent aux visiteurs d'entrer du texte et des fichiers dans les pages Web.
Scripts[47]
Permet d’associer des morceaux de programmes aux actions des utilisateurs sur le document. Les langages utilisĂ©s sont gĂ©nĂ©ralement JavaScript et VBScript.

Attributs de HTML

Les attributs permettent de prĂ©ciser les propriĂ©tĂ©s des Ă©lĂ©ments HTML. Il y a 188 attributs dans la version 4 de HTML[48].

Certains attributs s’appliquent Ă  presque tous les Ă©lĂ©ments :

  • les attributs gĂ©nĂ©riques id (identificateur unique) et class (identificateur rĂ©pĂ©table)[49] destinĂ©s Ă  permettre l’application de traitements externes, tels que l’application de styles de prĂ©sentation ou de manipulation de l’arbre du document via un langage de script. Il s’y ajoute l’attribut style[50] permettant de dĂ©finir le style de prĂ©sentation de l’élĂ©ment (gĂ©nĂ©ralement en CSS), et l’attribut title[51] apportant une information complĂ©mentaire de nature le plus souvent libre (L’exception majeure est l’utilisation du title pour dĂ©terminer le style permanent et les Ă©ventuels styles alternatifs appliquĂ©s Ă  un document via des Ă©lĂ©ments link) ;
  • les attributs d’internationalisation dir et lang[36] spĂ©cifiant la direction d’écriture et la langue du contenu ;
  • les gestionnaires d’évĂšnements onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup[52], qui capturent les Ă©vĂšnements gĂ©nĂ©rĂ©s dans l’élĂ©ment pour appeler un script.

D’autres attributs sont propres Ă  un Ă©lĂ©ment unique, ou des Ă©lĂ©ments similaires. Par exemple :

  • les Ă©lĂ©ments qui permettent d’inclure dans le document des ressources graphiques sont dotĂ©s d’attributs de hauteur et de largeur, afin que le navigateur puisse anticiper la taille de la ressource Ă  afficher avant que celle-ci n’ait Ă©tĂ© tĂ©lĂ©chargĂ©e : img, object, iframe ;
  • des Ă©lĂ©ments spĂ©cifiques sont dotĂ©s d’un attribut assumant une fonction unique, tel que l’élĂ©ment label des Ă©tiquettes des contrĂŽles de formulaire et son attribut for dĂ©signant le contrĂŽle concernĂ© : c’est, en HTML, et avec les attributs usemap et ismap des images, l’une des trĂšs rares associations explicites et formalisĂ©es entre des Ă©lĂ©ments, indĂ©pendamment de leur ordre linĂ©aire dans le code source.

La plupart des attributs sont facultatifs. Quelques éléments ont cependant des attributs obligatoires :

  • de par leur nature : l’élĂ©ment img est obligatoirement dotĂ© d’un attribut src spĂ©cifiant l’URI de la ressource graphique qu’il reprĂ©sente. Il en est de mĂȘme de tous les Ă©lĂ©ments dits « vides » et « remplacĂ©s »[53] qui, au prix d’une entorse aux rĂšgles SGML, n’ont pas de contenu propre. C’est Ă©galement le cas d’élĂ©ments non vides pour des raisons fonctionnelles, comme l’élĂ©ment form dont l’attribut action indique la cible serveur qui traitera les donnĂ©es aprĂšs soumission ;
  • pour des raisons liĂ©es Ă  l’accessibilitĂ© du contenu : les images sont ainsi dotĂ©es d’un attribut obligatoire alt permettant d’indiquer un contenu textuel brut destinĂ© Ă  remplacer la ressource graphique dans les contextes de consultation oĂč elle ne peut pas ĂȘtre restituĂ©e ou perçue.

Le type de contenu des attributs HTML Ă©chappe pour partie au champ d’application de cette norme, et sa validation relĂšve de normes tierces telles que les URI, les types de contenu ou les codes de langages.

Certains attributs sont enfin de type boolĂ©en. Ce sont les seuls attributs dont la syntaxe peut ĂȘtre validement implicite en HTML : l’attribut selected d’un contrĂŽle de formulaire peut ainsi ĂȘtre raccourci sous la forme selected remplaçant la forme complĂšte selected="selected". Cette forme particuliĂšre est un des points diffĂ©renciant HTML de la syntaxe des documents « bien formĂ©s » au sens XML.

Jeux de caractĂšres

Les pages Web peuvent ĂȘtre rĂ©digĂ©es dans toutes sortes de langues et de trĂšs nombreux caractĂšres peuvent ĂȘtre utilisĂ©s, ce qui requiert soit un jeu de caractĂšres par type d’écriture, soit un jeu de caractĂšres universel. Lors de l’apparition de HTML, le jeu de caractĂšres universel Unicode n’était pas encore inventĂ©, et de nombreux jeux de caractĂšres se cĂŽtoyaient, notamment ISO-8859-1 pour l’alphabet latin et ouest-europĂ©en, Shift-JIS pour le japonais, KOI8-R pour le cyrillique. Aujourd’hui, le codage UTF-8 de Unicode est le plus rĂ©pandu.

Le protocole de communication HTTP transmet le nom du jeu de caractĂšres. L’en-tĂȘte HTML peut comporter le rappel de ce jeu de caractĂšres, qui devrait ĂȘtre identique, sauf erreur de rĂ©glage. Enfin, Ă  la suite d'un mauvais rĂ©glage, le jeu de caractĂšres rĂ©ellement utilisĂ© peut encore diffĂ©rer du jeu annoncĂ©. Ces mauvais rĂ©glages causent gĂ©nĂ©ralement des erreurs d’affichage du texte, notamment pour les caractĂšres non couverts par la norme ASCII.

Technique d'Ă©chappement

Avant la généralisation d'Unicode, des entités ont été définies pour représenter certains caractÚres non ASCII. Cela a commencé avec les caractÚres d'ISO 8859-1 dans la norme HTML 2.0. Pour les diacritiques, ces entités suivent un principe simple : la lettre est suivie de l'abréviation de la diacritique associée.

Diacritiques d'ISO 8859-1
caractÚre référence d'entité remarque
Á &Aacute; acute pour l'accent aigu
 &Acirc; circ pour l'accent circonflexe
À &Agrave; grave pour l'accent grave
Å &Aring; ring pour le rond en chef
à &Atilde; tilde pour le tilde
Ä &Auml; uml (Umlaute) pour le trĂ©ma
Ç &Ccedil; cedil pour la cĂ©dille
Ø &Oslash; slash pour la barre oblique

Interopérabilité de HTML

Tel qu’il a Ă©tĂ© formalisĂ© par le W3C, HTML est conçu pour optimiser l’interopĂ©rabilitĂ© des documents. Le HTML ne sert pas Ă  dĂ©crire le rendu final des pages web. En particulier, contrairement Ă  la publication assistĂ©e par ordinateur, HTML n’est pas conçu pour spĂ©cifier l’apparence visuelle des documents. HTML est plutĂŽt conçu pour donner du sens aux diffĂ©rentes parties du texte : titre, liste, passage important, citation, etc. Le langage HTML a Ă©tĂ© dĂ©veloppĂ© avec l’intuition que les appareils de toutes sortes seraient utilisĂ©s pour consulter le web : les ordinateurs personnels avec des Ă©crans de rĂ©solution et de profondeur de couleurs variables, les tĂ©lĂ©phones portables, les appareils de synthĂšse et de reconnaissance de la parole, les ordinateurs avec une bande passante faible comme Ă©levĂ©e, et ainsi de suite.

Comme HTML ne s’attache pas au rendu final du document, un mĂȘme document HTML peut ĂȘtre consultĂ© Ă  l’aide de matĂ©riels et logiciels trĂšs divers. Au niveau matĂ©riel, un document peut notamment ĂȘtre affichĂ© sur un Ă©cran d'ordinateur en mode graphique ou un terminal informatique en mode texte, il peut ĂȘtre imprimĂ©, ou il peut ĂȘtre prononcĂ© par synthĂšse vocale. Au niveau logiciel, HTML ne fait pas non plus de supposition, et plusieurs types de logiciels lisent le HTML : navigateur web, robot d'indexation, scripts divers (en Perl, PHP) de traitement automatique.

Un haut degrĂ© d’interopĂ©rabilitĂ© permet de baisser les coĂ»ts des fournisseurs de contenus car une seule version de chaque document sert des besoins trĂšs variĂ©s. Pour l’utilisateur du web, l’interopĂ©rabilitĂ© permet l’existence de nombreux navigateurs concurrents, tous capables de consulter l’ensemble du web.

Chaque version de HTML a essayĂ© de reflĂ©ter le plus grand consensus entre les acteurs de l’industrie, de sorte que les investissements consentis par les fournisseurs de contenus ne soient pas gaspillĂ©s et que leurs documents ne deviennent en peu de temps illisibles. La sĂ©paration du fond et de la forme n’a pas toujours Ă©tĂ© respectĂ©e au cours du dĂ©veloppement du langage, comme en tĂ©moigne par exemple le balisage de style de texte, qui permet d’indiquer notamment la police de caractĂšres souhaitĂ©e pour l’affichage, sa taille, ou sa couleur.

Notes et références

  1. « ISO/IEC 15445:2000 », sur ISO (consulté le ).
  2. Le W3C publie le premier document de travail sur HTML 5, futur du contenu Web - La communauté Web établit le prochain standard HTML au sein du forum W3C public, communiqué, W3C, .
  3. (en) Tim Berners-Lee, Mark Fischetti, Weaving the web: the past, present and future of the World Wide Web by its inventor, Londres, Texere, 2000, p. 45-46 (ISBN 978-1-58799-018-2).
  4. (en) James Gillies, Robert Cailliau, How the Web was Born: The Story of the World Wide Web, Oxford, Oxford University Press, 2000, p. 212-213 (ISBN 978-0-19-286207-5).
  5. (en) Hypertext Markup Language (HTML), Internet Draft, , sur w3.org.
  6. (en) « Introduction to HTML 4 », sur www.w3.org (consulté le )
  7. « Introduction Ă  HTML 4 », sur www.la-grange.net (consultĂ© le )
  8. Marc Andreessen, crĂ©ateur de Netscape Navigator, dĂ©clarait dĂšs 1993 sur la liste de discussion www-talk : « Je pense que s’occuper du SGML en gĂ©nĂ©ral est une complĂšte perte de temps, et que nous en serions aujourd’hui beaucoup plus loin si nous n’étions pas encombrĂ©s avec cet hĂ©ritage SGML que nous continuons Ă  porter. 99,99 % des gens avec qui je parle veulent mettre en ligne des documents riches, veulent contrĂŽler leur apparence, et se contre-fichent totalement du balisage sĂ©mantique ou des diffĂ©rences entre la structure et le rendu d’un document. » (en) HTML Spec, datĂ© du .
  9. (en) « Hypertext Markup Language - 2.0 », Request for comments no 1866.
  10. (en) « HTML 3.2 Reference Specification », sur www.w3.org (consulté le )
  11. La W3C a lancĂ© en 1997 les premiers travaux de son (en) Initiative pour l’AccessibilitĂ© du web (WAI), qui entame alors l’élaboration de ce qui allait devenir les premiĂšres (en) Directives pour l’AccessibilitĂ© des Contenus web (WCAG), essentiellement consacrĂ©es Ă  l’accessibilitĂ© des documents HTML.
  12. L’initiative vient d’Opera et de Mozilla, rejoints par la suite par Apple, (en) http://www.w3.org/2004/04/webapps-cdf-ws/papers/opera.html.
  13. (en) Jeffrey Zeldman, An angry fix, mis en ligne le .
  14. Tim Berners Lee Ă©crivait dĂšs : « la tentative de faire passer tout le monde Ă  XML et aux contraintes syntaxiques que cela impose (guillemets autour des valeurs d’attributs, slashes dans les balises simples et espaces de noms), Ă  intĂ©grer d’un seul coup, n’a pas fonctionnĂ© 
 Il faut crĂ©er un groupe de travail HTML entiĂšrement nouveau qui, contrairement au prĂ©cĂ©dent, sera destinĂ© Ă  apporter des amĂ©liorations incrĂ©mentales Ă  HTML, ainsi qu’à XHTML », (en) http://dig.csail.mit.edu/breadcrumbs/node/166.
  15. (en) « HTML Working Group », Charte du groupe de travail HTML W3C, sur www.w3.org (consulté le )
  16. (en)Results of Questionnaire Shall we Adopt HTML5 as our specification text for review?, sur w3.org.
  17. (en) HTML 5 – A vocabulary and associated APIs for HTML and XHTML – W3C Working Draft 22 January 2008, http://www.w3.org/TR/html5/.
  18. (en) HTML Design Principles, sur w3.org.
  19. (en) HTML Accessibility Task Force Work Statement, W3C, HTML Accessibility Task Force Wiki, W3C.
  20. (en) Why is HTML5 Accessibility important? Because this child may never know HTML 4, Steve Faulkner, , sur slideshare.net.
  21. « Le XHTML a Ă©tĂ© appliquĂ© sur d’autres marchĂ©s, dont les pĂ©riphĂ©riques mobiles, les applications d’entreprise, les applications serveurs, ainsi que dans un nombre croissant d’applications web telles que les blogiciels. Par exemple, le Groupe de travail des Meilleures Pratiques du web Mobile a inclus le standard XHTML Basic comme pierre angulaire des Meilleures Pratiques du web Mobile car les logiciels s’exĂ©cutant avec peu de mĂ©moire peuvent le prendre en charge. 
 Avec la mise en place du Groupe de travail XHTML 2, le W3C continuera son travail technique sur le langage et prendra parallĂšlement en compte la revalorisation de la technologie afin d’expliquer clairement son indĂ©pendance et sa valeur sur le marchĂ© 
 », (en) CommuniquĂ© du W3C, .
  22. « 2009 - W3C », sur www.w3.org (consulté le ).
  23. « Frequently Asked Questions (FAQ) about the future of XHTML », sur www.w3.org (consulté le )
  24. Denis Christine, « Historique d'Internet », sur webpao.inaden.org, (consulté le )
  25. « HTML Standard », sur html.spec.whatwg.org (consulté le )
  26. (en) Henri Sivonen, An HTML5 Conformance Checker, thĂšse de Master, Helsinki, 2007.
  27. Comme la forme courte <em/emphase/> au lieu de <em>emphase</em>.
  28. (en) « Internet Protocol », Request for comments no 791.
  29. Comme valideur HTML, on peut notamment citer le (en) Markup Validation Service du W3C.
  30. « [Valid] Markup Validation of upload://Form Submission - W3C Markup Validator », sur validator.w3.org (consulté le )
  31. « Paragraphs, Lines, and Phrases », sur www.w3.org (consulté le )
  32. Tim Berners-Lee considĂ©rait les balises de titre, et mĂȘme de liste, comme des balises de style. Voir notamment la prĂ©sentation Les standards HTML et CSS des origines Ă  mercredi dernier de Daniel Glazman.
  33. Des navigateurs comme Netscape Navigator 4 ont eu du mal Ă  faire cette transition ; ainsi un style appliquĂ© Ă  l’élĂ©ment p donnait des rĂ©sultats dĂ©pendants de la prĂ©sence de la balise optionnelle de fermeture </p>.
  34. Pour simplifier SGML, le standard XML (sur lequel est basĂ© XHTML) n’autorise pas les balises optionnelles.
  35. (en) HTML 4.01 Specification - 7 The global structure of an HTML document, sur www.w3.org (consulté le ) ; 7 La structure globale du document HTML, sur www.la-grange.net (consulté le )
  36. (en) HTML 4.01 Specification - 8 Language information and text direction, sur www.w3.org (consulté le ) ; 8 Les indications de langue et la direction du texte, sur www.la-grange.net (consulté le ).
  37. (en) HTML 4.01 Specification - 9 Text, sur www.w3.org (consulté le ) ; 9 Le texte, sur www.la-grange.net (consulté le )
  38. (en) HTML 4.01 Specification - 10 Lists sur www.w3.org (consulté le ) ; 10 Les listes, sur www.la-grange.net (consulté le ).
  39. (en) HTML 4.01 Specification - 11 Tables sur www.w3.org (consulté le ) ; 11 Les tables, sur www.la-grange.net (consulté le ).
  40. (en) HTML 4.01 Specification - 12 Links sur www.w3.org (consulté le ) ; 12 Les liens, sur www.la-grange.net (consulté le ).
  41. (en) HTML 4.01 Specification - 13 Objects, Images, and Applets sur www.w3.org (consulté le ) ; 13 Les objets, les images et les applets, sur www.la-grange.net (consulté le ).
  42. (en) HTML 4.01 Specification - 7.5.4 Grouping elements: the DIV and SPAN elements, sur www.w3.org (consulté le ) ; 7.5.4 Le regroupement des éléments : les éléments DIV et SPAN, sur www.la-grange.net (consulté le ).
  43. (en) HTML 4.01 Specification - 14 Style Sheets, sur www.w3.org (consulté le ) ; 14 Les feuilles de style, sur www.la-grange.net (consulté le ).
  44. (en) HTML 4.01 Specification - 15 Alignment, font styles, and horizontal rules, sur www.w3.org (consultĂ© le ) ; 15 L’alignement, les styles de police et les rĂšgles horizontales, sur www.la-grange.net (consultĂ© le ).
  45. (en) HTML 4.01 Specification - 16 Frames, sur www.w3.org (consulté le ) ; 16 Les cadres, sur www.la-grange.net (consulté le ).
  46. (en) HTML 4.01 Specification - 17 Forms, sur www.w3.org (consulté le ) ; 17 Les formulaires sur www.la-grange.net (consulté le ).
  47. (en) HTML 4.01 Specification - 18 Scripts, sur www.w3.org (consulté le ) ; 18 Les scripts, sur www.la-grange.net (consulté le ).
  48. (en) HTML 4.01 Specification - Index of Attributes sur www.w3.org (consulté le ) ; Index des attributs, sur www.la-grange.net (consulté le ).
  49. (en) HTML 4.01 Specification - 7.5.2 Element identifiers: the id and class attributes, sur www.w3.org (consulté le ) ; 7.5.2 Les identifiants des éléments : les attributs id et class, sur www.la-grange.net (consulté le ).
  50. (en) HTML 4.01 Specification - 14.2.2 Inline style information, sur www.w3.org (consulté le ) ; 14.2.2 Les informations de style en-ligne, sur www.la-grange.net (consulté le ).
  51. (en) HTML 4.01 Specification - 7.4.3 The title attribute sur www.w3.org (consultĂ© le ) ; 7.4.3 L’attribut title, sur www.la-grange.net (consultĂ© le )
  52. (en) HTML 4.01 Specification - 18.2.3 Intrinsic events sur www.w3.org (consulté le ) ; 18.2.3 Les événements intrinsÚques, sur www.la-grange.net (consulté le )
  53. au sens de CSS 2.1 qui explicite la notion d’« Ă©lĂ©ment remplacĂ© » restĂ©e implicite en HTML. Voir (en) http://www.w3.org/TR/CSS21/conform.html#replaced-element.

Voir aussi

Articles connexes

Liens externes

Documents officiels

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