Ticket #1936 (closed defect: fixed)
Regression in XHTML validator
Reported by: | bruno-666 | Owned by: | franck |
---|---|---|---|
Priority: | normal | Milestone: | 2.8 |
Component: | module:admin | Version: | 2.6.1 |
Severity: | normal | Keywords: | |
Cc: |
Description
Le validateur XHTML ne fonctionne plus depuis la version 2.6.
Sur un billet vide : erreur <p><br></p> car la balise br n'est pas fermée Sur un billet comportant une image : erreur car la balise image n'est pas fermée.
Cette erreur vient du fait que dans le fichier _post.js c'est le contenu de l'iframe qui est envoyée au validateur. Or ce contenu est généré en Javascript par manipulation du DOM (et donc des balises <br>, <hr>, <img> etc. Ce contenu ne sera donc jamais valide en XHTML.
Solutions possibles :
- Le bouton de validation déclenche l'enregistrement du billet en cours et c'est le contenu du textarea qui est envoyé au validateur.
- Le contenu de l'iframe est manipulé en js pour rajouter les / sur les balises autofermantes (lourd) juste avant l'envoi au validateur.
- Dotclear passe en HTML 5 ;-)
Change History
comment:1 Changed 11 years ago by franck
- Owner changed from team to franck
- Milestone changed from A definir to 2.7
comment:2 Changed 11 years ago by franck
Voir http://validator.w3.org/#validate_by_input (validation par fragment)
comment:3 Changed 11 years ago by franck
- Milestone changed from 2.7 to 2.7.1
Finalement je renvoie à plus tard, n'ayant pas de solution élégante pour l'éditeur historique.
Remplacer le bouton par un lien prive l'utilisateur d'une fonction qui tourne correctement avec le mode wiki ou markdown (par exemple). Dommage de s'en priver, même si de plus en plus on basculera vers le HTML5.
comment:5 Changed 10 years ago by franck
Dotclear est passé en HTML5 (côté admin et public), mais ça ne règle pas le problème, qui d'ailleurs n'en est peut-être pas un puisqu'il faudrait finalement proposer un validateur HTML5 plutôt que XHTML.
comment:6 Changed 10 years ago by franck
Et après revue du code en question, le service de validation de www.htmlhelp.com ne gère pas du tout le HTML5.
Reste à trouver un remplaçant et permettre le choix côté Clearbricks (html.validator/class.html.validator.php), ou virer la fonction.
comment:7 Changed 10 years ago by franck
Et il y a peut-être moyen d'utiliser l'API du validateur du W3C (voir https://validator.w3.org/docs/api.html).
comment:8 Changed 10 years ago by franck
Maintenant j'hésite à remplacer directement le code actuel ou proposer une alternative dans Clearbricks. À discuter à la prochaine réunion IRC…
comment:9 Changed 10 years ago by franck <carnet.franck.paul@…>
- Status changed from new to closed
- Resolution set to fixed
(In [37646518675d]) Remove XHTML Markup validator from dcLegacyEditor, dirty way to fix #1936
On va plutôt remplacer cette validation par un lien vers les validateurs du W3C (par exemple), et pourquoi pas lancer la validation directement (API ou autre ?)