Accueil > weblog
- Lire le billet précédent - Lire le billet suivant -
Par Laurent Denis, le 03 novembre 2004.
Une remarque de l'excellent Denis Boudreau dans le forum Webmaster-Hub me faire amicalement bondir : je suis de ceux qui soutiennent qu'on ne devrait utiliser qu'un seul
h1 par page, pas plusieurs.
Etant pour ma part de ceux qui soutiennent qu'on peut n'utiliser qu'un seul h1 par page, mais que cela n'a rien de normatif, je crois qu'il y a là un bon exemple de l'abus de prescription. Le choix d'utiliser h1 de telle ou telle manière relève en effet de deux problématiques distinctes : le respect de la norme d'une part, et dans ce cadre, les choix de pratiques d'autre part. Ne les mélangeons pas :
Rappelons avant tout la définition des éléments de titrage en HTML : A heading element briefly describes the topic of the section it introduces. Heading information may be used by user agents, for example, to construct a table of contents for a document automatically
. h1 est donc un titre de section, et non de page ou de document. Selon le contenu, on peut donc faire aussi bien l'un ou l'autre choix :
h1 ( et comprenant éventuellement des sous-sections hiérarchisées dotées de sous-titres de niveau correspondant) ;h1 (et de même comprenant éventuellement des sous-sections).Le point important ici est de choisir la structure logique appropriée au contenu.
Et le titre du document, me direz-vous ? Revenons encore à la spécification, rien que la spécification, et toute la spécification : Every HTML document must have a
Voilà le titre de notre ressource: l'élément TITLE element in the HEAD section. Authors should use the TITLE element to identify the contents of a document.title.
"Mais, allez-vous poursuivre, ce title n'est pas affiché dans le document. Il n'apparaît que dans la barre de titre de la fenêtre du navigateur... Il n'est pas dans le contenu..."
Attention, nous entrons à présent dans les choix de pratiques... Ne sortons pas pour autant par inadvertance de la norme : The
TITLE element is not considered part of the flow of text. It should be displayed, for example as the page header or window title. Exactly one title is required per document.
Il se trouve malheureusement que nos navigateurs graphiques n'exploitent pas l'élément title dans la zone d'affichage du document, ce qui en rendrait la lecture certainement plus aisée et plus naturelle. Mais oublions un peu ces navigateurs graphiques auxquels nous réduisons trop souvent notre vision du Web : que fait Lynx ? Que fait un lecteur d'écran ? Que fait Opera 7.60 en mode vocal ? Tous restituent le titre du document en tête de contenu, comme la spécification les invite à faire.
Achevons pour les navigateurs graphiques en ajoutant que rien n'empêche, si le support CSS2 est suffisant, d'annuler les styles par défaut utilisés par le navigateur, et de forcer l'affichage de l'élément title en tête de page... Mais cette solution ne s'applique qu'à quelques navigateurs.
Qu'en conclure, entre norme et pratique ?
title, indépendamment de toute considération sur l'usage de h1 ;h1 reproduirait tout ou partie de l'intitulé de title... à condition que cette structure HTML soit compatible avec la structure logique du contenu ;h1, et à proscrire sa véritable utilisation comme titre de section, dans laquelle il peut très bien y avoir plusieurs sections de même importance, et donc, plusieurs h1.Au bout du compte, on en revient à un constat classique : le contenu d'un document HTML devrait toujours être structuré indépendamment du media de restitution. Ce n'est que dans un second temps que l'on peut faire des choix d'adaptation de cette structure en fonction des résultats affiché, lu, imprimé... et de considérations d'ergonomie, d'accessibilité ou de design.
1. Le 06 novembre 2004 à 22:22, de Empyrée
C?est pourtant ce qui se passe quand vous utilisez un h1 en lieu et place du titre. J?ai déjà expliqué dans mon manuel de style que j?aimais être précis quant à l?usage des headings. Et bien, il en va de même pour le titre....
2. Le 27 octobre 2005 à 23:14, de Le weblogue de SeB
Un titre, toujours un titre mais seulement un titre
Le titre du document est enfin remis à sa place !
Les trackbacks pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.
Commentaires
Charles Népote, le 03 novembre 2004
Bravo ! Une très belle application de ton précédent billet traitant de l'abus de prescription : blog-and-blues.org/weblog...
J'y vois là un bel aboutissement de tes questionnements sur le phénomène et les méthodes de formation/"évangélisation" aux standards. 1. Lire la norme. 2. La norme n'empêche pas la glose sous la forme de "bonnes pratiques". 3. Les bonnes pratiques doivent s'assurer de respecter les fondamentaux qualitatifs des normes comme celui de la séparation de la structure du contenu de sa présentation.
J'en viens au point suivant. Certains éléments de la norme sont sans ambiguité et clairement quantitatif (un <p> à l'intérieur d'un <span> est clairement une erreur). Mais certains autres doivent être appréciés qualitativement comme celui de la séparation entre structure du contenu et rendu. Il reste ici un champ d'exploration intéressant qui va sans doute mettre du temps pour parvenir à maturité.
Denis, le 03 novembre 2004
Dans la mesure ou notre interprétation de la norme n'enfreint pas les règles édictées, tout me semble bon à priori. Ainsi, selon la norme, les éléments hx peuvent être utilisés de manière répétitives à l'intérieur d'une même page. Tout comme la sémantique HTML n'est pas une règle, mais une bonne pratique, je crois que la limitation à un seul h1 tient du même raisonnement... on y adhère ou on n'y adhère pas.
pokute, le 04 novembre 2004
Hmm ... Dire que j'avais cru que le h1 unique était écrit noir sur blanc dans les specs, je tombe de haut.
En relisant et relisant, je me suis dit que de toute facon, 1 voir 2 h1 par page c'est déjà beaucoup (dans la pratique), en tout cas moi j'adhère au h1 unique
J'ai entendu dire que google "lisait" le premier h1, et qu'il aimait le h1 unique et que le contenu de ce h1 soit contenu (désolé pour les répétitions) dans le title de la page et dans l'url aussi. Donc ...
gizmo, le 04 novembre 2004
"J'ai entendu dire que google "lisait" le premier h1, et qu'il aimait le h1 unique et que le contenu de ce h1 soit contenu (désolé pour les répétitions) dans le title de la page et dans l'url aussi."

