Hypertext Markup Language
Un article de Wikipédia, l'encyclopédie libre.
Cet article fait partie de la série Langages de programmation |
Langages à objets |
4D - C++ - C# - D Delphi - Eiffel - Groovy Java - Python - Ruby Simula - Smalltalk Visual Basic - WinDev |
Langages impératifs |
APL - ASP - Assembleur BASIC - C - Cobol Forth - Fortran - Limbo Logo - Pascal - Perl - PHP |
Langages fonctionnels |
Haskell - ML/OCaml Lisp/Common Lisp Scheme XSLT |
Langages déclaratifs |
Clips - Prolog |
Langages concurrents |
Ada 95 - Erlang |
Langage de balisage |
HTML - SGML - XML S-expressions |
Voir aussi |
Conception - Codage Tests - Optimisations |
L'Hypertext Markup Language, généralement abrégé HTML, est le langage informatique créé et utilisé pour écrire les pages Web. HTML permet en particulier d'insérer des hyperliens dans du texte, donc de créer de l'hypertexte, d'où le nom du langage.
Techniquement, HTML est une application du Standard Generalized Markup Language (SGML). Le développement de HTML a été interrompu en 1999 au profit de celui du XHTML, qui est une application de l'Extensible Markup Language (XML). Le W3C a cependant relancé le développement HTML en 2007, suite notamment aux demandes des fabricants de navigateurs.
L'anglais Hypertext Markup Language est rarement traduit littéralement en langage de balisage d'hypertexte. On utilise généralement l'abréviation HTML, parfois même en répétant le mot « langage » dans langage HTML. Hypertext est parfois écrit HyperText pour marquer le T de l'abréviation HTML.
Sommaire |
[modifier] Syntaxe du langage
HTML est un langage de description de documents. C'est une application du langage de balisage SGML.
Pour expliquer les balises HTML, voici un exemple :
<p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
La phrase Lorem ipsum dolor (...) est délimitée par une balise d'ouverture <p>
et une autre de fermeture </p>
. Les balises servent de délimitation, <p></p>
délimitant un paragraphe.
Certaines balises n'ont pas de contenu et apparaissent donc sans balise de fermeture. Sont notamment concernées la balise d'image <img>, la balise de séparation horizontale <hr> et la balise de retour à la ligne <br>.
[modifier] Sémantique HTML
Tel qu'il a été pensé à ses origines par Tim Berners-Lee, le HTML ne sert pas à décrire le rendu visuel des pages Web (contrairement à la publication assistée par ordinateur), mais plutôt le sens des différentes parties du texte : titre, liste, passage important, citation, etc. Cette 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.
[modifier] Éléments de HTML
La version 4 de HTML décrit 91 éléments et 188 attributs. Certains attributs sont propres à un élément, d'autres s'appliquent à toute une série d'éléments et quelques attributs à tous les éléments. En suivant la spécification de HTML 4, les fonctionnalités implémentées par HTML peuvent être réparties ainsi :
- Structure globale du document
- Au plus haut niveau, un document HTML est séparé entre un entête et un corps. L'entête contient les informations sur le document, notamment son titre. Le corps contient ce qui est affiché.
- Informations sur la langue
- 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
- HTML permet de différencier des contenus spécifiques tels que les citations d'oeuvres externes, les extraits de code informatique, des passages en emphase ou des sigles. Certains éléments HTML historiques ont cependant un sens mal déterminé, et sont en pratique 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
- 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 soit ou non un information. Des listes de définition existent également, mais sans que leur champ d'application ne soit exactement déterminé
- Tables
- Cette fonctionnalité a été développée pour permettre la présentation de données tabulaires mais a été immédiatement exploitée pour ses puissantes capacités de mise en page.
- Hyperliens
- La fonctionnalité première de HTML.
- Inclusion d'images, d'applets et d'objets divers
- À 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.
- Style de la présentation
- 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
- 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
- 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
- L'invention qui a permis l'apparition du commerce en ligne sur le Web.
- Scripts
- 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.
[modifier] Accéder à une page HTML
C'est le protocole de communication HTTP qui, sur le Web, permet de transférer à partir d'un serveur HTTP, un document HTML. Lorsque le serveur HTTP reçoit une demande concernant un document, il est possible qu'il ait à générer une partie du document suivant les indications qu'aura eu soin de lui laisser l'auteur de la page (cf. langages spécialisés web).
Les documents HTML sont identifiés par une URL et sont interprétés par le navigateur Web du visiteur. Grâce à ce dernier, le document HTML apparaît à l'écran ou à l'impression comme l'auteur l'a voulu. Sont ainsi représentés texte, typographie, couleurs, tableaux, images, parfois du son, etc.
[modifier] Interopérabilité
Le Web dépend des auteurs de pages et des éditeurs de logiciels qui partagent les mêmes conventions pour HTML. Cela a motivé un travail commun sur les spécifications de HTML. Permettre aux documents HTML d'être accessibles sur des plates-formes et des navigateurs différents est fondamental dans la conception de ce langage.
L'ambition de Tim Berners-Lee était d'avoir un langage de description de documents au format ouvert qui soit indépendant de ce qui servirait à lire les pages. Par conséquent, il n'est pas prévu que telle ou telle police de caractère soit utilisée explicitement, ni que le moniteur du client utilise telle ou telle résolution. Le logiciel exploité pour la navigation devrait lui aussi ne pas être une source de discrimination.
Parvenir à l'interopérabilité permet de baisser les coûts des fournisseurs de contenus parce qu'ils n'ont à développer qu'une seule version d'un document. Si cet effort n'est pas fait, le risque est grand de voir le Web régresser vers un monde propriétaire de formats incompatibles, en réduisant en fin de compte son potentiel commercial au détriment de tous ses participants.
Chaque version 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.
Le langage HTML a été développé avec l'intuition que les appareils de toutes sortes devaient pouvoir utiliser les informations sur le Web : les ordinateurs personnels avec des écrans de résolution et de profondeur de couleurs variables, les téléphones cellulaires, les appareils 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.
[modifier] Interopérabilité des caractères
Les caractères utilisés dans une page Web posent parfois problème. Lors de l'utilisation des premières pages HTML, l'unicode n'était pas encore inventé. Aujourd'hui, il est normal qu'une page soit codée en UTF-8.
Toutefois, certains systèmes contiennent toujours des anomalies, qui font que le logiciel ne sait pas quel est l'encodage utilisé. A la fois HTML et HTTP permet de le préciser, mais l'information donnée est parfois fausse ou divergente.
voir Unicode et HTML
[modifier] Historique
[modifier] 1989 - 1992
HTML est une des trois inventions à la base du World Wide Web. HTML a été inventé pour pouvoir écrire des documents hypertextuels liant les différentes ressources d'Internet. En août 1991, lorsque Tim Berners-Lee annonce publiquement le Web sur Usenet, il ne cite que le langage SGML, mais donne l'URL d'un document ayant l'extension de fichier html
. Dans son livre Weaving the Web[1], 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é au CERN, son employeur. Dans les faits, les navigateurs Web, à commencer par celui de Tim-Berners, ont toujours été conçu pour ne déchiffrer qu'un sous-ensemble simplifié de ce que permet SGML. Enfin, HTML n'a été formellement décrit par une Document Type Definition (DTD) SGML que quelques années plus tard.
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, et un mécanisme rudimentaire de recherche par index. La description d'HTML est alors assez informelle et principalement définie par le support des divers navigateurs Web contemporains.
[modifier] 1993
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 [1]. À partir de fin 1993, le terme HTML+ sera utilisé pour désigner la version future de HTML.
Avec le navigateur NCSA Mosaic, HTML connaît deux inventions majeures : l'invention de l'élément IMG
permet d'intégrer des images (GIF ou XBM) aux pages Web (Mosaic 0.10) ; les formulaires rendent le World Wide Web interactif (Mosaic 2.0pre5) et l'ouvre aux commandes par Internet.
[modifier] 1994
Avec l'apparition de Netscape Navigator 0.9 le 13 octobre, le support de nombreux éléments de présentation est ajouté : styles de texte, clignotement, centrage... 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. D'autre part, les concepteurs du Web proposent d'étendre les capacités de description sémantiques (logos, notes de bas de page...) et les domaines d'applications (formules mathématiques, tables) de HTML. En ceci, ils 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. Le manque de structure du HTML alors mis en œuvre par Netscape Navigator, puis Microsoft Internet Explorer, est parfois dénoncé comme étant de la « soupe de balises » (tag soup en anglais).
[modifier] 1995 - 1996
En mars 1995, le 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 28 septembre 1995 sans donner de suites directes. Fin 1995, le RFC 1866 décrivant HTML 2.0 est finalisé. Ce document décrit HTML tel qu'il existait avant juin 1994, donc sans les nombreuses additions de Netscape Navigator.
[modifier] 1997
Le 14 janvier, le W3C publie la spécification HTML 3.2. Elle décrit la pratique courante observée début 1996, donc avec une partie des additions de Netscape Navigator et Internet Explorer. Ses plus importantes nouveautés sont la standardisation des tables et de nombreux éléments de présentation.
Le 18 décembre, le W3C publie la spécification HTML 4.0 qui standardise notamment le support des styles, les cadres (frames) et les objets (généralisation des images et des applets).
[modifier] 1998 - 1999
La dernière spécification de HTML est la 4.01 datant du 24 décembre 1999. Elle n'apporte que des corrections mineures à la version 4.0.
[modifier] 2000 - 2006
Le développement de HTML en tant qu'application de SGML est abandonné au profit de XHTML, application de XML. La première étape est la spécification XHTML 1.0, publiée le 26 janvier 2000. Il s'agit d'une reformulation de HTML 4.01 basée sur XML au lieu de SGML.
La seconde étape est la spécification XHTML 1.1, publiée le 31 mai 2001. Il s'agit d'un classement des fonctionnalités de XHTML 1.0 en modules.
[modifier] 2007 à nos jours
Tim Berners-Lee, le directeur du W3C, a décidé de mettre sur pied un nouveau groupe, le HTML 5. Aux premiers abords, il s'explique en disant qu'il est difficile d'établir des standard et de les faire respecter par les navigateurs Web, ainsi il entend créer un HTML accessible à tous.
Il dit aussi, toujours sur un article [2] émis sur son blog, quel échec lamentable ce fut de vouloir implanter le XHTML tout d'un coup, et il parle maintenant de faire évoluer le HTML de façon incrémentale, pour que les navigateurs ainsi que créateurs de pages Web s'adaptent au fur et à mesure.
En parallèle, le groupe de travail XHTML 2.0 travaille toujours à faire avancer en bond, la structure que doivent avoir les pages Web. Mais, comme le groupe de travail HTML 5 a été lancé, rien n'est plus sûr pour la continuité du projet XHTML 2.0.
D'ailleurs, dans plusieurs communautés on dénote qu'il y a matière à débattre puisque, selon eux, cela en va de l'avenir du Web. Pour en savoir plus, un site Web a mis à disposition un article comparatif [3] des deux projets.
[modifier] Quelques exemples
Type de balise | Code HTML | Résultat |
---|---|---|
Hyperlien | lien sur <a href="http://fr.wikipedia.org">Wikipédia</a> | lien sur Wikipédia |
Typographie, gras | texte en <i>italique <b>gras</b></i> | texte en italique gras |
Image | <img src="exemple.jpg" alt="un tournesol"> |
[modifier] Un exemple de document HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="fr"> <head> <title>Mon premier document HTML</title> </head> <body> <p>Bonjour tout le monde !</p> </body> </html>
[modifier] Voir aussi
[modifier] Références
- ↑ Tim Berners-Lee, Weaving the Web, Texere, 2000, ISBN 1-58799-018-0, p. 45-46
- ↑ http://dig.csail.mit.edu/breadcrumbs/node/166 Reinventing HTML
- ↑ http://xhtml.com/fr/future/x-html-5-versus-xhtml-2/ X/HTML 5 VS XHTML 2
[modifier] Liens internes
[modifier] Liens externes
- Catégorie HTML de l'annuaire dmoz.
[modifier] Documents officiels
- (en) RFC 1866, Hypertext Markup Language - 2.0, (novembre 1995)
- (en) HTML 3.2 Reference Specification (Recommandation du W3C, 14 janvier 1997)
- (en) HTML 4.0 Specification (Recommandation du W3C, 18 décembre 1997)
- (en) HTML 4.01 Specification (Dernière recommandation HTML 4 du W3C, 24 décembre 1999)
- (fr) La spécification HTML 4.01 (traduction)
- (fr) ISO/IEC 15445:2000, Langage de balisage d'hypertexte (norme ISO)
[modifier] Outils de validation
- (en) W3C Markup Validation Service
- (fr) Validome : validateur HTML/XHTML
- (fr) Validateur W3C Multipage
- (fr) Validateur du WDG
- (fr) Validateur HTml, XML
- (en) CSE HTML Validator (Attention, certaines versions sont payantes)
|
|