Corriger le niveau d’intertitre de SPIP

12 septembre 2010,
par Romy Têtue

Mots-clefs associés à cet article :

SPIP propose par défaut une hiérarchie des titres défectueuse, sautant du h1 au h3, sans niveau intermédiaire. Comment corriger ce défaut sémantique ?

La hiérarchie des titres d’une page doit être logique et continue. Elle doit commencer par un h1 et ne pas comporter de sauts de niveau : un h1 ne peut être directement suivi d’un h3 ; il doit y avoir au moins un h2 entre les deux.

Titre manquant

Les squelettes par défaut de SPIP balisent correctement le titre principal de chaque page d’un h1 mais, dans le corps de texte, le seul niveau de titre disponible — nommé « intertitre » dans SPIP, et dont le raccourci de saisie est {{{intertitre}}} — est généré en h3. Cela cause donc, dans les articles et brèves, un saut brutal d’un h1 à un h3, sans h2 intermédiaire. Il y a une raison historique à cela, mais personne ne s’en souvient plus.

Un tel saut empêche certains internautes, notamment utilisateurices de lecteur d’écran, de percevoir les niveaux de titre inférieur. Ce problème d’utilisation relève d’un critère d’accessibilité de niveau A, c’est-à-dire bloquant. Concrètement, ces internautes ne peuvent accéder directement aux intertitres, au risque de passer à côté de tout ou partie du contenu. Quel dommage !

Bref, SPIP propose par défaut une hiérarchie des titres défectueuse pour les contenus, sautant directement du titre en h1 aux intertitres en h3, sans le niveau intermédiaire nécessaire pour structurer correctement, c’est-à-dire en HTML sémantique, valide, accessible, SEO, etc.

Comment corriger les intertitres de SPIP ?

1. Première solution, puisqu’il manque un niveau, ajoutons-le : dans le squelette article.html, ajoutez un titre intermédiaire de principe, par exemple <h2><:article:></h2>, juste avant la balise #TEXTE. Ça corrige le problème, mais c’est un peu artificiel… et sémantiquement un peu lourd.

2. Mieux, sachez qu’une variable de personnalisation permet de configurer le niveau d’intertitre de SPIP. Il suffit de déclarer ceci dans votre fichier mes_fonctions.php (s’il n’existe pas créez-le) :

$GLOBALS['debut_intertitre'] = "\n<h2 class=\"spip\">\n";
$GLOBALS['fin_intertitre'] = "</h2>\n";

3. Certains plugins corrigent cela, dont La trousse à Têtue.

4. Le mieux serait que SPIP corrige nativement ce problème, comme demandé par ce ticket d’anomalie #2381.

Vos commentaires

  • Le 25 janvier à 10:59, par MANU En réponse à : Corriger le niveau d’intertitre de SPIP

    Où je découvre que ce bug est signalé DEPUIS PLUS DE 5 ANS !! mais pourquoi les développeurs de SPIP se fichent autant de leurs utilisateurs ?!?

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Suivre les commentaires : RSS 2.0 | Atom