Leçon 8 : Balises sémantiques et de structure

Leçon Progress:

Objectifs

  1. Structurer un document HTML en s’attachant aux rôles des zones d’informations
  2. Utiliser les balises sémantique au lieu des balises de mise en forme

A l’origine il y avait <center>. et d’autres balises de mise en forme comme <font>. Puis les CSS sont arrivées, en version 1 en 1996, avec des directives de mise en forme comme text-align:center. Petit à petit, à travers les versions d’HTML 3.2 puis 4 et maintenant 5, une séparation des rôles s’est dessinée :

  1. HTML essentiellement (jamais totalement) pour la structure du document et le sens des zones et des éléments qui le composent
  2. CSS pour l’habillage graphique qui comprend les effets visuels (polices de caractère, couleurs, bordures) mais aussi la disposition des zones d’informations, que l’on peut appeler pagination

Cette tendance est confirmée avec HTML 5, la dernière version, qui introduit des nouvelles balises de structure et met au rencard les vieilles balises de mise en forme comme <center> et <font> à ne plus utiliser.

Nous allons voir comment analyser une page et en déduire une structure HTML sous la forme d’un gabarit.

Analyse de page (« zoning »)

Plutôt que de démarrer directement en HTML, il est conseiller d’analyser visuellement la page que l’on veut réaliser, en repérant grossièrement les blocs d’informations ou zones. Ce dessin est construit soit à partir d’une page à reproduire, soit à partir des besoins exprimés par les utilisateurs, en imaginant comment présenter l’information et permettre la navigation. Ce travail sort du cadre de ce cours, nous allons simplement voir à quoi ressemble un zoning et surtout comment l’utiliser.

En voici un exemple :

Les grands blocs d’information sont dessinés en détaillant le contenu de chaque bloc par niveaux successifs. Nous nous arrêtons avant de montrer les éléments HTML comme un paragraphe ou une image, car pour l’instant, dans cette leçon, seule la structure générale nous intéresse. Nous verrons par la suite que le zoning se fait souvent à partir de la « maquette fil-de-fer » comme présentée en introduction de ce cours.

Donc retenez bien que nous procédons à un découpage visuel sous la forme de blocs rectangulaires pour lesquels on désigne une fonction, soit par des termes génériques comme « entête », « carrousel (slider) », « pied de page », soit par des termes propres au domaine, comme « liste des événements », « réservations » par exemple pour un site de concerts.

Structuration

A partir du zoning, nous allons pouvoir définir la structure générale de la page en HTML à l’aide de balises spéciales. On parle souvent de gabarit. car cette structure définit le squelette d’une ou de plusieurs pages ayant la même forme.

Éléments de structuration

Les nouvelles balises d’HTML 5 permettent de définir la structure d’un document. Ces balises renseignent sur le rôle de chaque zone d’information, pour les développeurs mais aussi pour les moteurs de recherche et tout programme d’analyse de document, qui vont pouvoir mieux exploiter et mettre en valeur l’information contenue dans une page. Voici ces balises résumées.

balise signification contenu typique (pas restrictif)
<header>  entête de la page, ou d’un contenu (article, section), contient l’introduction, le titre, éventuellement le menu de navigation (élément <nav>)
  • <nav>
  • <img>, <p>, <h*>
<footer>  le pied de page, ou d’un contenu, classiquement les informations légales, de contact, éventuellement un élément de navigation
  • <nav>
  • <img>, <p>, <h*>
<main>  contenu principal de la page, présent une seule fois dans un document, ne doit pas être enfant d’un des autres éléments (en général directement mis sous <body>)
  • <aside>
  • <section>
  • <article>
<aside> contenu annexe et séparé par rapport au contenu principal mais lié à celui-ci, par exemple une barre latérale, une zone de commentaire, une barre de navigation (mettre <nav> à l’intérieur dans ce cas)
  • tout
<nav>  ensemble de liens pour naviguer dans la page ou dans le site, normalement pour la navigation principale (à ne pas utiliser pour toutes les listes de liens, notamment pour les liens du pied de page)
  • <a>
  • <section>
<article>
  •  contenu qui forme un ensemble cohérent et pouvant être réutilisé dans un autre contexte, comme un article de blog, un simple commentaire
  • contient en général un titre et un corps
  • <section>
  • <img>, <p>, <h*>
<section>
  •  de même nature que l’article, regroupant des zones qui vont ensemble, qui constituent un groupe, mais ne pouvant pas être détaché de la page, pour un problème de sens, de structure
  • correspond à une sous partie, une subdivision du bloc parent
  • <section>
  • <article>
  • <img>, <p>, <h*>