Et? Le fait qu'un moteur de recherche, aussi populaire qu'il soit, choississe des critères de classement, qui ne sont pas toujours les plus heureux, doit-il influencer la manière dont tu structures ton information? Autant revenir au code "optimisé pour IE" dans ce cas vu qu'il est également le plus populaire
ElMoustiko, le 04 novembre 2004
Perso je suis aussi partisant du h1 unique par page. Je vois l'utilisation des titres de niveau exactement comme un chapitrage d'un cours (de maths par exemple).
Chap(<h1>)=>Titre du chapitre (unique)
I-(<h2>)=>Titre du paragraphe
II-(<h2>)=>Titre d'un autre paragraphe
II-1-(<h3>)=>Sous titre de paragraphe
II-2-(<h3>)=>Sous titre de paragraphe
II-2-a(<h4>)=>Sous sous titre de paragraphe
II-2-b(<h4>)=>Sous sous titre de paragraphe
etc.
Ce type de structure est tout à fait calquable pour un site, le chapitre étant le site, le I le titre de page.
Mais à vrai dire on peut très bien décaler d'un niveau et donc ce retrouver avec plusieurs <h1> prenant le role de titre I, II, III, ..., mais plus d'info sur le titre du site, et là je suis moins fan... D'autant que dans <title> il est mieux d'indiquer le titre de la page donc où met on le titre du site ???
Laurent Denis, le 04 novembre 2004
Ah... je manque de temps pour répondre et surtout réfléchir. Mais pour vous assurer qu'on y reviendra:
@Charles, je t'invite à lire le commentaire d'Elie Sloïm: http://blog-and-blues.org/weblog/2004/11/01/329-web-standards-propaganda-abus-de-prescription#c606 . Comme je le lui ai dit, je crois qu'il n'y a plus qu'à vous laisser discuter tous deux: je serais très curieux de savoir ce qu'il sortirait du rapprochement de vos deux approches.
@ElMoustiko> Hum... Qu'est qu'un "site" au sens normatif ? Où est-il quesion d'un "site" dans nos normes ? Cherche un peu... Ce serait intéressant, je crois.
Elie, le 05 novembre 2004
Le cas du nombre de <h1> est très intéressant : j'ai précisément posé cette question au cours d'une formation sur l'accessibilité, puisque la formatrice nous avait tout d'abord dit qu'il n'en fallait qu'un, et après vérification nous a confirmé que la norme permettait tout à fait d'en mettre plusieurs.

