web-dev-qa-db-fra.com

Comment maintenir la conformité aux normes W3C d'un thème

Lorsque j'ai écrit un thème, je me suis assuré qu'il était compatible avec XHTML 1.1 et CSS 2.1. Ensuite, j'ai ajouté des plugins et le thème n'est plus compatible avec XHTMl 1.1. Ensuite, j'ai utilisé la police Google API dans mon CSS et il est plus compatible CSS 2.1.

Est-il possible de maintenir la conformité sans me débarrasser des plugins, polices, etc. ou devrais-je simplement ignorer les erreurs de validation?

10
James

Correction, votre thème était toujours compatible avec XHTML 1.1 et CSS 2.1, mais les plug-ins que vous avez ajoutés ont injecté du code supplémentaire que n'était pas conforme.

Malheureusement, il n'y a pas de moyen facile de maintenir la conformité si vous utilisez des plug-ins. Le mieux que vous puissiez faire est de valider votre thème et l'ensemble du balisage dont vous êtes personnellement responsable, puis espérez que les autres développeurs ont pris le temps de valider leur propre travail.

L’alternative est beaucoup plus de travail de votre part - vous pouvez toujours utiliser la fonctionnalité principale des plug-ins, mais ne leur permettez pas d’envoyer any markup au navigateur. Ajoutez votre propre couche personnalisée qui décroche tout ce que le plug-in touche, et créez votre propre tampon de sortie. C'est la manière seulement que vous aurez le contrôle sur le style de balise envoyé au navigateur.

Plusieurs plug-ins commencent à utiliser HTML 5 ... d'autres essaient d'utiliser CSS3. Si vous installez ces plug-ins et ne prenez pas les mesures nécessaires pour nettoyer et valider leur sortie, votre site cessera de valider correctement.

5
EAMann

Chaque plugin va générer le code qu'il veut générer et certains d'entre eux ne seront pas compatibles XHTML 1.1. Le seul moyen raisonnable de corriger ce problème consiste à vérifier chacun d'eux et à modifier les contrevenants ou à demander au développeur de modifier ou d'utiliser vos modifications comme correctif.

Sinon, vous pouvez essayer d’écrire un filtre pour le nettoyer, mais essayer de saisir tous les cas particuliers semble être une version de mon propre cauchemar personnel et cela affecterait également les performances pour un bénéfice douteux.

Avez-vous un client/responsable qui le souhaite ou est-ce simplement quelque chose qui est supposé être un "agréable à avoir?" (Oui, il y en a qui sont très sensibles. Je ne suis cependant pas de ceux-là.)

Cela dit, XHTML perd son statut "enfant blond}" sur le Web; même Tim Berners-Lee- l’a dit en 2006:

Certaines choses sont plus claires avec le recul de plusieurs années. Il est nécessaire d'évoluer HTML progressivement. La tentative visant à amener le monde à basculer vers XML, y compris des guillemets autour des valeurs d'attributs et des barres obliques dans des balises vides et des espaces de noms vides, n'a pas fonctionné. Le grand public générant du code HTML n'a pas bougé, principalement parce que les navigateurs ne se sont pas plaints. Certaines grandes communautés se sont déplacées et profitent des fruits de systèmes bien formés, mais pas toutes. Il est important de maintenir le code HTML progressivement, de poursuivre la transition vers un monde bien formé et de développer plus de pouvoir dans ce monde.

Vous voudrez peut-être aussi lire HTML5 est tellement plus facile à écrire que XHTML 1.0. over sur StackOverflow. Voici leur résumé:

En ce qui concerne la syntaxe, lorsque vous utilisez HTML5, vous obtenez un balisage plus propre, plus facile à lire, qui appelle toujours le mode standard. Lorsque vous utilisez XHTML 1.0 (sous la forme text/html), vous spécifiez un tas de crud (afin de valider par rapport à un dtd de mauvaise qualité) que le navigateur fera automatiquement.

8
MikeSchinkel

Le respect des normes ne garantit pas que votre site Web fonctionnera dans tous les navigateurs. Ignorez la conformité aux normes et concentrez-vous sur les tests avec autant de navigateurs que possible.

2
tomdxw

Vous pouvez mettre en tampon la totalité de la sortie de votre site, puis la ranger dans du code HTML compatible. Le mieux est que cela peut être fait de manière entièrement automatisée:

Vous pouvez activer la mise en mémoire tampon de sortie sur le thème init ou sur les points d'ancrage associés (par exemple * setup_theme * hook).

Voici deux fragments de code. La première montre que vous démarrez la mise en mémoire tampon de sortie et lisez la mémoire tampon plus tard:

<?php
ob_start();
?>
  …
<?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>

La seconde montre certaines des options de configuration en action:

/* Tiny Configuration */
$config["clean"]         = true;
$config["hide-comments"] = true;
$config["output-xhtml"]  = true;
$config["indent-spaces"] = 2;
$config["tab-size"]      = 2;
$config["wrap"]          = 0;

$buffer = ob_get_clean();
$tidy   = tidy_repair_string($buffer, $config);

echo $tidy;

Je parie qu’il existe déjà un plugin wordpress pour le faire. Voyons voir:

1
hakre