Pour bien gérer la distinction article/section, disons que l’article pourrait être repris tel que dans un autre site car il forme un élément d’information pertinent dans d’autres contextes. Il peut être très simple avec un titre, une image, un texte ou long avec plusieurs parties représentées par des sections. A l’inverse la section n’a aucune pertinence à être « exportée » ailleurs. C’est un découpage qui a du sens dans notre site. Il faut imaginer, même si ça n’est pas le cas, que le découpage en section pourrait faire l’objet d’une table des matières, car il s’agit bien d’une structure qui a du sens dans ce contexte mais par forcément ailleurs, à la différence de l’article.

Du zoning au gabarit

A chaque zone identifiée par le zoning, nous associons une balise de structure HTML parmi celles vues ci-dessus. Si vous avez touché un peu au HTML dans ces versions antérieurs, vous connaissez sans doute l’incontournable balise div. Elle permet de définir un bloc auquel on associe des styles en CSS mais elle ne donne aucune information sur la fonction du bloc. A éviter absolument à ce stade où les balises de structure sémantiques sont parfaites : header, footer, nav, etc.

L’exemple précédent de zoning donne ce gabarit HTML, où la structure est représentée visuellement, puis sous forme d’arborescence (au milieu) et enfin sous forme de code HTML :

A partir d’une maquette fil-de-fer, vous pouvez dessiner le gabarit comme ci-dessous (ici avec Balsamiq) ou directement produire la structure HTML dans un fichier.

Il reste bien sûr ensuite à compléter le document HTML avec le contenu, texte, image, vidéo, boutons, etc.

Exercice 1

Prenons ce gabarit :

Il vous est simplement demandé de le traduire en html.

Exercice 2

TypeNomTaille

zip
Idealo Accueil 1000k
  1. Récupérez l’archive fournie et décompressez-là dans un dossier de travail
  2. Analysez les zones d’information de cette page d’accueil du site idealo.fr, effectuez un zoning et déduisez-en un gabarit de page dessiné à la main ou sur une application de mockup

Balises sémantiques

Répétons-le, désormais la philosophie de combinaison entre HTML 5 et CSS (les feuilles de style) est :

  1. les balises HTML donnent en priorité la structure et le rôle des zones d’information
  2. les styles permettent la mise en forme et la mise en page

Nous verrons toutefois que les deux sont liés car il faut souvent un conteneur, un élément parent, pour disposer les enfants selon l’aspect désiré. L’usage était d’utiliser une balise spéciale <div> qui n’a aucun effet visuel mais permet de lui associer des styles (nous verrons cela en détail au chapitre suivant). Nous pouvons maintenant nous appuyer sur les balises de structure vues plus haut, qui servent de conteneur, <div> étant réservé aux petits blocs d’information qui doivent avoir une disposition particulière.

Partout où cela est possible, il faut aussi utiliser les balises sémantiques, qui s’attachent plus à dire à quoi sert l’élément plutôt qu’à son aspect. En voici un résumé, en deux tableaux, le premier montrant les balises essentielles à connaître.

Nous avons pour l’instant distingué les balises de « paragraphe » (p, h*) et les balises de « caractères » (b, i par exemple). Gardons cette idée jusqu’à la mise en page (chapitre V) où nous verrons les notions précises de « bloc » et « en ligne ». Le principe est simple, les premières balises occupe visuellement toute la largeur alors que les deuxième n’interrompe pas le flux du texte, de droite à gauche et de haut en bas.

Balises sémantiques de paragraphe

Voici ces balises que nous avons pour partie déjà vues. Dans le premier tableau figurent les éléments HTML d’usage courant, à connaître impérativement.

balise signification
<h*> titre de premier niveau (<h1>), deuxième niveau (<h2>) jusqu’à <h6>; ne pas s’attacher à la mise en forme, si on veut un titre de 1er niveau petit, on prend bien <h1> et les styles feront le reste.
<p>
<ul>
<ol>
  • p : représente un « vrai » paragraphe de texte (plusieurs lignes, alinéa éventuel) mais aussi un petit bout de texte précédé d’un retour à la ligne ; attention, il ne doit contenir que du texte, pour une composition plus riche (images, etc) utiliser div comme nous le verrons dans les chapitres suivants
  • ul : liste non ordonnée,  les éléments de liste sont en général du texte ou des liens
  • ol : liste ordonnée
