Balises documentaires en HTML5

Introduction

Durée : 45 minutes

La structuration logique

Un document peut être décrit comme une collection d'objets comportant des objets de plus haut niveau composés d'objets plus primitifs. Les relations entre ces objets représentent les relations logiques entre les composants du document. Par exemple [...] un livre est divisé en chapitres, chaque chapitre en sections, sous-sections, paragraphes, etc. Une telle organisation documentaire est appelée représentation de document structuré.

(traduit depuis la préface de (André et al., 1989))

DéfinitionStructuration logique (ou structuration documentaire)

On appelle structuration logique d'un contenu une inscription explicitant la structure de ce contenu en fonction de son organisation et des attributs intrinsèques qui le caractérisent plutôt qu'en fonction de propriétés de présentation sur un support.

Synonyme : structuration documentaire

DéfinitionDocument abstrait (ou document structuré)

Un document décrit par sa structure logique est appelé document abstrait, on parle aussi de document structuré logiquement (et souvent simplement de document structuré).

Exemple

<exercice>
    <enonce> Soit un triangle rectangle disposant d'un angle de 30 degrés. </enonce>
    <question> Donner la valeur des autres angles du triangle. </question>
    <indice> La somme des angles d'un triangle est égale à 180 degrés. </indice>
    <solution> 90 et 60 degrés. </solution>
</exercice>

DéfinitionStructuration physique (ou mise en forme)

On appelle structuration physique ou mise en forme d'un contenu une inscription décrivant la façon dont ce contenu doit être présenté sur un support donné.

DéfinitionDocument formaté

Un document décrit par sa structure physique est appelé document formaté, c'est en général également ce dont on parle quand on parle simplement de document (au sens d'information organisée pour être lisible par un humain).

Exemple

Fondamental

  • Il est possible de calculer une ou plusieurs structurations physiques pour une même structuration logique.

  • Il est possible de calculer d'autant plus de structurations physiques que la structuration logique est indépendante de ses supports de présentation.

Balisage documentaire en HTML

La structuration en HTML

Le langage HTML avant sa version 5 possède déjà plusieurs moyens pour exprimer la structuration logique d'une page web :

  • balises de titres h1 à h6 ;

  • balises d'emphase <em> et de contenu important <strong> ;

  • balises de citation <quote> et <blockquote> ;

  • etc.

Attention

Il est particulièrement déconseillé de détourner la fonction des balises, par exemple l'utilisation d'un tableau (<table>) à des fins de mise en forme (alignement de données). Ceci sera le rôle de CSS.

ComplémentStructures implicités

Avant HTML5 les balises de structuration sont insuffisantes.

Div et span

Définition

En HTML, l'élément div permet de définir un bloc de contenu générique non typé a priori.

Il est en général associé à un attribut class qui permet de lui associer un rôle dans la structuration de la page.

Syntaxe

<div class="nom-de-la-classe">...</div>

Exemple

<div class="source"><a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-div-element"> The div element has no special meaning at all. </a></div>

Définition

