Aide:Erreurs de lint/Bogue d’analyse des espaces

This page is a translated version of the page Help:Lint errors/tidy-whitespace-bug and the translation is 100% complete.

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 :