Anomalie #2381

Corriger le niveau d'intertitre

Ajouté par tetue tetue il y a plus de 6 ans. Mis à jour il y a plus de 3 ans.

Statut:NouveauDébut:26/10/2011
Priorité:NormalEchéance:
Assigné à:-% réalisé:

0%

Catégorie:code généré
Version cible:3.2
Resolution: Navigateur:

Description

SPIP propose une hiérarchie des titres défectueuse pour les articles, qui passent directement du titre en h1 aux intertitres en h3, sans niveau intermédiaire, comme cela serait nécessaire pour structurer correctement (ie en HTML correct, sémantique, accessible, seo, toussa). Pour corriger cela, il suffit de déclarer ceci dans mes_fonctions.php :

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

Il serait temps de remettre en question ces intertitres, qui sont l'objet de correctifs systématiques de la part des personnes averties et de perpétuation d'une erreur involontaire pour les autres. Rendre le niveau d'intertitre optionnel, avec ce genre de configuration via espace privé, permettrait de changer en douceur, en ménageant la chèvre et la chou :

[x] utiliser des intertitres en h2 (correspondant à la réalité hiérarchie courante)
[ ] conserver les intertitres en h3 (rétrocompatibilité historique)

Étant davantage employé de part sa position dans la hiérarchie des titres, le h2 serait plus approprié par défaut.

En réalité, un champ de saisie, prérempli par défaut, serait plus indiqué :

Niveau d'intertitre : [ <h2 class="spip"> ]

Les thèmes CSS qui stylent les intertitres de SPIP déclareront h2.spip, h3.spip {...} comme cela se fait déjà pour s'assurer d'appliquer le style pareillement dans tous les sites, corrigés ou pas.

Historique

#1 Mis à jour par Joseph Larmarange il y a plus de 6 ans

Ne serait-ce pas l'occasion d'introduire en natif la gestion des intertitres hiérarchisés ?

#2 Mis à jour par cedric - il y a plus de 6 ans

  • Version cible mis à 3.0

#3 Mis à jour par marcimat 🌈 il y a plus de 6 ans

Je ne suis pas contre proposer un formulaire.
Il serait à mettre où ?
D'autres avis ?

#4 Mis à jour par b b il y a plus de 6 ans

J'ai retrouvé le fil de discussion qui a donné naissance à ce ticket :

http://thread.gmane.org/gmane.comp.web.spip.devel/61444/

Le problème était le suivant, la dist utilisait un fichier de fonctions qui demandait à SPIP de générer des intertitres en h2 par défaut :

http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/dist/mes_fonctions.php?rev=51174

Et comme la dist est une extension (c'est peut être d'ailleurs ça le problème) on se retrouvait avec des intertitres en h2 tout le temps sans possibilité de désactiver ce comportement (alors qu'un squelette comme Zpip est prévu pour fonctionner avec des intertitres en h3).

Comme le soulignait Fil, Davux a proposé une solution :

basculer sur html5 et h2 (sans les rendre optionnels dans le core). ensuite ceux qui ont besoin de changer pour garantir leur site a l'ancienne pourront toujours utiliser des mes-options, des plugins
dedies etc.

On me signale dans l'oreillette que tetue faisait déjà cette proposition il y a quelques années...

#5 Mis à jour par da vux il y a plus de 6 ans

b b a écrit :

Comme le soulignait Fil, Davux a proposé une solution :

basculer sur html5 et h2 (sans les rendre optionnels dans le core). ensuite ceux qui ont besoin de changer pour garantir leur site a l'ancienne pourront toujours utiliser des mes-options, des plugins
dedies etc.

Y'a confusion, personnellement j'ai jamais proposé ça. Ma proposition: http://thread.gmane.org/gmane.comp.web.spip.devel/61480/
C'est-à-dire en résumé:

- Pour les sites en HTML5, h2, h3, h4 etc. on s'en fiche car ce qui importe est le niveau de titre relativement à la balise "article" ou "section" la plus proche dans la hiérarchie.

- Pour les sites en HTML4, on ne peut pas graver h2 ou h3 ou autre dans la roche car le contexte peut changer: parfois un article est présenté sur sa propre page, parfois comme sous-contenu, et du coup je propose d'ajouter un argument à |traiter_raccourcis ou #ENV ou je sais pas quoi, mais qu'en gros le niveau de titre soit choisi au moment d'interpréter #TEXTE, car personne ne sait mieux que l'auteur du squelette quel est le niveau adéquat.

Pour l'archive : je n'ai jamais dit non plus qu'on devrait passer à HTML5 obligatoire (c'est beaucoup trop tôt), mais c'est hors-sujet ici donc je ne développerai pas. URL: http://article.gmane.org/gmane.comp.web.spip.devel/61491

#6 Mis à jour par Fil _ il y a environ 6 ans

  • Version cible changé de 3.0 à 3.1

(moi je suis pour tout passer en HTML5 dès que possible)

#7 Mis à jour par cedric - il y a plus de 3 ans

  • Version cible changé de 3.1 à 3.2

HTML5 ne résoud rien car si la spec dit en effet que chaque section a son propre niveau d'intertite, en pratique ça reste le plan de la page dans son ensemble qui fait foi pour le SEO

#8 Mis à jour par tetue tetue il y a plus de 3 ans

C'est moins un problème de SEO que d'accessibilité. Omettre un niveau de titre rompt la navigation par titres (par exemple avec une synthèse vocale), rendant difficile l'accès aux contenus des niveaux inférieurs. Concrètement, certains de ces utilisateurs passent à côté de tout ou partie du contenu. Cela relève d'un critère d'accessibilité de niveau A, c'est-à-dire bloquant.

Il y a certes, pour les webmestres avertis, la possibilité de corriger cela (via plugin ou autre).
Cela dépend aussi de la hiérarchie des titres du squelette en vigueur.

Mais il serait préférable d'éviter cette erreur par défaut, dans la distribution du SPIP natif :
- soit (peu pertinent) en ajoutant un h2 de principe avant chaque champ #TEXTE des squelettes de la dist ;
- soit (mieux) en corrigeant le code généré par défaut, comme suggéré en premier lieu dans ce ticket.

NB : le HTML5, qui autorise l'utilisation exclusive de titres de niveau 1, manque de support sur ce point et n'est donc pas une solution, effectivement.

Formats disponibles : Atom PDF

Ajouter une image à partir du presse-papier (Taille maximale: 1,25 Mo)