HTML5, structuration documentaire

La balise hgroup

Une balise devenue obsolète

Le but de cet exercice est de manipuler la balise hgroup pour ensuite comprendre pourquoi elle est devenue obsolète et ne fait plus partie de la spécification HTML5.

La balise <hgroup> contient plusieurs éléments h1 à h6, qu'elle regroupe ensemble en un seul bloc titre :

<hgroup><!-- balises h1 ... h6 --></hgroup>

En particulier, l'algorithme Outline HTML5 ne gardera que la balise de titre "supérieure" (la moins profonde) du groupe dans le sectionnement d'un document.

Cette balise a été créée pour permettre d'adjoindre facilement des sous-titres à une section.

Question

On dispose du code HTML4 suivant :

1
<body>
2
<div class="article">
3
   <div class="header">
4
      <div class="title">Un titre</div>
5
      <div class="subtitle">Un sous-titre</div>
6
      <p class="author">Tom B.</p>
7
   </div>
8
9
   ...
10
11
</div>
12
</body>

Transformer ce code en HTML5 en utilisant la balise <hgroup>.

Indice
1
<hgroup>
2
   <h1>...</h1>
3
   <h2>...</h2>
4
</hgroup>
Solution
1
<body>
2
<article>
3
   <header>
4
      <hgroup>
5
         <h1>Un titre</h1>
6
         <h2>Un sous-titre</h2>
7
      </hgroup>
8
      <p class="author">Tom B.</p>
9
   </header>
10
11
   ...
12
13
</article>
14
</body>

Question

Vérifier à l'aide d'un Outliner HTML5 en ligne (ici par exemple) les résultats conformes aux attentes, avec ou sans hgroup.

Solution
Résultat de l'algorithme Ouline

Sans <hgroup>

Avec <hgroup>

  1. Document/Untitled Section

    1. Un titre

      1. Un sous-titre

  1. Document/Untitled Section

    1. Un titre

Remarque : l'élément body est responsable de la section racine de la hiérarchie.

Question

h1–h6 elements must not be used to markup subheadings, subtitles, alternative titles and taglines unless intended to be the heading for a new section or subsection.

Avancer une explication quant à la suppression de la balise <hgroup>, en s'appuyant sur la logique de structuration documentaire apportée par HTML5.

Indice

Quel est le rôle des balises h1 ... h6 ? Quel est l'apport concret de hgroup par rapport à un div ?

Solution

Les balises h1 ... h6 ont un rôle sémantique précis : désigner les titres de chaque section du document de manière à générer le plan de ce dernier (algorithme Outline).

Ainsi, le simple fait de les encapsuler dans une balise <hgroup> ne communique en rien que l'une ou plusieurs d'entre elles devienne un sous-titre.

Plus problématique, si c'était le cas, alors cela voudrait dire qu'une balise de titre peut perdre sa valeur sémantique habituelle lorsqu'intégrée à un <hgroup>...

Enfin, la balise n'apporte finalement rien de plus au niveau sémantique qu'un <div> qui grouperait plusieurs éléments ensemble.

Question

Reprendre le code précédent et proposer une alternative à hgroup.

Indice

3 alternatives proposées par le W3C :

  • le sous-titre est encapsulé dans une balise <p> appartenant au <header> ;

  • le sous-titre appartient à la balise de titre, séparée du titre par ":" ;

  • le sous-titre appartient à la balise de titre, encapsulé dans un <span> pour permettre un CSS spécifique.

Solution
1
<body>
2
<article>
3
   <header>
4
      <h1>Un titre</h1>
5
      <p class="subtitle">Un sous-titre</p>
6
      <p class="author">Tom B.</p>
7
   </header>
8
9
   ...
10
11
</article>
12
</body>
PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Rihab Hachem, Cindy Pinvin, Baptiste Perraud, 2014-2016 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)