9 février 2008

HTML et les listes vides

Voilà une des bizarreries de HTML qui m’avait échappée jusqu’à il y a peu de temps.

html

Admettons que vous ayez un backoffice mal optimisé, et que, par conséquent, il se peut que vous génériez des listes vides.

Sémantiquement, rien ne différencie une liste vide écrite <ul></ul> d’un autre liste vide écrite <ul><li></li></ul>. Si l’on posait ce code sur du papier, notre feuille resterai blanche (d’ailleurs la page du navigateur reste blanche).

Si l’on s’attarde sur le sens de ces deux codes, dans le premier cas nous avons une liste vide, et, dans le second, une liste avec un élément vide. Au final tout est bien vide.
Et bien, croyez le ou non, la première version du code est considérée comme invalide par le validator du W3C, tandis que la seconde est considérée comme valide !

Si l’on analyse l’erreur renvoyée, celle-ci indique qu’il est interdit de construire une liste sans élément.
Dans un sens, le validateur n’a pas tord, puisque la liste n’a pas lieu d’être. Mais, dans le second cas, le validateur n’est pas capable de détecter que notre liste contient un seul et unique élément vide et qu’il s’agit donc d’une liste vide également (et qu’elle n’a donc pas lieu d’être non plus).

Ce petit bug, plutôt étrange, est une belle preuve que, dans le domaine du Web sémantique, il y a encore beaucoup de choses à faire.

Note : D’ailleurs, sur papier, la seconde possibilité pourrait soit laisser la feuille, soit créer une puce de liste sans libellé derrière, ce qui aurait encore moins de sens.

Commentaires

b.Almond - 21 février 2008

Il n’a pas vraiment tort dans le principe ou ce n’est pas une liste vide, mais une liste avec un élément manquant, ce qui est totalement différent…
Si l’on reprends l’exemple de ta feuille, c’est comme si tu écrivais quelques chose sur cette dite feuille, mais que tu n’avait pas d’encre dans ton stylo.

Laisser un commentaire

Commentaire