L'élément span fonctionne à l'instar de div pour les éléments de texte inline, à l'intérieur d'un paragraphe de texte (ou d'un div).

Exemple

<p>The span element <span class="note">doesn't mean anything</span> on its own.</p>

Exercice

Soit le texte suivant correspondant au journal en cours de rédaction Le Fil.

Le Fil
Actu
Exams annulés
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce velit eros, consectetur et tortor quis, iaculis molestie elit. In sed finibus purus, ut scelerisque nulla.
Nam hendrerit luctus purus blandit imperdiet. In viverra, justo vel vulputate mattis, tellus libero laoreet dolor, eu luctus augue elit vestibulum quam. Nulla ut massa iaculis, euismod leo sed, consectetur sapien. Nunc sollicitudin libero hendrerit vehicula congue.
Fresque du climat
Nulla porttitor, massa non luctus consectetur, eros neque accumsan metus, a commodo nulla eros sed nibh. Sed in eros sed lacus scelerisque convallis. Aliquam in ultrices diam. Morbi id leo in sem porta euismod. Maecenas purus justo, egestas ut felis sit amet, tincidunt lobortis tellus.
Praesent pellentesque scelerisque tristique.
BOP
TODO
Jeux
TODO
Crédits : BDE — Licence Creative Commons BY-SA

Créer une page HTML en structurant le contenu à l'aide des balises div, h1, h2 et h3 et p, en vue d'obtenir le résultat ci-après.

On ajoutera un <div id="header"> pour le titre principal et un <div id="footer"> en pied de page pour les crédits.

<!DOCTYPE html>
<html lang="fr">
<head>
  ...
</head>
<body>
<div id="header">
  <h1>...</h1>
</div>
<div id="menu">
  <ul>
    ...
  </ul>
</div>
<div id="content">
  <h2>Actu</h2>
  <div id="post1">
    ...
  </div>
  <div id="post2">
    ...
  </div>
</div>
...
<div id="footer">
  ...
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Le Fil, le journal des étudiant·es de l'UTC</title>
</head>
<body>
<div id="header">
  <h1>Le Fil</h1>
</div>
<div id="menu">
  <ul>
    <li><a href="#actu">Actu</a></li>
    <li><a href="#BOP">BOP</a></li>
    <li><a href="#Jeux">Jeux</a></li>
  </ul>
</div>
<div class="content" id="actu">
  <h2>Actu</h2>
  <div class="post">
    <h3>Exams annulés</h3>
    <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce velit eros, consectetur et tortor quis, iaculis molestie elit. In sed finibus purus, ut scelerisque nulla.</p>
    <p>Nam hendrerit luctus purus blandit imperdiet. In viverra, justo vel vulputate mattis, tellus libero laoreet dolor, eu luctus augue elit vestibulum quam. Nulla ut massa iaculis, euismod leo sed, consectetur sapien. Nunc sollicitudin libero hendrerit vehicula congue.</p>
  </div>
  <div class="post">
    <h3>Fresque du climat</h3>
    <p>Nulla porttitor, massa non luctus consectetur, eros neque accumsan metus, a commodo nulla eros sed nibh. Sed in eros sed lacus scelerisque convallis. Aliquam in ultrices diam. Morbi id leo in sem porta euismod. Maecenas purus justo, egestas ut felis sit amet, tincidunt lobortis tellus.</p>
    <p>Praesent pellentesque scelerisque tristique.</p>
  </div>
</div>
<div class="content" id="bop">
  <h2>BOP</h2>
  <p>TODO</p>
</div>
<div class="content" id="jeux">
  <h2>Jeux</h2>
  <p>TODO</p>
</div>
<div id="footer">
  <p>Crédits : BDE — Licence Creative Commons BY-SA</p>
</div>
</body>
</html>

Sections en HTML5

Présentation des balises de section

Ci-dessous les principales balises de section introduites par HTML5 :

<section>

Section générique regroupant un même sujet, une même fonctionnalité, de préférence avec un en-tête, ou bien section d'application web.

<nav>

Section possédant des liens de navigation principaux (au sein du document ou vers d'autres pages).

<article>

Section de contenu indépendante, pouvant être extraite individuellement du document ou syndiquée (flux RSS ou équivalent), sans pénaliser sa compréhension.

<aside>

Section dont le contenu est un complément par rapport à ce qui l'entoure, qui n'est pas forcément en lien direct avec le contenu mais qui peut apporter des informations supplémentaires.

<header>

Section d'introduction d'un article, d'une autre section ou du document entier (en-tête de page).

<footer>

Section de conclusion d'une section ou d'un article, voire du document entier (pied de page).

Source : http://www.alsacreations.com/article/lire/1376-html5-section-article-nav-header-footer-aside.html.

Sectionnement en HTML4 et en HTML5

L'intérêt des balises de section par rapport à HTML4

  • Avec HTML5, certains navigateurs peuvent :

    • adapter l'affichage du contenu selon le support (mobile ou non) ;

    • générer automatiquement une table des matières du document avec sauts rapides.

  • Ensuite, les technologies d'assistance (personnes aveugles...) peuvent délivrer un contenu adapté à son rôle dans le document (titre, paragraphe...).

    Enfin, les moteurs d'indexation améliorent l'accessibilité des pages bien structurées.

Exercice

Soit la page HTML suivante correspondante au journal en ligne Le Fil (en cours de rédaction).

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Le Fil, le journal des étudiant·es de l'UTC</title>
</head>
<body>
<div id="header">
  <h1>Le Fil</h1>
</div>
<div id="menu">
  <ul>
    <li><a href="#actu">Actu</a></li>
    <li><a href="#BOP">BOP</a></li>
    <li><a href="#Jeux">Jeux</a></li>
  </ul>
</div>
<div class="content" id="actu">
  <h2>Actu</h2>
  <div class="post">
    <h3>Exams annulés</h3>
    <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce velit eros, consectetur et tortor quis, iaculis molestie elit. In sed finibus purus, ut scelerisque nulla.</p>
    <p>Nam hendrerit luctus purus blandit imperdiet. In viverra, justo vel vulputate mattis, tellus libero laoreet dolor, eu luctus augue elit vestibulum quam. Nulla ut massa iaculis, euismod leo sed, consectetur sapien. Nunc sollicitudin libero hendrerit vehicula congue.</p>
  </div>
  <div class="post">
    <h3>Fresque du climat</h3>
    <p>Nulla porttitor, massa non luctus consectetur, eros neque accumsan metus, a commodo nulla eros sed nibh. Sed in eros sed lacus scelerisque convallis. Aliquam in ultrices diam. Morbi id leo in sem porta euismod. Maecenas purus justo, egestas ut felis sit amet, tincidunt lobortis tellus.</p>
    <p>Praesent pellentesque scelerisque tristique.</p>
  </div>
</div>
<div class="content" id="bop">
  <h2>BOP</h2>
  <p>TODO</p>
</div>
<div class="content" id="jeux">
  <h2>Jeux</h2>
  <p>TODO</p>
</div>
<div id="footer">
  <p>Crédits : BDE — Licence Creative Commons BY-SA</p>
</div>
</body>
</html>

Créer une page HTML5 utilisant les balises : header, nav, section, article, footer.

Solution en HTML5

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Le Fil, le journal des étudiant·es de l'UTC</title>
</head>
<body>
<header>
  <h1>Le Fil</h1>
</header>
<nav>
  <ul>
    <li><a href="#actu">Actu</a></li>
    <li><a href="#BOP">BOP</a></li>
    <li><a href="#Jeux">Jeux</a></li>
  </ul>
</nav>
<section id="actu">
  <h2>Actu</h2>
  <article>
    <h3>Exams annulés</h3>
    <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce velit eros, consectetur et tortor quis, iaculis molestie elit. In sed finibus purus, ut scelerisque nulla.</p>
    <p>Nam hendrerit luctus purus blandit imperdiet. In viverra, justo vel vulputate mattis, tellus libero laoreet dolor, eu luctus augue elit vestibulum quam. Nulla ut massa iaculis, euismod leo sed, consectetur sapien. Nunc sollicitudin libero hendrerit vehicula congue.</p>
  </article>
  <article>
    <h3>Fresque du climat</h3>
    <p>Nulla porttitor, massa non luctus consectetur, eros neque accumsan metus, a commodo nulla eros sed nibh. Sed in eros sed lacus scelerisque convallis. Aliquam in ultrices diam. Morbi id leo in sem porta euismod. Maecenas purus justo, egestas ut felis sit amet, tincidunt lobortis tellus.</p>
    <p>Praesent pellentesque scelerisque tristique.</p>
  </article>
</section>
<section id="bop">
  <h2>BOP</h2>
  <p>TODO</p>
</section>
<section id="jeux">
  <h2>Jeux</h2>
  <p>TODO</p>
</section>
<footer>
  <p>Crédits : BDE — Licence Creative Commons BY-SA</p>
</footer>
</body>
</html>

Valider un fichier HTML

Fondamental

Les fichiers HTML que l'on écrit et que l'on met en ligne doivent respecter les standard du W3C.

RappelUtiliser un éditeur colorisant

MéthodeAfficher la source

Les navigateurs web proposent une fonction permettant d'afficher la source HTML de la page que l'on consulte.

Sous Firefox : Clic droit puis View Page Source (ou ajouter view-source: devant n'importe quelle URL).

Exemple

<!DOCTYPE html>
<html lang="fr">
<head>
    <!-- Primary Meta Tags -->
    <meta charset="utf-8">
[...]
    <!-- Page Title -->
    <title>Gauthier Roussilhe</title>  
[...]
</head>
<body>
    <header class="header">
        <h1 class="site-title"><a href="../index.html">Gauthier Roussilhe</a></h1>
[...]
    </header>
[...]

view-source:https://gauthierroussilhe.com/post/paradoxes-enjeux.html (extraits)

MéthodeW3C Markup Validation Service

Le W3C propose un service permettant de valider le code HTML d'une page en ligne ou locale : https://validator.w3.org/

André89

Jacques André, Richard Furuta, Vincent Quint, Structured documents, Cambridge University Press, 1989.

Exemple de structuration logique

ExempleUn exercice structuré logiquement
 Exercice = {Enonce, Question, Indice, Solution} 
 avec  
 Enonce = Soit un triangle rectangle disposant d'un angle de 30 degrés. 
 Question = Donner la valeur des autres angles du triangle.
 Indice = La somme des angles d'un triangle est égale à 180 degrés.
 Solution = 90 et 60 degrés. 
<exercice>
    <enonce> Soit un triangle rectangle disposant d'un angle de 30 degrés. </enonce>
    <question> Donner la valeur des autres angles du triangle. </question>
    <indice> La somme des angles d'un triangle est égale à 180 degrés. </indice>
    <solution> 90 et 60 degrés. </solution>
</exercice>
ExempleUn exercice mis en forme

Soit une (mauvaise) mise en forme en HTML du même exercice :

<html>
    <body> Soit un triangle rectangle disposant d'un angle de 30 degrés. <br />
        <b> Donner la valeur des autres angles du triangle. </b>
        <br/> > <a href="ex001i01.html"> Vous avez besoin d'aide ? </a>
        <hr/>
        <a href="ex001s01.html"> Vérifier votre réponse ! </a>
    </body>
</html>

On voit que dans ce format la structure logique n'apparaît plus explicitement et qu'il n'est plus possible d'identifier l'énoncé, la question et la solution sans comprendre le contenu.

Fondamental

L'exemple montre que l'on peut calculer la mise en forme à partir de la structure logique, mais non l'inverse (dans le cas général).

Les avantages de la structuration logique

  • La pérennité des contenus

    En effet en étant dissociées d'un format physique, les informations sont indépendantes de l'évolution de ces formats. Il n'est donc pas nécessaire de reproduire régulièrement les contenus pour qu'ils restent compatible avec les différentes versions de formats, HTML ou Microsoft Word par exemple.

  • La maintenance des contenus

    La représentation logique ne nécessite pas le recours à des experts d'un langage de présentation, comme c'est le cas pour HTML par exemple, puisque le langage de représentation logique est défini par les experts en fonction du domaine.

  • La portabilité des contenus

    L'investissement consenti pour la production des contenus peut-être rentabilisé en dehors d'un système technique donné, puisque des contenus structurés logiquement sont potentiellement interopérables (à condition que cette structure soit effectivement connue et effectivement indépendante d'une structure physique). Par exemple l'information peut être diffusée sur des supports multiples (papier, Internet, mémoire mobile, etc.) ou sur des environnements matériels multiples (systèmes d'exploitation, taille d'écran, capacité de réseau, etc.).

  • La malléabilité des contenus

    La structure logique des contenus étant connue, il est possible de manipuler cette structure et ainsi faire coïncider la présentation à des contextes d'usage différents. Par exemple on pourra proposer une vision synthétique de l'information (en en sélectionnant les éléments essentiels) ou au contraire une vision exhaustive.

  • La séparation des métiers

    La séparation entre structure logique et physique permet également la séparation entre les métiers d'auteur (la production de l'information logique) et les métiers d'éditeur (la mise en forme de cette information pour un support). Cette séparation permet d'augmenter les volumes de production et de réduire les coûts, puisque qu'elle ne nécessite plus le recours à des experts pluridisciplinaires capables de maîtriser à la fois le contenu et son édition. Notons enfin que la séparation des métiers a également tendance à améliorer la qualité puisque les auteurs et les éditeurs peuvent se concentrer respectivement sur leur expertise.

Introduction générale à HTML

Rappel

HTML est l'un des trois standards qui ont permis de fonder le Web avec HTTP et URL.

RappelHTML est un standard du W3C
  • Le W3C est un consortium international composé d'industriels, des éditeurs de navigateurs et de centres de recherche.

  • Son rôle est de standardiser les technologies utilisées dans le domaine du Web.

  • Le W3C a été fondé en 1994 Tim Berners-Lee au MIT.

  • Le W3C compte 452 membres en 2021.

RappelUne petite histoire d'HTML
  • 1990 : première page HTML

  • 1995 : premier standard (HTML 2.0)

  • 2014 : HTML5

DéfinitionHTML5

Le HyperText Markup Language, abrégé HTML, HTML5 dans sa dernière version, est le langage de balisage conçu pour écrire les pages web.

HTML5 permet :

  • d'écrire du texte et des liens entre des pages (hypertexte),

  • d'inclure des ressources multimédias (images, des vidéos...),

  • de structurer la page (balisage sémantique),

  • de mettre en forme le contenu (balisage physique avec CSS),

  • de programmer des interactions avec l'utilisateur (par exemple des formulaires de saisie, avec JavaScript).

(Source modifiée : Wikipédia)

ExempleHello World
<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <title>Hello</title>
  </head>
  <body>
    <h1>Hello World</h1>
  </body>
</html>
MéthodeCréer un document HTML

Un document HTML est un simple fichier texte, il peut donc être créé avec n'importe quel éditeur de texte.

On utilise a minima des éditeurs colorisant comme :

  • notepad++ sous Windows

  • gedit sous Linux

On préfère des éditeurs colorisant et validant comme :

MéthodeConsulter un document HTML
  • Un document HTML se consulte avec un navigateur comme Firefox ou Chrome à l'aide du menu permettant d'ouvrir un fichier (par exemple CTRL+O avec Firefox).

  • On peut toujours consulter le code source d'un fichier HTML en cours de consultation que ce soit un fichier local ou un fichier en ligne (par exemple clic droit sur la page avec Firefox).

ComplémentOutils d'édition HTML en ligne
Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.