Généralités

1. But et limitations de ce cours

Le HTML est un langage dit « de balisage » pour concevoir des sites Web. Le but de ce cours est d'en présenter un aperçu général, ainsi que du langage CSS, qui permet d'en traiter l'apparence visuelle. Les navigateurs de la quatrième génération (en particulier Netscape Navigator 4.xx et Internet Explorer 4) ne supportent pas toutes les balises, les interprètent parfois mal, voire ont introduit d'autres balises qu'ils sont seuls à comprendre ; cependant, comme ces navigateurs sont en train de disparaître, nous allons nous contenter de passer en revue les recommandations du HTML 4.01 standardisé.
Nous n'étudierons pas non plus de langage de script (JavaScript ou VBScript), et nous limiterons donc à l'étude de l'HTML dit statique.
Ce cours ne fera pas référence à l'utilisation d'éditeurs dits WYSYWYG (What You See Is What You Get), car ils ne sont pas nécessaires à la compréhension du langage HTML.

2. Historique

a. Le W3C
Le W3C (World Wide Web Consortium, http://www.w3c.org) a été créé à l'occasion du premier standard du HTML : HTML 1.0. Le W3C a été créé pour développer des protocoles communs pour l'évolution du World Wide Web. C'est un consortium industriel piloté par le MIT/LCS (le Laboratoire de Recherches en Informatique du Massachusets Institute of Technology) aux États-Unis, par l'INRIA (Institut National de Recherche en Informatique et en Automatique) en France, et l'Université de Keio au Japon.
Il est constitué de 180 membres : instituts publics et entreprises concurrentes sur le marché Internet parmi lesquels des représentants des constructeurs et éditeurs de logiciels.
C'est un organisme non officiel. Le W3C n'émet que des recommandations : les concepteurs de navigateurs restent libres de s'y conformer.
b. Les versions du HTML en quelques dates
L'histoire du HTML est résumée par le W3C sur son site. On pourrait la synthétiser par le tableau suivant :
Date Événement
1989-1992 Discussions, échanges et projets à l'initiative de chercheurs du CERN aboutissant à un premier HTML qualifié par la suite de version numéro 0.
1993 Création du navigateur MOSAIC (sans tréma) par le NCSA de l'Université de l'Illinois. Ce navigateur tourne sur les PC. Création du W3C. Publication des recommandations formant la version HTML 1.0.
septembre 1995 Recommandations sur le standard HTML 2.0 (insertion d'images, de tableaux, de listes et de formulaires).
courant 1995 Synthèse des nouvelles exigences des auteurs réunies dans les recommandations du HTML 3.0 : trop ambitieuse, elle n'a jamais trouvé de consensus au sein même du W3C.
mai 1996 Version HTML 3.2 (liens sur image, applet Java, JavaScript...), reprise de la version 3 édulcorée.
juillet 1997 Version provisoire du HTML 4.0 (frames, feuilles de style, intégration d'éléments multimédias).
décembre 1999 Dernière version à ce jour, HTML 4.01 n'apportant que des corrections minimales à la version précédente.
janvier 2000 Sortie du formatXHTML 1.0, une extension du XML.
juillet 2006 Sortie d'une version de travail de la recommandation XHTML 2.0.
février 2008 Sortie d'une version de travail de la recommandation HTML 5.
Table 1. Historique du HTML.
Les derniers documents de recommandation de HTML 4.01 et XHTML 1.0 du W3C sont disponibles en ligne, mais de lecture difficile.

3. Outils de production de pages Web

a. Introduction
Ainsi que vous le constaterez, il est possible de créer un site Web entier à l'aide d'un simple éditeur de texte, et d'un client FTP. Fort heureusement, si cette solution reste encore possible pour un dépannage ponctuel sur un fichier, il existe des outils dédiés qui permettent d'automatiser bon nombre des opérations fastidieuses.
b. Éditeurs
Les éditeurs HTML sont des logiciels qui aident à la saisie des balises HTML. Il en existe de deux types :
  • les éditeurs de code proprement dits, similaires à un « environnement intégré de développement » (EDI) pour un langage de programmation, qui permettent de coder les balises directement. Ils permettent de garder un contrôle plus fin et précis sur le code que...
  • ... les éditeurs dits WYSIWYG, qui offrent un environnement ressemblant plus à celui d'un logiciel de traitement de texte. Ces éditeurs offrent le plus souvent maintenant la possibilité d'alterner un mode de composition visuelle avec un mode de composition directement du code source, afin de mêler les avantages des deux pratiques.
Ces éditeurs offrent de plus des facilités de gestion de site (notion de modèle de document, de projet, gestion efficace des liens internes aux documents, intégration de langages de scripts comme PHP, etc.).
c. Les Weblogs
Ces outils, comme DotClear, WordPress ou Blogger, par exemple, permettent la saisie, la mise en forme et la mise en ligne automatisée de "journaux" personnels. Conçus à l'origine comme des outils de publication rapide à destination de quelques internautes désireux de mettre rapidement en ligne leurs impressions quotidiennes, ils ont évolué en interfaces complexes, mais toujours sur le même principe :
  1. Un auteur initial écrit un article à l'aide de l'outil, qu'il met en ligne ;
  2. Les visiteurs du journal peuvent soit ajouter des commentaires, soit placer des trackbacks sur l'article, afin de créer un lien entre un article qu'ils écrivent sur leur propre blog, et l'article qu'ils sont en train de lire.
Ces fonctions de base peuvent être étendues, mais on aborde là une autre catégorie d'outils de production : les systèmes de publication de contenu proprement dits.
d. Systèmes de publication de contenu
On les désigne parfois sous leur abréviation de CMS (Content Management System). On rencontre principalement deux types de tels outils :
  1. les outils entièrement ouverts, comme le format Wiki. N'importe quel internaute peut modifier la page qu'il est en train de lire. Vous pouvez consulter par exemple la Wikipedia, une encyclopédie en ligne maintenue et modifiable par tous ses lecteurs.
  2. les outils de publication de contenu proprement dits, tels que le populaire SPIP, eZPublish, PHPNuke, Typo3... Ces outils proposent des interfaces utilisateurs plus ou moins complexes, permettant à des personnes ne connaissant pas le format HTML de publier du contenu sur le Web, sous un forme paramétrable.
Ces outils sont cependant loin d'offrir les mêmes fonctionnalités que ce que peut produire un webmestre expérimenté ; il s'agit de contenu facilement publiable, préformatté. Pour aller plus loin, il est nécessaire de faire appel à un développeur spécialisé, capable de tirer parti des richesses du langage HTML et de celui permettant sa mise en forme, le CSS.

4. Un langage structuré

a. Introduction
Un fichier écrit en langage HTML n'est autre qu'un fichier texte, mais dont le contenu est structuré à l'aide de repères que l'on appelle des éléments. Chaque élément est constitué de balises et d'attributs qui permettent d'apporter des informations sur son contenu. Nous reviendrons plus loin sur ces notions.
b. Apparence
HTML possède de nombreux éléments de gestion de l'apparence (ou formatage) de la page qui se rapprochent de ce que nous connaissons sur les éditeurs de texte : mise en gras (b), en italique (i), indentation, taille ou couleur des caractères (font).
Pour les créateurs à l'origine de HTML, ces possibilités ne sont que des « déviances » : dans leur esprit HTML doit décrire la structure du contenu et non son apparence.
c. Qu'est-ce que la structure d'un texte au sens HTML?
Prenons par exemple la notion de paragraphe : un paragraphe peut être présenté « à la française » avec une indentation de la première ligne ou « à l'américaine » sans indentation. L'indentation de la première ligne fait partie des apparences possibles d'une même structure de texte : le paragraphe.
On trouve ainsi dans HTML de quoi structurer listes, titres, tableaux, citations, adresses... autant de structures du texte qui ne définissent pas l'apparence finale à l'écran.
d. Pourquoi distinguer la structure et l'apparence?
Trois raisons parmi d'autres :
  1. Une raison historique : HTML est une application du langage documentaire SGML (Standard Generalized Markup Language) conforme au standard ISO 8879. Ce langage de technique documentaire est très complexe. De plus, c'est un langage de structuration de l'information et non un langage de présentation. Or les premières versions du HTML s'éloignent de cet aspect de structuration pour tendre vers celle de présentation. En ce sens HTML n'est donc qu'une application abâtardie du SGML;
  2. Une raison de portabilité : ce langage doit être totalement indépendant des plateformes et des navigateurs. Or plus les balises s'attachent à la gestion de l'apparence finale et sont pour cela détournées de leur fonction de structuration, plus l'effet obtenu est dépendant de la plateforme et du navigateur ;
  3. Une raison de libre choix de l'utilisateur : l'utilisateur final doit pouvoir modifier lui-même la présentation (taille des caractères...) à l'aide d'options du navigateur. À l'extrême, un navigateur particulier devrait par exemple pouvoir lire et énoncer à un aveugle le contenu d'un document HTML. La prise en compte des utilisateurs présentant des handicaps particuliers fait l'objet de soins redoublés depuis quelque temps, en raison notamment de la publication d'une directive du Parlement Européen sur le sujet  c'est ce qu'on appelle l'accessibilité.
HTML est une chance pour le monde informatique puisqu'il offre un moyen d'échange de document indépendant de tous producteurs de logiciels. Cet aspect est poussé plus en avant dans la définition du format XML.
e. Une ligne de conduite du W3C
Malgré la création par MicroSoft et Netscape de balises d'apparence, le W3C a tenté avec succès de maintenir cette séparation entre structure et présentation. Le W3C a adjoint au HTML la notion de feuille de style à travers le langage CSS (Cascading Style Sheet). HTML décrit la structure du langage, CSS décrit la présentation. Ainsi, un même document HTML peut être présenté de différentes façons à l'aide de différentes feuilles de style.
Cette tendance est plus développée dans le langage XHTML, une extension du XML, dont la recommandation « stricte » interdit tout élément de présentation dans le corps du document, et reporte les informations de ce type dans la feuille de style.
f. Validité du code
Les recommandations ont permis aux concepteurs de navigateurs et d'outils d'édition de se mettre d'accord sur ce qu'il était possible de faire faire aux navigateurs. Elles précisent l'ordre dans lequel les éléments doivent être écrits les uns à la suite des autres, ou imbriqués, ainsi que les éléments et attributs autorisés en fonction du contexte.
Lorsque le code source respecte une de ces recommandations, le fichier est dit valide. S'assurer au préalable de la validité d'un code est le préalable indispensable avant de commencer à déboguer par exemple une mise en page incorrecte. En présence de code invalide en effet, les navigateurs doivent extrapoler et essayer de « deviner » ce que le concepteur avait en tête ; il ne peut en résulter que des différences d'interprétation et des risques de voir la mise en page être complètement dégradée.
Bien sûr, valider un code ne suffit pas à régler la totalité des problèmes de mise en poage dûs au support incomplet des standards par les navigateurs ; mais cela permet assurément d'en régler la très grande majorité, et c'est par conséquent une démarche indispensable. Nous reviendrons plus loin sur les outils permettant de tester cette validité.

5. Accessibilité

L'accessibilité est un vaste domaine, qui n'a commencé que récemment à être exploré. On peut y voir une conséquence de l'amélioration progressive du support des standards du Web par les navigateurs. Aux temps pas si lointains de la "Balkanisation" du Web, lorsque Netscape et Internet Explorer se livraient une guerre sans merci à coups de balises et d'effets propriétaires, la priorité numéro 1 des développeurs était de s'assurer que leur site s'affichait grossièrement de la même manière dans les deux navigateurs.
Maintenant que les standards du Web se sont répandus et sont mieux supportés (à la date de révision de ce cours, février 2008, au contraire de ce qui se passait il y a quatre ans, le facteur limitant est incontestablement, dans ce domaine, Internet Explorer qui est de loin à la traîne, même si Internet Explorer 7 a permis de combler une partie de ce retard), la classe de problèmes à résoudre pour les développeurs s'est déplacée. Il s'agit maintenant de faire en sorte que le plus grand nombre de personnes possibles aient accès à leur site.
Il ne faut pas entendre par là uniquement un accès ADSL ou par modem... mais bien de la lecture possible du site et des informations qui s'y trouvent. Cela passe, par exemple, par l'ajout de contenu alternatif aux images pour les personnes ayant choisi de ne pas les afficher, ou incapables de les examiner en détails, mais aussi par la présentation soignée de données dans un tableau (fournir un résumé du tableau, des entêtes de colonnes reconnus comme tels par des navigateurs-lecteurs de contenu), la structuration du contenu, des aides à la navigation, etc.
Avoir un code valide est, là aussi, la première étape. Des outils existent en ligne ou hors-ligne afin de faciliter ce genre de tests :

0 commentaires:

Enregistrer un commentaire