(N°203)
Si on regarde ce cas en détail, la norme n'a pas statué sur cette question, parce la norme n'a pas pour rôle de statuer sur tout.
Une norme qui tenterait de statuer sur tout risquerait de :
1 brider la créativité et l'innovation
2 Empêcher la validation et la déclinaison par la pratique
3 être rejetée en bloc par ceux qui doivent l'appliquer.
Dans le cas du <H1>, c'est la pratique (du point de vue des créateurs de sites, des aides techniques, des moteurs de recherche, etc...) qui va faire et emporter la décision.
On peut parfaitement imaginer que le fait de ne mettre qu'un <h1> devienne une bonne pratique non normalisée, mais reconnue, un standard de fait.
Il est peut-être trop tôt pour le dire, mais les arguments ci-dessus (la logique du chapitrage, ce qu'aime Google, le bon vieux sens, commun, etc...) me laisse penser me ce sera un cas d'école.
Je suis assez d'accord avec Charles et Laurent : nous avons effectivement d'une part la norme qui définit les règles techniques communes sur la base d'un consensus à une date donnée.
Ensuite, la norme (ou une partie de la norme) va être appliquée de façon plus ou moins stricte, quelquefois à la lettre, quelquefois simplement dans l'esprit.
Et c'est dans l'application pratique que vont se contruiront de nouvelles règles, qui pourront à leur tour être normalisées.
P.S. : Laurent, quand on lance des discussions aussi relevées, on met des boites de formulaires plus grandes
P.S.2 Laurent : j'ai eu un problème hier sur ton site parce qu'il ne suit pas la bonne pratique suivante : "Les informations destinées à des espaces publics peuvent être prévisualisées sous la forme où elles seront affichées"
pokute, le 06 novembre 2004
@gizmo : meuh non, j'ai jamais dit ca
Et un code optimisé pour ie il le sera moins qu'un "code propre" (lire www.cybercodeur.net/weblo... ).
Ce que j'ai voulu dire par là, c'est qu'un seul h1 tout en haut c'est logique, "c'est ce que montre google par sa technique d'indexation par exemple". Je rejoins ElMoustiko sur la hierarchisation des hx.
Laurent Denis, le 06 novembre 2004
J'avance à petits pas à la suite de vos commentaires passionnants:
- le propos de ce billet était de montrer que la norme ne restreignait aucunement l'usage du <h1> à une occurence unique, et que le choix structurel dépendait du contenu...
- Mais presques tous les avis réaffirment le besoin de cette restriction...
- Sans définir pour quel type de contenu précis.
D'où mon rebond sur la notion de "site Web" ( blog-and-blues.org/weblog... ): qu'il s'agisse d'une question de sens, de référencement, d'ergonomie, de chapitrage... est-ce qu'on ne retrouvera pas à chaque fois la mention du "site Web" au coeur de ce <h1> unique ?
Est-ce effectivement le sens de vos interventions ?
Ganf, le 06 novembre 2004
Pour ce qui est de la hiérarchisation des <h?> je me permet de faire rentrer un élément dans le débat :
HTML 4 est aussi normalisé par ISO (pas que par le W3C). Dans cette dernière normalisation il y a quelques contraintes supplémentaires, dont justement la hiérarchisation des <h?>. Il est par exemple interdit d'après les specs ISO (et ce dont je me souviens) de faire un <h1> suivi d'un <h3> sans aucun <h2> au milieu.
Laurent Denis, le 06 novembre 2004
Eric, fais-tu allusion à ISO/IEC 15445:2000 ? La hiérarchisation des <h?> est y clairement présentée comme "informative" (dans un cadre très précis), et non normative.
Ganf, le 06 novembre 2004
Ne m'en demandes pas trop, je parle de mémoire. Mais il s'agit bien d'une norme de 2000, donc ça doit être celle là. Je ne me souvenais pas que c'était juste informatif, faudra que j'aille voir. Si c'est le cas admettez que je n'ai rien dit.
Laurent Denis, le 06 novembre 2004
Faux espoir, donc ? Il va falloir vérifier... ce serait trop beau
Laurent Denis, le 06 novembre 2004
Mes commentaires tournent au post-it pour ne pas oublier une idée, veuillez m'en excuser. Mais:
HTML4.01 ne prévoyant qu'une structure "statique" de titres, et non "dynamique" comme XHTML2.0, rendre normative la hiérarchisation des titres <h?> poserait ce problème peut-être très spécifique: un texte cité comportant un titre <h3> devrait fréquemment être modifié pour que le niveau de titre s'intègre à celui de la page comportant la citation... Plus généralement, la ré-exploitation d'un contenu existant par ailleurs s'en trouverait singulièrement compliquée, il me semble.
En l'absence d'une structure hiérarchisée de titres relative à l'imbrication des sections du contenu, il semble logique de ne pas rendre obligatoire le respect de celle-ci. Je ne sais pas si ma formulation est bien claire...
David Latapie, le 06 novembre 2004
Pom pom, je passe par là.
Laurent, ça suffit, je vais me fâcher maintenant. Je dois taper article sur article
(en fait, il était déjà en stock pour le 11 novembre, je n'ai fait qu'avancer la date).
David Latapie, le 06 novembre 2004
Oups, j'ai oublié de mentionner explicitement le lien (vu qu'il est en trackback)
www.teaser.fr/~lcolombet/...
Ganf, le 07 novembre 2004
Commentaire déplacé dans le billet Menus de navigation (1): sémantique, structure, implémentation ?.
Stephane Deschamps (nota-bene.org), le 09 novembre 2004
Je vois bien un cas où on aurait besoin, "normativement" (notez les guillemets), de plusieurs H1 dans la même page, en extrapolant l'exemple de El Moustiko.
Un rapport, un exposé, etc. Si chaque H1 est un titre de partie, en revanche il n'est dit nulle part qu'on ne puisse pas mettre toutes les parties dudit rapport dans la même page. Après tout, c'est ce que je fais dans Word|OpenOffice avec les Titre 1 pour chaque grande partie.
Ceci dit, dans ma pratique, je restreins toujours à un seul H1 par page, ça me semble plus logique, mais encore une fois c'est un choix peut-être arbitraire.
Laurent Denis, le 09 novembre 2004
En fait, en supposant que l'on respecte strictement la hiérarchisation des titres (ce que les normes n'exigent pas, mais qui semble par ailleurs recommandable), il est rare en effet qu'un contenu ne puisse être placé sous un titre unique (de niveau <h1>).
Un exemple plus probant cependant: celui d'une page bilingue telle que le titre principal doive être traduit dans les deux langues...
David Latapie, le 11 novembre 2004
Stéphane> Effectivement, tout idée se vaut mais je pense uniquement pour du *travail de préparation*. C'est par exemple ce que font depuis longtemps les utilisateurs de LaTeX pour des longs documents.
Mais le document *final* doit à mon sens se suffire à lui-même
Pascal, le 10 février 2006
Pour revenir au commentaire citant l'exemple de google, il faut peut-être prendre aussi en compte une approche pragmatique : si je ne met qu'un seul h1 contenant en gros le nom du site, je perd beaucoup si je veux être bien indexé. Si on considère que le h1 est une des balise qui a le plus de poids pour les moteurs de recherche, ça revient à fournir sensiblement la même information pour toutes les pages du site alors qu'il est sans doute plus interessant d'avoir quelque chose de plus représentatif de chaque contenu.
Pascal, le 10 février 2006
Désolé, je n'avais pas vu les dates, j'ai presque deux ans de retard pour répondre...
Laurent Denis, le 10 février 2006
Bonjour Pascal,

