La version française de cette traduction est :
http://www.la-grange.net/w3c/html4.01/
Traducteur : Eric Schreiner <elrick@chez.com> dans le cadre de l'effort de
la liste de discussion w3c-translators-fr@w3.org
La version française peut contenir des erreurs. La version anglaise de cette note
est l'unique version normative. Version originale : http://www.w3.org/TR/1999/REC-html401-19991224
Sommaire
Ce chapitre traite de la structuration du texte. Les éléments de présentation du texte (éléments d'alignement, de police... les feuilles de style, etc.) sont abordés par ailleurs dans cette spécification. Pour avoir des informations sur les caractères, veuillez consulter la section sur le jeu de caractères d'un document.
Le jeu de caractères d'un document comprend une large variété de caractères blancs [N.D.T. white space]. La plupart d'entre eux sont des éléments typographiques, qui sont utilisés dans certaines applications pour produire un effet particulier d'espacement visuel. En HTML, seuls les caractères suivants sont définis comme caractères blancs :
Le 'renvoi à la ligne' est également un caractère blanc. Noter que, bien que les caractères 
 et 
 soient définis dans [ISO10646] pour couper respectivement, sans ambiguïté, les lignes et les paragraphes, ils ne sont pas considérés en HTML comme un renvoi à la ligne, et cette spécification ne les intègre donc pas dans la catégorie plus générale des caractères blancs.
Cette spécification n'indique pas le comportement, la représentation, ou tout autre chose, de caractères d'espacement autres que ceux explicitement identifiés ici comme blancs. Pour cette raison, les auteurs devraient utiliser les éléments et les styles appropriés afin d'obtenir les effets souhaités pour la présentation visuelle de leurs blancs, plutôt qu'une suite de caractères 'espace'.
Dans tous les éléments HTML, à l'exception de l'élément PRE, une suite de blancs sépare des "mots" (le terme de "mot" est utilisé ici pour indiquer une "suite de caractères sans blancs"). Lors de l'élaboration du rendu d'un texte, les agents utilisateurs sont sensés identifier ces mots et les positionner conformément aux conventions d'écriture de la langue et au média visé.
Ce positionnement peut nécessiter l'emploi d'espacements entre les mots (ou espace-mot), mais les conventions pour l'espace-mot varient d'une écriture à l'autre. Ainsi, par exemple, dans les écritures latines, l'espace-mot est typiquement constitué d'un caractère 'espace' ASCII ( ), alors que dans l'écriture thaï il s'agit d'un caractère 'espace nul' (​). Enfin, en japonais ou en chinois, l'espace-mot est normalement ignoré.
Noter qu'une suite de blancs entre des mots, dans le document source, peut engendrer un résultat complètement différent dans le rendu de l'espacement entre ces mots (sauf dans le cas de l'élément PRE). En particulier, les agents utilisateurs sont sensés fusionner toute suite de blancs du document source lorsqu'ils produisent l'espace-mot du rendu. Cela peut et devrait être fait, y compris en l'absence d'information sur la langue (que ce soit dans l'attribut lang ou le champ "Content-Language" de l'en-tête HTTP (voir [RFC2616], section 14.12) ou le paramétrage de l'agent utilisateur, etc.).
L'élément PRE est utilisé pour du texte préformaté, dans lequel les blancs sont significatifs.
Afin d'éviter des conflits avec les règles SGML de renvois à la ligne, ainsi que d'éventuelles incohérences dans le cadre des évolutions futures, les auteurs ne devraient pas s'appuyer sur les agents utilisateurs pour prendre en compte les blancs placés soit juste après une balise ouvrante, soit juste avant une balise fermante. Aussi les auteurs, et les outils d'édition, devraient rédiger :
<P>Nous offrons une <A>assistance technique</A> gratuite pour nos adhérents.</P>
et non :
<P>Nous offrons une<A> assistance technique </A>gratuite pour nos adhérents.</P>
<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM" > <!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*> <!ATTLIST (%fontstyle;|%phrase;) %attrs; -- %coreattrs, %i18n, %events -- >
Balise ouvrante : obligatoire, balise fermante : obligatoire
Attributs définis par ailleurs
Les éléments de phrase ajoutent une information sur des portions du texte. L'interprétation courante de ces éléments de phrase est la suivante :
Les éléments EM et STRONG sont utilisés pour mettre en exergue une portion du texte. Les autres éléments de phrase ont une signification particulière pour un document dans un contexte technique. Ces exemples illustrent quelques-uns de ces éléments de phrase :
Comme le disait <CITE>le Général De GAULLE</CITE>, <Q lang="fr">Je vous ai compris !</Q> Pour plus d'informations, voir <CITE>[ISO-0000]</CITE>. Dans tout courrier, veuillez désormais indiquer la référence suivante : <STRONG>1-234-55</STRONG>
La présentation des éléments de phrase dépend de l'agent utilisateur. En général, les agents utilisateurs visuels présentent le texte de l'élément EM en italique, et le texte de l'élément STRONG en gras. Les agents utilisateurs vocaux, eux, devraient changer les paramètres de la synthèse vocale, tels que le volume, la hauteur ou le timbre.
Les éléments ABBR et ACRONYM permettent aux auteurs d'indiquer clairement l'usage d'abréviations et d'acronymes. En effet, les langues occidentales utilisent largement les acronymes comme "GmbH", "OTAN", et "SNCF", ainsi que les abréviations comme "Mme.", "Sté.", "etc.". Le chinois et le japonais, eux, emploient des mécanismes d'abréviation analogues : un nom long est ensuite référencé par un sous-ensemble des caractères Han le constituant. Marquer ces constructions fournit une aide précieuse aux agents utilisateurs certes, mais également aux outils tels que les vérificateurs d'orthographe, les synthétiseurs vocaux, les traducteurs et les moteurs de recherche.
Les éléments ABBR et ACRONYM encadrent l'abréviation ou l'acronyme usité, dans la forme dans laquelle elle, ou il, doit figurer dans le texte. L'attribut 'title' de ces éléments peut permettre de fournir leur forme complète ou développée.
Voici quelques exemples d'utilisation de l'élément ABBR :
<P> <ABBR title="World Wide Web">WWW</ABBR> <ABBR lang="fr" title="Société Nationale des Chemins de Fer"> SNCF </ABBR> <ABBR lang="es" title="Doña">Doña</ABBR> <ABBR title="Abbreviation">abbr.</ABBR>
Noter que les abréviations et les acronymes utilisent souvent une prononciation idiosyncratique. Par exemple, alors que "SNCF" et "URL" sont typiquement prononcés lettre à lettre, "OTAN" et "radar" sont prononcés phonétiquement. De plus, certaines formes abrégées ("etc.", "URI"...) sont épelées par certaines personnes, et prononcées par d'autres comme si il s'agissait d'un mot. En cas de nécessité, les auteurs devraient utiliser les feuilles de style pour spécifier la prononciation d'une forme abrégée.
<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- citation longue --> <!ATTLIST BLOCKQUOTE %attrs; -- %coreattrs, %i18n, %events -- cite %URI; #IMPLIED -- URI pour le document source ou le message -- > <!ELEMENT Q - - (%inline;)* -- citation courte dans la ligne --> <!ATTLIST Q %attrs; -- %coreattrs, %i18n, %events -- cite %URI; #IMPLIED -- URI pour le document source ou le message -- >
Balise ouvrante : obligatoire, balise fermante : obligatoire
Définition de l'attribut
Attributs définis par ailleurs
Ces deux éléments désignent une citation [N.D.T. quotation]. L'élément BLOCKQUOTE indique une citation longue (avec un contenu de type bloc) et l'élément Q est sensé être utilisé pour des citations courtes (avec un contenu de type en-ligne) ne nécessitant pas de saut de paragraphe.
Cet exemple formate un extrait de "Les deux tours", de J.R.R. Tolkien, comme bloc de citation :
<BLOCKQUOTE cite="http://www.mycom.com/tolkien/les%20deux%20tours.html"> <P>Ils allaient en file indienne, courant comme des limiers après un puissant fumet, et l'ardeur luisait dans leurs yeux. La large fauchée des Orques en marche traçait sa vilaine rainure presque droit vers l'ouest ; l'herbe douce du Rohan avait été écrasée et noircie sur leur passage.<P> </BLOCKQUOTE>
Les agents utilisateurs visuels présentent en général BLOCKQUOTE comme un bloc de texte en retrait.
Les agents utilisateurs visuels doivent s'assurer que le contenu d'un élément Q s'effectue avec des marques de citation. Les auteurs ne devraient pas placer de marque de citation ni au début, ni à la fin, du contenu d'un élément Q.
Les agents utilisateurs devraient ajouter les marques de citation en fonction de la langue (voir l'attribut lang). Plusieurs langues adoptent des styles différents pour les marques de citation extérieure ou intérieure (imbriquée), et cela devrait être respecté par les agents utilisateurs.
Les exemples ci-dessous illustrent des citations imbriquées avec l'élément Q.
John said, <Q lang="en-us">I saw Lucy at lunch, she told me <Q lang="en-us">Mary wants you to get some ice cream on your way home.</Q> I think I will get some at Ben and Jerry's, on Gloucester Road.</Q>
Dans la mesure où la langue des deux citations est Américain/Anglais, les agents utilisateurs devraient le figurer convenablement, par exemple en ajoutant des apostrophes autour de la citation intérieure et des guillemets autour de la citation extérieure :
John said, "I saw Lucy at lunch, she told me 'Mary wants you to get some ice cream on your way home.' I think I will get some at Ben and Jerry's, on Gloucester Road."
Nota. Il est recommandé que l'implémentation des feuilles de style fournisse un moyen d'ajouter des marques de citation avant et après une citation encadrée par BLOCKQUOTE d'une façon convenable en fonction de la langue, ainsi qu'en fonction du niveau d'imbrication des citations.
Toutefois, comme certains auteurs ont utilisé l'élément BLOCKQUOTE prosaïquement pour obtenir un texte en retrait, les agents utilisateurs ne devraient pas ajouter de marque de citation dans le style par défaut, afin de préserver les intentions de ces auteurs.
L'utilisation de l'élément BLOCKQUOTE pour obtenir un texte en retrait est dépréciée au profit de l'usage des feuilles de style.
<!ELEMENT (SUB|SUP) - - (%inline;)* -- indice, exposant --> <!ATTLIST (SUB|SUP) %attrs; -- %coreattrs, %i18n, %events -- >
Balise ouvrante : obligatoire, balise fermante : obligatoire
Attributs définis par ailleurs
Plusieurs langues, notamment le français, nécessitent l'emploi d'indices et d'exposants pour être correctement écrites. Les éléments SUB et SUP devraient être utilisés pour marquer les portions de texte qui sont dans ce cas.
H<sub>2</sub>O E = mc<sup>2</sup> <SPAN lang="fr">M<sup>lle</sup> Dupont</SPAN>
Les auteurs découpent habituellement leurs idées et leurs arguments en paragraphes successifs. Cette organisation de l'information en paragraphes ne dépend pas de la façon dont ils sont présentés : un paragraphe qu'il soit justifié ou aligné à gauche a toujours la même signification.
Le balisage HTML qui définit un paragraphe, est trè:s simple : l'élément P contient un paragraphe.
La représentation des paragraphes n'est pas si simple. Un certain nombre d'aspects doivent être pris en compte, à la fois esthétiques et techniques :
Ces questions sont traitées ici, mais l'alignement des paragraphes et les objets flottants seront abordés plus loin dans ce document.
<!ELEMENT P - O (%inline;)* -- paragraphe --> <!ATTLIST P %attrs; -- %coreattrs, %i18n, %events -- >
Balise ouvrante : obligatoire, balise fermante : optionnelle
Attributs définis par ailleurs
L'élément P correspond à un paragraphe. Il ne peut pas contenir d'éléments de type bloc (même pas un autre élément P).
L'usage par les auteurs d'éléments P qui sont vides est fortement déconseillé. Les agents utilisateurs devraient ignorer de tels éléments P vides.
Un renvoi à la ligne pourra prendre la forme d'un retour chariot ('carriage return', ou CR, 
), d'un 'fin de ligne' ('line feed', ou LF, 
), ou des deux ensemble (CR+LF). Chaque renvoi à la ligne constitue un blanc.
Pour plus d'informations sur les spécifications SGML sur les renvois de ligne, veuillez consulter la note sur les renvois à la ligne en annexe.
<!ELEMENT BR - O EMPTY -- renvoi à la ligne forcé --> <!ATTLIST BR %coreattrs; -- id, class, style, title -- >
Balise ouvrante : obligatoire, balise fermante : interdite
Attributs définis par ailleurs
L'élément BR coupe le texte en cours pour terminer la ligne, il indique donc un renvoi à la ligne.
Pour les agents utilisateurs, l'attribut clear peut être employé pour déterminer si le balisage qui suit l'élément BR s'écoule autour des images, fait flotter les autres objets flottants vers la marge soit de gauche soit de droite, ou s'il commence au pied [N.D.T. bottom] de tels objets. La section alignement et objets flottants fournit plus de détails. Les auteurs sont invités à s'appuyer sur les feuilles de style pour contrôler l'écoulement du texte autour des images et autres objets flottants.
Afin de respecter les représentations bidirectionnelles , l'élément BR devrait se comporter de la même manière que le caractère LINE SEPARATOR de [ISO10646] dans l'algorithme bidirectionnel.
Parfois, les auteurs peuvent souhaiter qu'un renvoi à la ligne ne coupe pas deux mots. L'entité (  ou  ) détermine un espace insécable, c'est-à-dire un espace entre deux mots qui ne peut pas être coupé pour effectuer un renvoi à la ligne.
En HTML, il existe deux types de tiret [N.D.T. hyphen] : le tiret insécable et le tiret sécable. Le tiret insécable devrait être considéré par les agents utilisateurs comme n'importe quel caractère normal. Le tiret sécable indique l'emplacement d'une coupure possible pour que l'agent utilisateur effectue un renvoi à la ligne.
Les agents utilisateurs qui gère les tirets sécables doivent observer les règles sémantiques suivantes : si un texte est coupé à l'emplacement d'un tiret sécable, le tiret doit être affiché à la fin de la ligne coupée ; si un texte n'est pas coupé à l'emplacement d'un tiret sécable, le tiret ne doit pas être affiché. De plus, le tiret sécable doit être ignoré dans les opérations de recherche et de tri.
En HTML, le tiret insécable est spécifié par le caractère "-" (- ou -). Le tiret sécable, lui, est spécifié par le caractère correspondant à l'entité ­ (­ ou ­)
<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP"> <!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- texte préformaté --> <!ATTLIST PRE %attrs; -- %coreattrs, %i18n, %events -- >
Balise ouvrante : obligatoire, Balise fermante : obligatoire
Définition de l'attribut
Attributs définis par ailleurs
L'élément PRE indique aux agents utilisateurs visuels que le texte de son contenu est "préformaté". Lors des manipulations de textes préformatés, l'agent utilisateur visuel :
Les agents utilisateurs non visuels ne sont pas obligés de respecter les blancs du contenu de l'élément PRE.
Pour plus d'informations sur la spécification SGML sur les renvois à la ligne, veuillez consulter la note sur les renvois à la ligne en annexe.
Le fragment de DTD indique quels éléments ne peuvent pas apparaître dans la déclaration d'un élément PRE. Il s'agit des mêmes qu'en HTML 3.2, et l'intention est de préserver un espacement inter-ligne et un alignement des colonnes pour le texte représenté grâce à une police non proportionnelle. Les auteurs sont incités à ne pas altérer ce comportement à travers les feuilles de style.
Les exemples ci-dessous montrent les vers préformatés d'un poème
de Shelly's : To a Skylark
<PRE> Higher still and higher From the earth thou springest Like a cloud of fire; The blue deep thou wingest, And singing still dost soar, and soaring ever singest. </PRE>
Voici la représentation qui devrait typiquement être donnée :
Higher still and higher From the earth thou springest Like a cloud of fire; The blue deep thou wingest, And singing still dost soar, and soaring ever singest.
Le caractère de tabulation horizontale
Le caractère 'tabulation' horizontale (codé 9 en décimal dans [ISO10646]
et [ISO88591]
) est habituellement interprété par les agents utilisateurs comme le plus petit
nombre non nul d'espaces nécessaires pour atteindre le prochain taquet de tabulation,
ces taquets de tabulation étant placés dans la ligne tous les 8
caractères. L'usage de ce caractère de tabulation horizontale est
Nota. Cette section est une description, pour information, du comportement suivi par les agents utilisateurs visuels courants, pour effectuer la restitution des paragraphes. Les feuilles de style permettent un contrôle plus fin de cette restitution.
La manière de gérer la restitution visuelle des paragraphes dépend de l'agent utilisateur. Les paragraphes sont habituellement restitués avec leurs lignes alignées à gauche, mais avec un effet en dents de scie sur la droite. Et de même, sur la gauche, pour les écritures qui vont de droite à gauche.
Les agents utilisateurs HTML ont historiquement restitué les paragraphes avec une ligne blanche avant et après, par exemple :
At the same time, there began to take form a system of numbering, the calendar, hieroglyphic writing, and a technically advanced art, all of which later influenced other peoples. Within the framework of this gradual evolution or cultural progress the Preclassic horizon has been divided into Lower, Middle and Upper periods, to which can be added a transitional or Protoclassic period with several features that would later distinguish the emerging civilizations of Mesoamerica.
Cela contraste avec la présentation usuelle des romans qui utilise, d'une part un alinéa pour la première ligne du paragraphe, et d'autre part un espacement entre deux paragraphes successifs égal à l'interligne normale, comme suit :
At the same time, there began to take form a system of numbering, the calendar, hieroglyphic writing, and a technically advanced art, all of which later influenced other peoples. Within the framework of this gradual evolution or cultural progress the Preclassic horizon has been divided into Lower, Middle and Upper periods, to which can be added a transitional or Protoclassic period with several features that would later distinguish the emerging civilizations of Mesoamerica.
Dans la lignée du navigateur Mosaic du NCSA apparu en 1993, les agents utilisateurs ne justifient actuellement pas les deux côtés, cela est en partie dû à la difficulté de le réaliser sans traitement compliqué des césures. L'avènement des feuilles de style, et l'anti-aliasing des polices permettant un positionnement à une fraction de pixel près, promet d'offrir une plus grande palette de choix aux auteurs de documents HTML.
Les feuilles de style fournissent un riche contrôle des types et des tailles de police, des marges, des espacements avant et après chaque paragraphe, du retrait de première ligne, de la justification et de bien d'autres détails. L'agent utilisateur, par le biais de sa feuille de style par défaut, doit représenter les éléments P d'une manière familière, comme indiqué ci-dessus. Bien sûr, en principe, cette mise en forme peut être outrepassée afin de représenter les paragraphes, par exemple, sans renvoi à la ligne pour les distinguer. Cela pouvant perturber le lecteur, ce type de pratique n'est pas du tout encouragé.
Par convention, les agents utilisateurs visuels pour HTML doivent ajuster les renvois à la ligne automatiques de manière à placer le texte dans les marges disponibles. Or l'algorithme pour couper le texte dépend du type d'écriture.
Pour les écritures occidentales, par exemple, le texte ne devrait être coupé qu'à l'emplacement de blancs. Les premiers agents utilisateurs coupaient le texte juste après une balise ouvrante d'un élément, ou juste avant sa balise fermante, ce qui est occasionnait une ponctuation aberrante. Par exemple, prenons la phrase suivante :
Une statue de <A href="cih78">Cihuateteus</A>, Saint patron de ...
en coupant la ligne juste avant la balise fermante de l'élément A, la virgule est renvoyée au début de la ligne suivante :
Une statue de Cihuateteus , Saint patron de ...
Cela constitue bien une erreur, car il n'existe aucun blanc entre l'élément A et la virgule.
<!-- INS/DEL sont gérés par inclusion dans BODY --> <!ELEMENT (INS|DEL) - - (%flow;)* -- texte inseré, texte supprimé --> <!ATTLIST (INS|DEL) %attrs; -- %coreattrs, %i18n, %events -- cite %URI; #IMPLIED -- information ou raison de la modification -- datetime %Datetime; #IMPLIED -- date et heure de la modification -- >
Balise ouvrante : obligatoire, balise fermante : obligatoire
Définition des attributs
Attributs définis par ailleurs
Les éléments INS et DEL sont utilisés pour marquer les parties d'un document qui ont été insérées ou supprimées, afin de permettre de suivre l'évolution des versions de ce document (exemple : dans les projets de loi, les législateurs doivent pouvoir suivre les modifications apportées).
Ces deux éléments ne sont pas courants en HTML dans la mesure où ils sont utilisés soit en mode bloc, soit en mode en-ligne, mais pas les deux à la fois. Ainsi, ils peuvent soit encadrer un ou plusieurs mots d'un paragraphe, soit un ou plusieurs éléments de type bloc comme les paragraphes, les listes et les tables.
L'exemple ci-dessous montre la modification d'un projet de loi portant à "5" au lieu de "3" le nombre de suppléants qu'un shérif de comté peut employer.
<P> Un shérif peut employer <DEL>3</DEL><INS>5</INS> suppléants. </P>
L'élément INS et l'élément DEL ne doivent pas inclure de contenu de type bloc lorsqu'ils sont utilisés, comme ici, comme des éléments en ligne.
Exemple illégal :
L'exemple suivant n'est pas du HTML : l'élément INS
est dans un élément P de type en-ligne, et contient
un élément DIV de type bloc.
<P> <INS><DIV>...contenu de type bloc...</DIV></INS> </P>
Les agents utilisateurs devraient représenter les insertions et les suppressions de manière à rendre les modifications évidentes. Par exemple, les insertions pourraient apparaître dans une police spéciale, et les suppressions pourraient soit ne pas être affichées, soit être affichées mais barrées ou bien avec une marque de reconnaissance, etc.
Les deux exemples ci-dessous correspondent à des modifications apportées le 5 novembre 1994 à 08:15:30 (du matin), au Canada (c'est-à-dire. GMT-5).
1994-11-05T13:15:30Z 1994-11-05T08:15:30-05:00
Couplé à l'élément INS, cela donne :
<INS datetime="1994-11-05T08:15:30-05:00" cite="http://www.foo.org/mydoc/commentaires.html"> De plus, le dernier schéma de la direction commerciale suggère qu'une telle pratique augmente. </INS>
Le document "http://www.foo.org/mydoc/commentaires.html" contiendra des commentaires explicitant cette insertion dans le document.
Les auteurs peuvent également intégrer leurs commentaires dans le document dans l'attribut title des éléments INS et DEL. Les agents utilisateurs peuvent présenter cette information à l'utilisateur (par exemple, par le biais d'une info-bulle). Ainsi :
<INS datetime="1994-11-05T08:15:30-05:00" title="Modifié suite aux remarques de Steve B. durant la réunion."> De plus, le dernier schéma de la direction commerciale suggère qu'une telle pratique augmente. </INS>