La version française de cette traduction est :
http://www.la-grange.net/w3c/html4.01/
Traducteur : Éric 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 du document.
Le jeu de caractères du document comprend une grande variété de caractères blancs [ndt. 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 :
La coupure de ligne est également un caractère blanc. Remarquez 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 une coupure de 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 restitution, ou tout autre chose, des 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 ».
Pour tous les éléments HTML, à l'exception de l'élément PRE, des successions de blancs séparent les « mots » (le terme « mot » est utilisé ici pour indiquer une « une succession de caractères non-blancs »). Lors de la mise en forme du texte, les agents utilisateurs devraient identifier ces mots et les disposer en fonction des conventions d'écriture de la langue écrite (l'écriture) et du média visé en question.
Cette disposition peut nécessiter un espacement entre les mots (appelé 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 sans chasse » (​). Enfin, en japonais ou en chinois, l'espace-mot n'est normalement pas restitué du tout.
Remarquez qu'une succession de blancs entre des mots, dans le document source, peut résulter en un espace-mot complètement différent à la restitution (sauf dans le cas de l'élément PRE). En particulier, les agents utilisateurs sont censés fusionner toute succession de blancs du document source lorsqu'ils produisent l'espace-mot de la restitution. Cela peut et devrait intervenir même en l'absence d'informations de langue (issues de l'attribut lang, ou du champs de l'en-tête HTTP "Content-Language" (voir [RFC2616], section 14.12), ou du paramétrage de l'agent utilisateur, etc.).
L'élément PRE est employé pour un texte préformaté, dans lequel les blancs sont significatifs.
Afin d'éviter les conflits avec les règles de coupure de ligne SGML et les éventuelles incohérences des implémentations existantes, les auteurs ne devraient pas compter sur les agents utilisateurs pour restituer les blancs placés juste après une balise ouvrante ou bien juste avant une balise fermante. Aussi, les auteurs, et particulièrement les outils d'édition, devraient écrire :
<P>Nous offrons une <A>assistance technique</A> gratuite à nos adhérents.</P>
et non :
<P>Nous offrons une<A> assistance technique </A>gratuite à 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 ailleurs
Les éléments de phrase ajoutent une information structurelle à des portions du texte. L'interprétation habituelle de ces éléments de phrase est la suivante :
Les éléments EM et STRONG s'utilisent 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>. Veuillez désormais indiquer, dans toute correspondance, 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 celui 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 les occurrences des abréviations et des acronymes. En effet, les langues occidentales ont une grande utilisation des acronymes comme « UFO », « ONU » et « bit », ainsi que des abréviations comme « Mme. », « SA » ou « etc. ». Le chinois et le japonais emploient tous deux des mécanismes d'abréviation analogues, selon lequel un nom long est désigné par la suite par un sous-ensemble des caractères Han qui le constituent. Le balisage de ces structures fournit une aide précieuse aux agents utilisateurs et aux outils tels que les vérificateurs d'orthographe, les synthétiseurs de parole, les systèmes de traduction automatique et les moteurs de recherche.
Le contenu des éléments ABBR et ACRONYM spécifient l'expression abrégée telle qu'elle apparaîtrait normalement dans le cours du texte. L'attribut title de ces éléments peut être utilisé pour donner la forme complète ou développée de l'expression.
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 lang="en" title="Abbreviation">abbr.</ABBR>
Remarquer que les abréviations et les acronymes ont souvent une prononciation idiosyncratique. Par exemple, alors que « CEE » et « URL » se prononcent typiquement lettre à lettre, « OTAN » et « UNESCO »" se prononcent phonétiquement. D'autre part, certaines formes abrégées (par exemple, URI et « SQL ») sont épelées par les uns et prononcées comme des mots par les autres. 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 du document ou message sources -- > <!ELEMENT Q - - (%inline;)* -- citation courte dans la ligne --> <!ATTLIST Q %attrs; -- %coreattrs, %i18n, %events -- cite %URI; #IMPLIED -- URI du document ou message sources -- >
Balise ouvrante : obligatoire, balise fermante : obligatoire
Définition de l'attribut
Attributs définis ailleurs
Ces deux éléments désignent une citation [ndt. quotation]. L'élément BLOCKQUOTE indique une citation longue (avec un contenu de type bloc) et l'élément Q est censé être utilisé pour des citations courtes (avec un contenu de type en-ligne) ne nécessitant pas un saut de paragraphe.
Cet exemple montre le formatage d'un extrait de « Les deux tours », de J.R.R. Tolkien, sous forme d'un 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, une lueur de convoitise dans leurs yeux. L'immense traînée des Orques en marche traçait son vilain sillon 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 restituent en général l'élément BLOCKQUOTE sous la forme d'un bloc de texte en retrait.
Les agents utilisateurs visuels doivent s'assurer que le contenu d'un élément Q soit restitué avec des marques de citation englobantes. Les auteurs ne devraient pas placer de marque de citation 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érieures ou intérieures (imbriquées), ce que devrait respecter 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ù les deux citations sont en américain, les agents utilisateurs devraient les restituer convenablement, par exemple en rajoutant des guillemets simples autour de la citation intérieure et des guillemets doubles 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."
Remarque : Nous recommandons que les implémentations de feuilles de style fournisse un moyen d'ajouter des marques de citation avant et après une citation encadrée par l'élément BLOCKQUOTE, d'une manière appropriée au contexte de langue courant et au degré d'imbrication des citations.
Toutefois, comme certains auteurs n'ont simplement utilisé l'élément BLOCKQUOTE que pour obtenir un texte en retrait, les agents utilisateurs ne devraient pas ajouter de marques de citation en style par défaut, afin de préserver les intentions de ces auteurs.
L'utilisation de l'élément BLOCKQUOTE pour obtenir le retrait d'un texte est déconseillée en faveur de l'utilisation de 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 ailleurs
Plusieurs écritures (par exemple, le français) requièrent une écriture en lettres supérieures ou en lettres inférieures pour leur restitution correcte. On devrait baliser les textes en lettres inférieures avec l'élément SUB et ceux en lettres supérieures avec SUP.
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 des informations en paragraphes n'est pas touchée par la manière dont les paragraphes sont présentés : le contenu du paragraphe, qu'il soit entièrement justifié ou seulement justifié à gauche, est toujours le même.
Le balisage HTML qui définit un paragraphe est clair : l'élément P contient un paragraphe.
La représentation visuelle 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. 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 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).
On déconseille vivement aux auteurs d'utiliser des éléments P vides. Les agents utilisateurs devraient ignorer de tels éléments P vides.
On définit une coupure de ligne comme étant un « retour chariot (CR) 
 », un « saut de ligne (LF) 
 » ou la paire des deux (CRLF). Toutes les coupures de ligne sont des des caractères blancs.
