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.
HyperText Markup Language
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
etframe
qui sont remplacĂ©s par lâĂ©lĂ©mentobject
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ù 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Ă©mentTITLE
.</TITLE>
est la balise fermante de lâĂ©lĂ©mentTITLE
.Exemple de HTML
est le contenu de lâĂ©lĂ©mentTITLE
.<A HREF=cible.html>
est la balise ouvrante de lâĂ©lĂ©mentA
, avec :HREF=cible.html
, lâattributHREF
dont la valeur estcible.html
.
<P>
est la balise ouvrante de lâĂ©lĂ©mentP
. 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 estCeci est un paragraphe où il nây a pas dâhyperlien.
La balise fermante de lâĂ©lĂ©mentP
, qui est optionnelle, est ici omise. LâĂ©lĂ©mentP
est implicitement terminĂ© lorsquâun nouveau paragraphe commence ou que lâĂ©lĂ©ment parent est fermĂ© (cas prĂ©sent).ù
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.
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) etclass
(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âattributstyle
[50] permettant de dĂ©finir le style de prĂ©sentation de lâĂ©lĂ©ment (gĂ©nĂ©ralement en CSS), et lâattributtitle
[51] apportant une information complĂ©mentaire de nature le plus souvent libre (Lâexception majeure est lâutilisation dutitle
pour déterminer le style permanent et les éventuels styles alternatifs appliqués à un document via des élémentslink
) ; - les attributs dâinternationalisation
dir
etlang
[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 attributfor
dĂ©signant le contrĂŽle concernĂ© : câest, en HTML, et avec les attributsusemap
etismap
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 attributsrc
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Ă©mentform
dont lâattributaction
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.
caractÚre | référence d'entité | remarque |
---|---|---|
Ă | Á |
acute pour l'accent aigu |
Ă | Â |
circ pour l'accent circonflexe |
Ă | À |
grave pour l'accent grave |
Ă | Å |
ring pour le rond en chef |
Ă | Ã |
tilde pour le tilde |
Ă | Ä |
uml (Umlaute) pour le tréma |
Ă | Ç |
cedil pour la cédille |
Ă | Ø |
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
- « ISO/IEC 15445:2000 », sur ISO (consulté le ).
- 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, .
- (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).
- (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).
- (en) Hypertext Markup Language (HTML), Internet Draft, , sur w3.org.
- (en) « Introduction to HTML 4 », sur www.w3.org (consulté le )
- « Introduction à HTML 4 », sur www.la-grange.net (consulté le )
- 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 .
- (en) « Hypertext Markup Language - 2.0 », Request for comments no 1866.
- (en) « HTML 3.2 Reference Specification », sur www.w3.org (consulté le )
- 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.
- 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.
- (en) Jeffrey Zeldman, An angry fix, mis en ligne le .
- 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.
- (en) « HTML Working Group », Charte du groupe de travail HTML W3C, sur www.w3.org (consulté le )
- (en)Results of Questionnaire Shall we Adopt HTML5 as our specification text for review?, sur w3.org.
- (en) HTML 5 â A vocabulary and associated APIs for HTML and XHTML â W3C Working Draft 22 January 2008, http://www.w3.org/TR/html5/.
- (en) HTML Design Principles, sur w3.org.
- (en) HTML Accessibility Task Force Work Statement, W3C, HTML Accessibility Task Force Wiki, W3C.
- (en) Why is HTML5 Accessibility important? Because this child may never know HTML 4, Steve Faulkner, , sur slideshare.net.
- « 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, .
- « 2009 - W3C », sur www.w3.org (consulté le ).
- « Frequently Asked Questions (FAQ) about the future of XHTML », sur www.w3.org (consulté le )
- Denis Christine, « Historique d'Internet », sur webpao.inaden.org, (consulté le )
- « HTML Standard », sur html.spec.whatwg.org (consulté le )
- (en) Henri Sivonen, An HTML5 Conformance Checker, thĂšse de Master, Helsinki, 2007.
- Comme la forme courte
<em/emphase/>
au lieu de<em>emphase</em>
. - (en) « Internet Protocol », Request for comments no 791.
- Comme valideur HTML, on peut notamment citer le (en) Markup Validation Service du W3C.
- « [Valid] Markup Validation of upload://Form Submission - W3C Markup Validator », sur validator.w3.org (consulté le )
- « Paragraphs, Lines, and Phrases », sur www.w3.org (consulté le )
- 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.
- 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>
. - Pour simplifier SGML, le standard XML (sur lequel est basĂ© XHTML) nâautorise pas les balises optionnelles.
- (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 )
- (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 ).
- (en) HTML 4.01 Specification - 9 Text, sur www.w3.org (consulté le ) ; 9 Le texte, sur www.la-grange.net (consulté le )
- (en) HTML 4.01 Specification - 10 Lists sur www.w3.org (consulté le ) ; 10 Les listes, sur www.la-grange.net (consulté le ).
- (en) HTML 4.01 Specification - 11 Tables sur www.w3.org (consulté le ) ; 11 Les tables, sur www.la-grange.net (consulté le ).
- (en) HTML 4.01 Specification - 12 Links sur www.w3.org (consulté le ) ; 12 Les liens, sur www.la-grange.net (consulté le ).
- (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 ).
- (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 ).
- (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 ).
- (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 ).
- (en) HTML 4.01 Specification - 16 Frames, sur www.w3.org (consulté le ) ; 16 Les cadres, sur www.la-grange.net (consulté le ).
- (en) HTML 4.01 Specification - 17 Forms, sur www.w3.org (consulté le ) ; 17 Les formulaires sur www.la-grange.net (consulté le ).
- (en) HTML 4.01 Specification - 18 Scripts, sur www.w3.org (consulté le ) ; 18 Les scripts, sur www.la-grange.net (consulté le ).
- (en) HTML 4.01 Specification - Index of Attributes sur www.w3.org (consulté le ) ; Index des attributs, sur www.la-grange.net (consulté le ).
- (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 ).
- (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 ).
- (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 )
- (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 )
- 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
- World Wide Web
- World Wide Web Consortium (W3C)
- ĂlĂ©ment HTML
- Identificateur de fragment
- CSS
- JavaScript
- Extensible Hypertext Markup Language (XHTML)
- HTML5
- SGML
- SELFHTML une documentation en ligne de la syntaxe HTML
- JHTML
Liens externes
- (en) HTML 2.0 Materials, liens et informations sur HTML jusqu'Ă la version 2.0
- (en) The W3c Markup Validation Service
Documents officiels
- (en) Hypertext Markup Language - 2.0 Request for Comments 1866, Tim Berners-Lee, MIT/W3C, Dan Conolly, novembre 1995
- (en) HTML 3.2 Reference Specification, recommandation du W3C,
- (en) HTML 4.0 Specification, recommandation du W3C,
- (en) HTML 4.01 Specification, derniĂšre recommandation HTML 4 du W3C,
- (en) HTML 5 A vocabulary and associated APIs for HTML and XHTML, actuel brouillon de travail du W3C sur HTML5,
- (en) HTML 5 differences from HTML 4, brouillon de travail du W3C sur les différences entre HTML4 et HTML5,
- (en) HTML Living Standard specifications, la documentation du HTML Living Standard, successeur du HTML5, qui n'a plus de version numéroté.
- La spécification HTML 4.01, traduction non normative