Au contraire, je crois qu'il est très intéressant de réactiver ce type de sujet, qui n'a guère avancé dans les pratiques les plus répandues
Dans l'immédiat, une chose me vient à l'esprit : cette "perte" côté référencement est étroitement liée aux pratiques actuelles et conjoncturelles des (ou d'un) moteur de recherche : est-ce à dire que je dois, quelque-soit le site, prévoir de devoir faire évoluer ma structure pour "coller" aux changements prévisibles de celles-ci ?
Vous voyez le problème ? Pour certains sites, la réponse est clairement "ce n'est pas mon problème, je ne regarde pas aussi loin". Mais pour d'autres ?
Une question de fond assez intéressantes ressurgit là : les moteurs de recherche ont-il vocation à modeler le Web, ou à l'indexer ?
Pascal, le 14 février 2006
Il me semble que puisque le fait de mettre plusieurs h1 n'est pas contraire à la norme et qu'en même temps cela peu améliorer les choses en matière de référencement, pourquoi ne pas en profiter ?
C'est un peu toujours ce problème de juste milieu entre respect strict des standards et réalité du marché. Si je fais des menus déroulant en pure css je respect les standards mais je me prive des visiteurs utilisant Internet Explorer. Si je fait des menus déroulants utilisant du javascript je peux respecter les standards, être accessible à tous les utilisateurs et même améliorer l'ergonomie de mon site (avec un petit délai à la fermeture par exemple).
Donc l'idée n'est pas de faire "pour" Google mais de se dire que si je peux lui faire "plaisir" sans avoir de conséquences néfastes, alors pourquoi ne pas le faire ?
Olivier, le 15 février 2006
Cette problématique sur la place du h1 me pose un cas de conscience depuis quelques jours. Alors je viens de vérifier sur le guide Braillenet ou il n'est nulle part fait mention de recommendations d'utilisation unique du h1 dans un document html (corrigez-moi si je me trompe). Pour le W3C, sur la page <a href="www.yoyodesign.org/doc/w3... conformité : obligations et recommandations</a>, ils reprennent effectivement le "title" dans le "h1" (et l'appliquent effectivement à la lettre).
Si je fais ces vérifications c'est car intuitivement, j'avais pris l'habitude depuis quelques temps d'appliquer un h1 à mes éléments de menu de navigation, et je ne trouve pas illogique de les affecter en titre 1 puisqu'ils servent à structurer non pas une page unique mais un site dans son ensemble. Mais je serais heureux de connaitre vos avis sur ce sujet.
L'argument "référencement par Google" est à mon humble avis hors-sujet mais c'est vrai que c'est un "plus"
Laurent Denis, le 15 février 2006
Considérer que la page se compose au minimum de deux sections de niveau égal (contenu et navigation) est une approche possible (c'est ce que j'ai retenu ici, d'ailleurs).
Plus généralement, du point de l'accessibilité, ce n'est la présence d'un ou de plusieurs titres de niveau 1 qui aura une importance décisive (pas plus que plusieurs h2 successifs ne sont problématiques ou bénéfiques : le titre h1 n'a pas un statut particulier ni en pratique, ni normativement).
Ce qui compte pour l'accessibilité est le respect de la hiérarchie du titrage (un titre de niveau n est suivi d'un titre de niveau n, n+1 ou n-1 uniquement) : ceci permet d'exploiter pleinement le titrage comme support de navigation dans le contenu.
Olivier, le 15 février 2006
Tout à fait ! L'emploi de multiples titres h1 n'est donc pas proscrit ni déconseillé (enfin je l'interprète comme ça) du moment que la hiérarchie des titres est respectée comme tu dis. Pour reprendre les recommandations w3c "Chacun de ces éléments a exactement un seul parent, l'exception étant l'élément racine qui n'en a pas" en parlant de l'arbre du document.
Pascal, le 15 février 2006
Je suppose qu'il faut appliquer cette regle au niveau des différents block d'un document et non au niveau du document lui-même ?
Si on prend un document avec un texte principal et des encarts contenant par exemple des introductions à des articles, au niveau du document on risque d'avoir un h1 qui suit un h3 ou un h4 non ?
Philippe Worontzoff, le 15 février 2006
"un titre de niveau n est suivi d'un titre de niveau n, n+1 ou n-1 uniquement"
Laurent, ce n'est pas forcément n-1, on peut très bien avoir par exemple :
<h1>Un titre</h1> // n=1
<h2>Un autre titre</h2> // n=n+1
<h3>Un autre titre</h3> // n=n+1
<h4>Un autre titre</h4> // n=n+1
<h2>Un autre titre</h2> // n=n-2
Pour être précis, c'est donc : "un titre de niveau n (n étant en entier compris entre 1 et 6) est suivi d'un titre de niveau n, n+1 ou n-a (a étant un entier plus petit que n) uniquement"
Bensti2, le 16 février 2006
C'est très simple pourtant, un seul H1 et hop la hip hop :-=)
Laurent Denis, le 16 février 2006
@Philippe: oups, en effet, mon résumé arithmétique était incomplet
Merci pour la rectification.
Sylvain, le 21 février 2006
Pour ma part j'utilise souvent *deux* <h1> : un pour le nom du site et un pour la page elle-même... Vivement un support complet de l'affichage des meta-données via CSS pour mettre ce genre d'informations (titre, navigation, ...) dans le header.
Les commentaires pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.