Pour plus d'informations sur la spécification des coupures de ligne SGML, veuillez consulter les remarques sur les sauts de ligne en annexe.
<!ELEMENT BR - O EMPTY -- coupure de ligne forcée --> <!ATTLIST BR %coreattrs; -- id, class, style, title -- >
Balise ouvrante : obligatoire, balise fermante : interdite
Attributs définis ailleurs
L'élément BR coupe (interrompt) la ligne de texte courante.
Pour les agents utilisateurs visuels, l'attribut clear peut s'utiliser pour déterminer si le balisage, qui suit l'élément BR, s'écoule autour des images et des autres objets qui flottent à la marge gauche ou bien droite, ou si le balisage commence en-dessous de tels objets. La section sur l'alignement et les objets flottants donnent plus de détails. Les auteurs sont invités à utiliser les feuilles de style pour contrôler l'écoulement du texte autour des images et autres objets flottants.
En rapport avec la mise en forme bi-directionnelle, l'élément BR devrait avoir le même comportement que le caractère « SÉPARATEUR DE LIGNES (߬) » [ISO10646] dans l'algorithme bi-directionnel.
Parfois, les auteurs peuvent vouloir empêcher qu'une coupure de ligne n'intervienne entre deux mots. L'entité (  ou  ) agit comme un espace insécable, où les agents utilisateurs ne devraient pas effectuer une coupure de ligne.
En HTML, il existe deux types de tiret : le tiret simple [ndt. plein hyphen], insécable, et le tiret conditionnel [ndt. soft hyphen], sécable. Le tiret simple devrait être considéré par les agents utilisateurs comme un caractère comme les autres. Le tiret conditionnel indique à l'agent utilisateur l'endroit où peut se produire une coupure de ligne.
Les agents utilisateurs qui gèrent les tirets conditionnels doivent observer les règles sémantiques suivantes : si le texte se coupe sur un tiret conditionnel, le tiret doit être affiché à la fin de la ligne coupée et si le texte ne se coupe pas sur un tiret conditionnel, alors le tiret ne doit pas s'afficher du tout. En outre, le tiret conditionnel doit être ignoré lors des opérations de recherche et de tri.
En HTML, le tiret simple est spécifié par le caractère « - » (- ou -) et le tiret conditionnel 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 ailleurs
L'élément PRE indique aux agents utilisateurs visuels que le texte qu'il contient est « préformaté ». Lors de la gestion d'un texte préformaté, 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 des coupures de ligne SGML, veuillez consulter les remarques sur les coupures de ligne en annexe.
Le fragment de DTD ci-dessus indique les éléments qui ne peuvent pas apparaître dans la déclaration d'un élément PRE. C'est la même chose que pour HTML 3.2, l'objectif étant de garder constant l'interlignage et l'alignement des colonnes d'un texte dans une police à chasse fixe. Les auteurs sont incités à ne pas altérer ce comportement au moyen des feuilles de style.
Les exemples ci-dessous montrent les vers préformatés du poème
de Shelly : 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 restitution qui devrait typiquement en être faite :
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 » (code 9 en décimal dans [ISO10646]
et [ISO88591]) est habituellement interprété
par les agents utilisateurs comme le plus petit nombre non nul de caractères « espace » 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'utilisation de ce caractère de tabulation horizontale est fortement déconseillé,
dans la mesure où l'espacement des taquets de tabulation est couramment modifié au cours de l'édition du
document, ce qui conduirait à des ruptures d'alignement lors de l'affichage de ce document.
Remarque : Cette section est une description informative de la conduite de certains agents utilisateurs visuels courants lors de la restitution des paragraphes. Les feuilles de style permettent un contrôle plus fin de cette restitution.
La manière dont sont restitués visuellement les paragraphes dépend de l'agent utilisateur. Les paragraphes sont habituellement restitués avec leurs lignes alignées à gauche et leurs marges droites non justifiées. Et inversement, pour les écritures de droite à gauche.
Les agents utilisateurs HTML restituent traditionnellement les paragraphes avec un espacement avant et un 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 habituelle 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.
Suivant en cela le précédent établi par le navigateur Mosaic du NCSA apparu en 1993, les agents utilisateurs n'effectuent pas en général une justification sur les deux bords, en partie parce que c'est difficile à réaliser sans une gestion complexe des césures. L'avènement des feuilles de style et l'anti-crénelage [ndt. antialiased] des polices, permettant un positionnement au fraction de pixel, promettent d'offrir une plus grande palette de choix aux auteurs de documents HTML.
Les feuilles de style offrent un contrôle fin des types et des tailles des polices, des marges, des espacements avant et après chaque paragraphe, du retrait de la première ligne, de la justification et nombre d'autres détails. L'agent utilisateur, par le biais de sa feuille de style par défaut, restitue les éléments P d'une manière familière, comme indiqué ci-dessus. On pourrait en principe outrepasser cette mise en forme afin de restituer, par exemple, les paragraphes successifs sans les coupures conventionnelles qui les distinguent. Comme cela peut perturber le lecteur, nous n'encourageons pas cette pratique.
Par convention, les agents utilisateurs visuels HTML ajustent la longueur des lignes de texte pour que celles-ci tiennent à l'intérieur des marges disponibles. Les algorithme de coupure des ligne dépendent de l'écriture qui est mise en forme.
Pour les écritures occidentales, par exemple, le texte ne devrait se couper qu'aux blancs. Les premiers agents utilisateurs coupaient le texte juste après la balise ouvrante ou juste avant la balise fermante d'un élément, ce qui occasionnait une ponctuation aberrante. Par exemple, prenons la phrase suivante :
Une statue de <A href="cih78">Cihuateteus</A>, qui est le patron de...
la coupure de la ligne juste avant la balise fermante de l'élément A fait que la virgule est renvoyée au début de la ligne suivante :
Une statue de Cihuateteus , qui est le 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 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 suivre l'évolution des versions de ce document (par 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 englober 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 DEL ne doivent pas inclure de contenu de type bloc lorsqu'ils sont utilisés comme éléments en-ligne.
EXEMPLE ILLÉGAL :
L'exemple suivant n'est pas valide pour HTML.
<P> <INS><DIV>...contenu de type bloc...</DIV></INS> </P>
Les agents utilisateurs devraient restituer les textes insérés et supprimés de manière à faire apparaître les modifications évidentes. Par exemple, les insertions pourraient apparaître dans une police particulière et les suppressions pourraient ne pas apparaître du tout, ou être affichées barrées ou bien avec des marques spéciales, etc.
Les deux exemples ci-dessous correspondent à des modifications qui ont été 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 donnerait :
<INS datetime="1994-11-05T08:15:30-05:00" cite="http://www.fictif.org/mondoc/commentaires.html"> En outre, les derniers chiffres de la direction commerciale suggèrent que ces pratiques sont en augmentation. </INS>
Le document "http://www.fictif.org/mondoc/commentaires.html" contiendra les commentaires explicitant cette insertion dans le document.
Les auteurs peuvent également intégrer leurs commentaires dans le document, au moyen de 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 infobulle). Ainsi :
<INS datetime="1994-11-05T08:15:30-05:00" title="Changé suite aux remarques de Steve B. durant la réunion."> En outre, les derniers chiffres de la direction commerciale suggèrent que ces pratiques sont en augmentation. </INS>