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 et abscons.

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.

{#TITRE,#URL_ARTICLE,#INTRODUCTION}

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 ?!?

  • Le 25 avril à 15:07, par Suske En réponse à : Corriger le niveau d’intertitre de SPIP

    Ben oui mais non Manu : la plupart des squelettes et la dist tiennent compte de ce problème et le corrigent comme indiqué par Tetue.
    Du coup il y a toute une reprise de l’existant sans laquelle « on se moque » tout autant de l’utilisateur. A mon sens ce qui a surtout manqué c’est une doc expliquant le truc et qu’on choisisse le moment de basculer.

  • Le 27 avril à 08:44, par Romy Têtue En réponse à : Corriger le niveau d’intertitre de SPIP

    Euh non Suske, ça n’a jamais été corrigé, que je sache, preuve en est que ce défaut persiste dans le skel article.html de la dernière dist en date. Il revient donc toujours au webmestre d’avoir la présence d’esprit de rectifier. C’est pourquoi je recommande que SPIP soit corrigé de façon à proposer une dist par défaut exempte d’anomalie à ce sujet.

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
  • Raccourcis : {{gras}} {italique} -liste [bla->url] <q> <quote> <code>.

Suivre les commentaires : RSS 2.0 | Atom