Je cours mon site via le validateur du W3C en essayant de le valider comme XHTML 1.0 Strict et je suis tombé sur une erreur de validation particulièrement collante (au moins dans mon expérience). J'inclus certains badges de différents services dans le site qui fournissent leur propre API et du code pour l'inclusion sur un site externe. Ces badges utilisent javascript (pour la plupart) pour remplir un élément que vous insérez dans le balisage qui nécessite un enfant. Cela signifie qu'à la fin, un balisage parfaitement valide est généré, mais pour le validateur, tout ce qu'il voit est une balise parent-enfant incomplète sur laquelle il renvoie une erreur. En guise de mise en garde, je comprends que je pourrais me plaindre auprès des services que leurs badges ne sont pas validés. Sans cela, je suppose que quelqu'un a validé son code en incluant des badges comme celui-ci, et c'est ce qui m'intéresse. Les réponses telles que «Se plaindre à Flickr de son badge» ne m'aideront pas beaucoup.Comment écrivez-vous Valid XHTML 1.0 Strict code lorsque vous utilisez javascript pour remplir un élément qui nécessite un enfant?
Une mise en garde supplémentaire: Je préférerais que, autant que possible, le balisage reste sémantique. C'EST À DIRE. L'ajout d'une étiquette li vide ou d'une paire tr-td pour la valider serait une solution indésirable, même si cela peut être nécessaire. Si c'est la seule façon de le faire valider, eh bien, mais s'il vous plait, penchez les réponses vers un balisage sémantique.
À titre d'exemple:
<div id="twitter_div">
<h2><a href="http://twitter.com/stopsineman">@Twitter</a></h2>
<ul id="twitter_update_list">
<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
<script type="text/javascript" src="http://twitter.com/statuses/user_timeline/stopsineman.json?callback=twitterCallback2&count=1"></script>
</ul>
</div>
Remarquez les balises ul d'emballage le javascript. Cela finit par être rempli avec lis via le script, mais pour le validateur, il ne voit que le ul peu peuplé.
Merci d'avance!
On dirait que Twitter utilisent un rappel qui insère le xhtml. Pour Twitter, vous pouvez ouvrir http://twitter.com/javascripts/blogger.js et consulter twitterCallback2() et le changer pour fonctionner comme vous le préférez. Passez simplement le nouveau nom de la fonction de rappel dans le paramètre de rappel de la deuxième étiquette de script. –