<figure>
<figcaption>
  • figure : conteneur d’une image importante dans la page, qui n’a pas un rôle de simple illustration, avec ou sans légende (doit avoir pour enfant un élément img
  • figcaption : légende d’une figure, élément enfant de figure placé avant ou après img
<figure>
   <img src="/img/koala.png" alt="koala en captivité"/>
   <figcaption><em>Koala</em> en captivité</figcaption>
</figure>
balise signification
<blockquote> longue citation avec un lien :

<blockquote cite="https://twitter.com/realDonaldTrump/status/827885966509604865">
   MAKE AMERICA GREAT AGAIN!
</blockquote>
<address> informations de contact, adresse postale uniquement si c’est une adresse de contact
<code> code informatique

Titres et hiérarchies

Un petit point important sur les titres. Normalement, mais ceci fait l’objet de nombreux débats, il n’y a qu’une balise h1 dans un document, très important pour le référencement. Sauf à utiliser des articles qui ont logiquement à l’intérieur un h1 pour leur titre propre, car l’article est un contenu autonome utilisable ailleurs.

Ensuite, on descend dans la hiérarchie pour des sous-titres, en respectant l’ordre sans trou h2, puis h3 s’il y a des sous-sous-partie, etc.

Pour les sous-titres, la recommandation du W3C est de ne pas utiliser les balises h* mais soit p, soit br et span (vu plus tard).

<header>
  <h1>HTML 5.1 Nightly</h1>
  <p>A vocabulary and associated APIs for HTML and XHTML</p>
  <p>Editor’s Draft 9 May 2013</p>
</header>

Sources : Norme HTML 5.2

Première solution en utilisant la balise p (nous pourrons par la suite changer la mise en forme, notamment les espacements, la taille de police) :

HTML 5.1 Nightly

A vocabulary and associated APIs for HTML and XHTML

Editor’s Draft 9 May 2013

<h1>Ramones <br>
<span>Hey! Ho! Let’s Go</span>
</h1>
Deuxième solution avec span (encore une fois, nous verrons au chapitre IV comment réduire la taille du texte dans le span :

Ramones
Hey! Ho! Let’s Go

Beau

<header>
  <h1>HTML 5.1 Nightly</h1>
  <p>A vocabulary and associated APIs for HTML and XHTML</p>
  <p>Editor’s Draft 9 May 2013</p>
</header>
<h1>Ramones <br>
<span>Hey! Ho! Let’s Go</span>
</h1>

 

 

Balises sémantiques de caractère

Au niveau des caractères, donc sans retour à la ligne, les deux balises essentielles que nous avons déjà vues sont :

balise signification
<strong> texte important
<em> texte particulier par exemple en langue étrangère

Beaucoup moins courantes, mais dont l’existence ne doit pas être ignorée, voici d’autres éléments sémantiques de caractère :

balise signification
<q> courte citation
<abbr> abréviation (remplace <acronym>)

L'<abbr title="Organisation des Nations unies">ONU</abbr> a été fondée en 1945 après la Seconde Guerre mondiale.

 

<del> texte effacé
<ins> texte inséré
<samp> sortie d’ordinateur
<u> et <s> balises au statut particulier, dépréciées en HTML 4, elle ont été redéfinies avec un sens plus général mais une mise en forme par défaut identique

  • <u>, anciennement souligné, désigne un texte « stylistiquement différent » par exemple pour un mot mal orthographié
  • <s>, anciennement barré, désigne un mot qui n’est pas correct (le rendu est le même que pour <del> avec un mot barré)

Ce n’est pas le propos dans ce chapitre, toutefois sachez bien que ces balises ont un sens avant tout mais aussi une mise en forme par défaut. L’élément figure par exemple affiche un cadre discret autour de l’image. Comme nous le verrons très bientôt, toutes ses mises en forme pourront être modifiée ou supprimée par les CSS.

Exercice 3

TypeNomTaille

pdf
1880 Pictorialisme 100.1k

Le fichier PDF fourni présente une page sur laquelle vous allez repérez toutes les balises à utiliser. L’exercice consiste à découper les blocs d’information et à associer immédiatement une balise HTML selon deux critères :

  1. En priorité, le sens ou la fonction d’une zone, par exemple une image, un paragraphe, un titre
  2. La mise en forme particulière (ce critère est secondaire pour l’instant car nous n’avons pas vu les CSS mais nous pouvons identifier un bloc où la mise en forme change et attribuer une balise)

A retenir
1. Balises de structure

bla bla

2. Balises sémantiques

bla bla

Ressources utiles
Téléchargements
Pour aller plus loin

Laisser un commentaire