Aide:Erreurs de lint/Bogue d’analyse des espaces
Le texte d'aide sur cette page référence Tidy qui n'est plus utilisé sur la grappe Wikimedia. Il a été remplacé par RemexHtml en juillet 2018. |
Problème
Tidy déplace les espaces d'une balise imbriquée dans la balise englobante.
<span>a </span><span>b</span>
devient
<span>a</span> <span>b</span>
après être passé par Tidy.
Notez comme le caractère espace est déplacé de l'intérieur du span vers l'extérieur, et comme il sépare les deux span. C'est un problème lorsque les spans ont des attributs CSS qui impactent les espaces. Par exemple, lorsque la propriété CSS white-space est appliquée aux éléments.
<span style='white-space:nowrap'>a </span><span style='white-space:nowrap'>b</span>
devient
<span style='white-space:nowrap'>a</span> <span style='white-space:nowrap'>b</span>
.
Donc, même si il y a 30 spans à la suite, puisque Tidy déplace le caractère espace, le navigateur peut donner un rendu avec un passage à la ligne entre les spans. Néanmoins, des analyseurs HTML5 comme Parsoid ou RemexHTML ne déplaceront pas les caractères espace. Il n'y a donc plus d'endroit pour le navigateur pour passer à la ligne puisqu'il n'y a plus de caractère espace entre les spans. Le résultat est que la ligne de spans peut s'étendre indéfiniment à l'horizontale.
Solution
Ceci affectera probablement les pages qui ont une liste d'entrées. Ceci provient généralement de modèles. Les éditeurs devront faire ce que fait Tidy en déplaçant le caractère espace. Une solution simple serait d'ajouter un caractère espace après le span dans le modèle concerné comme dans cet exemple sur itwiki qui est utilisé dans w:it:Template:Campioni_NBA et dont le rendu était incorrect avant cette modification.
Outils
Les outils suivants peuvent aider pour corriger les problèmes dus au bogue d'espace de Tidy :
- WPCleaner : se reporter aux instructions sur l'utilisation de WPCleaner pour corriger les erreurs détectées par Linter. Les problèmes dus au bogue d'espace de Tidy peuvent être remontés par WPCleaner en tant qu'erreur erreur #536 du projet Correction Syntaxique.