Jump to content

Aide:Erreurs Lint/HTML5 mal imbriqué

From mediawiki.org
This page is a translated version of the page Help:Lint errors/html5-misnesting and the translation is 100% complete.

Cette page concerne l'erreur html5-misnesting de Linter.

Wikicode d'entrée

<span>a

b</span>

Résultat fourni par Tidy

Tidy nettoie la sortie de l'analyseur PHP pour générer :

<p><span>a</span></p>
<p><span>b</span></p>

Sortie HTML5 (ex: Parsoid, RemexHTML)

Mais un outil basé sur HTML5 nettoie la sortie de l'analyseur PHP différemment et génère :

<p><span>a</span></p>
<p>b</p>

Correction recommandée

Modifier le wikicode en :

<span style="...">a</span>

<span style="...">b</span>

ou en :

<div style="...">
a

b
</div>

Autres conseils

Les pages sont parfois rangées dans le groupe d'erreur Balise mal imbriquée avec des rendus différents en HTML5 et HTML4 même si le vrai problème est une balise d'ouverture ou de fermeture errante. S'il y a des erreurs balise de fin manquante ou balise vide sur la page que vous essayez de corriger, corrigez-les toutes d'abord, et l'erreur de balise mal gérée peut disparaître à la suite de ces corrections. Parfois, l'erreur balise de fin manquante n'est même pas affichée, même si c'est l'erreur réelle (voir le cas d'utilisation ci-dessous qui commence par " Cette ligne est mise en évidence... ").

Une des manières principales que cela impacte les pages du wiki est lorsqu'un span (ou tout autre balise de la liste des balises concernées ci-dessous) est utilisée pour encadrer une liste. En raison des interactions entre un bogue dans l'analyseur syntaxique de PHP (qui est difficile à corriger et est la raison pour laquelle la catégorie pwrap-bug-workaround de linter existe - Parsoid n'a pas ce bogue) et la spécification de l'analyseur HTML5, lorsque Tidy est supprimé, ces conteneurs ne s'appliqueront plus à la liste.

Si la balise ‎<span> est utilisée pour encadrer une liste, utiliser la balise ‎<div> à la place. C'est la bonne façon de le faire puisqu'une liste est une structure de bloc et que ‎<div> est plus approprié que ‎<span> ce qui a plus de sens dans des contextes de texte en ligne. C'est la correction recommandée. Voir cette modification sur la wikipedia italienne pour un exemple.

Mais selon le cas, appliquer ce type de correction dans le tableau ci-dessous.

Cas d'utilisation Marquage alternatif ou correction suggérée
balise ‎<span> utilisée pour le formatage (taille de la police, soulignement, etc.) Utiliser la balise de format appropriée (par exemple la balise ‎<small> si vous réduisez la taille de la police; voir l'exemple sur metawiki)
balise ‎<del> encadrant une liste dont les éléments sont à barrer
  • Option 1 : utiliser une balise ‎<s> à la place
  • Option 2 : encadrer chaque élément individuellement avec la balise ‎<del>
balise ‎<span> avec des styles vides Débarassez-vous de la balise span
balise ‎<span> enveloppant les balises de blocs dans tous les cas Utilisez une balise ‎<div> à la place (ajouter style="display:inline;" si la rupture de ligne n'est pas souhaitée)
Modèle utilisant des balises ‎<span> qui encadrent un modèle qui lui-même utilise des balises ‎<div> Modifier le modèle du conteneur pour utiliser les balises ‎<div> tant que le modèle de conteneur n'est pas utilisé à l'intérieur de balises span. OU BIEN si le modèle du conteneur applique une classe telle que nowrap, appliquer à la place cette classe dans le modèle interne.
<span style="font-size: 80%"><sup>2</sup>Lorem ipsum etc. Cette ligne est mise en surbrillance car elle contient une erreur mais le problème réel est qu'il manque une balise span à la fin de la ligne. Ajouter la balise de fin manquante (ou supprimer la balise ouvrante, si elle était supplémentaire) pour corriger le problème.
You need to use a <span> tag to do that.... Un éditeur a entré une balise en tant qu'exemple mais il aurait dû l'échapper. Remplacer le caractère ouvrant < par &lt;.
This is an <abbr>abbreviation<abbr> (trailing opening tag inserted by mistake) Un éditeur a entré un ensemble de balises ouvrantes et fermantes, mais il manque un / dans la balise fermante. Remplacer la balise finale ‎<abbr> par ‎</abbr> .
Barre verticale utilisée dans une signature Si un éditeur a utilisé le caractère barre verticale (|) dans sa signature avec un marquage ou des balises, et que cette signature est utilisée dans un modèle, la barre verticale est interprétée comme un séparateur de paramètres du modèle. Remplacer la barre verticale par &#124;

Attention particulière à ‎<sub>, ‎<sup>

Sur les pages avec des formules mathématiques, le fait de combiner des balises sub et sup peut modifier pernicieusement la signification de la formule. Il est important de corriger ces cas.

Balises concernées

Les balises suivantes sont concernées :

ABBR, BDI, BDO, CITE, DATA, DEL, DFN, INS, KBD, MARK,
Q, RB, RP, RT, RTC, RUBY, SAMP, SPAN, SUB, SUP, TIME, VAR

Voir aussi

  • phab:T176353 Parsoid ferme la balise <del> non fermée tandis que Tidy ne le fait pas
  • phab:T176363 Nouvelle catégorie de Linter à haute priorité pour un sous-ensemble de balises mal imbriquées dont le comportement changera avec un analyseur HTML5