Voilà, c’est tout simple (enfin j’espère) : je suis en train de terminer un site sous SPIP pour un client sensible aux standards et toutes les pages sont valides W3C en XHTML 1.0 Strict. Toutes sauf une, qui contient une seule erreur, d’après le validateur W3C, qui me dit : there is no attribute « align ». Il s’agit en fait d’un attribut généré par SPIP à partir de la balise suivante, insérée dans mon squelette :
[(#LOGO_ARTICLE|left||image_reduire{100,100})]
Le code généré par SPIP à partir de cette balise est le suivant :
<img src="local/cache-vignettes/L100xH67/artonXXXXX.jpg" alt='' **align=****"left"** width='100' height='67' class='spip_logos' />
Comme vous le constatez, SPIP génère l'attribut align="left" dans la balise img alors que, comme vous savez, cela n'est pas admis en XHTML. Du coup, le validateur me renvoie une erreur.
Mais comme c'est du code généré, il ne se trouve pas dans mon squelette, et donc je ne peux pas le corriger. Alors comment faire ? comment empêcher SPIP de générer cet attribut ou bien comment le lui faire supprimer ?
J'ai cogité, j'ai cherché, j'ai pas trouvé. :-(
Dommage qu'il n'existe pas un filtre *supprimer_attribut* qui ferait l'inverse du filtre actuel *inserer_attribut*...
Merci de vos réponses.
Piffeo
Voilà, c'est tout simple (enfin j'espère) : je suis en train de terminer un site sous SPIP pour un client sensible aux standards et toutes les pages sont valides W3C en XHTML 1.0 Strict. Toutes sauf une, qui contient /une seule erreur/, d'après le validateur W3C, qui me dit : *there is no attribute "align"*. Il s'agit en fait d'un attribut généré par SPIP à partir de la balise suivante, insérée dans mon squelette :
[(#LOGO_ARTICLE|left||image_reduire{100,100})]
Le code généré par SPIP à partir de cette balise est le suivant :
Comme vous le constatez, SPIP génère l'attribut align="left" dans la balise img alors que, comme vous savez, cela n'est pas admis en XHTML. Du coup, le validateur me renvoie une erreur. Mais comme c'est du code généré, il ne se trouve pas dans mon squelette, et donc je ne peux pas le corriger. Alors comment faire ? comment empêcher SPIP de générer cet attribut ou bien comment le lui faire supprimer ?
J'ai cogité, j'ai cherché, j'ai pas trouvé.
Dommage qu'il n'existe pas un filtre /supprimer_attribut/ qui ferait l'inverse du filtre actuel /inserer_attribut/...
Merci de vos réponses.
Piffeo
Peut-être en enlevant le left de [(#LOGO_ARTICLE|left||image_reduire{100,100})]
De ce que je me rappelle j'avais fait comme ca pour valider xmhtl 1.0 strict un de mes sites et j'avais insérer une classe spéciale ou modifier la classe spip_logos des images générées pour qu'elles soient float:left; (pour forcer leur alignement à gauche donc).
Merci de ta réponse. Je n’avais pas songé que l’attribut align=« left » pouvait avoir été généré par le filtre |left. Je viens de tester et tu as complètement raison. J’ai fait comme tu dis et ça marche : l’attribut align=« left » est bien supprimé et un petit zest de CSS a fait le reste. Du coup le W3C me dit :
This Page Is Valid XHTML 1.0 Strict!Cool. Merci. Je comprends pas que je n’y ai pas pensé.
Piffeo.
Le 22 juillet 2008 22:24, Chourak <chourak@free.fr> a écrit :
Peut-être en enlevant le left de [(#LOGO_ARTICLE|left||image_reduire{100,100})]
De ce que je me rappelle j’avais fait comme ca pour valider xmhtl 1.0 strict un de mes sites et j’avais insérer une classe spéciale ou modifier la classe spip_logos des images générées pour qu’elles soient float:left; (pour forcer leur alignement à gauche donc).
rien de bien révolutionnaire mais juste pour signaler que déloger les scripts JS du header pour les placer en bas
de page (juste avant la fermeture du body) permet de gagner du temps sur le chargement d'un site spip surtout
quand celui-ci utilise des authentification et des accès-restreints.