Pb avec usemap en xhtml 1.1 strict

WRInaute passionné
Salut,
J'ai un léger soucis de validation xhtml 1.1 strict sur une image cliquable.

Voila, je vous met direct le code et les résultat du W3C

***************************Ma page************************
**********************************************************
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > 
<head> 
blabla 
</head> 
<body> 
blabla 
<p><img src="france.gif" class="imglien" usemap="#france" title="Carte de France" alt="Carte de France et de ses régions" /></p> 
<map id="france"> 
<area shape="poly" coords="blablabla" 
href="./aquitaine.php" title="Aquitaine" alt="Les châteaux d'Aquitaine" /> 
</map> 
</body> 
</html>
****************************La validation***************************
********************************************************************
Code:
1 - Line 121, column 50: character "#" is not allowed in the value of attribute "usemap" 

..."france.gif" class="imglien" usemap="#france" title="Carte de France" alt="Ca 

2 - Line 121, column 50: reference to non-existent ID "#france" 

..."france.gif" class="imglien" usemap="#france" title="Carte de France" alt="Ca
Voilà, si vous savez pourquoi ...
 
WRInaute occasionnel
Salut,

Essaye,

<p><img src="france.gif" class="imglien" usemap="france" title="Carte de France" alt="Carte de France et de ses régions" /></p>

<map id="france">
<area shape="poly" coords="blablabla"
href="./aquitaine.php" title="Aquitaine" alt="Les châteaux d'Aquitaine" />
</map>
 
WRInaute impliqué
BadProcESs a dit:
T'a essayé usemap="france" tout simplement ?
Oui, ça devrait marcher. Les IDREF en XHTML 1.1 doivent commencer par une lettre, et peuvent être suivis par un nombre quelconque de lettres, chiffres, tirets, underscores, ...
 
WRInaute passionné
...

Ding.... Perdu... Quelqu'un d'autre ? :mrgreen:

Code:
usemap="france"

Vous pensez bien que j'ai tout essayé ces truc de virer, ou rajouter un caractère.

Et bien, le W3C ne vois plus l'erreur, mais..... L'image n'est plus cliquable.






Je savez que ferait sécher cette question. :roll:

Bon, si demain soir, pas de soluce, hop, un MP à Monique. :mrgreen:
 
WRInaute impliqué
Re: ...

Grantome a dit:
Je savez que ferait sécher cette question.
Euh... ta question portait sur la validation de ton code. Et visiblement ce point est réglé.

Tu pourrais nous donner une url pour qu'on regarde un peu plus en détail ?
 
WRInaute passionné
...

h**p://www.raikkonen-f1.com/test/chateaux-forts/chateaux-forts.php

Et la page vu par le w3c

h**p://validator.w3.org/check?uri=http%3A%2F%2Fwww.raikkonen-f1.com%2Ftest%2Fchateaux-forts%2Fchateaux-forts.php&charset=%28detect+automatically%29&doctype=%28detect+automatically%29&ss=1

:wink:
 
WRInaute passionné
...

Bon, je crois qu'on se mélange les pinceaux là.

Alors, tel que sur mon site, (voir le post au dessus pour le lien), l'image fonstionne parfaitement, mais le code ne passe pas le w3c à cause de la balise usemap qui contient un #

Si, je retire le # de la balise usemap, le W3c est ok, mais mon image n'est plus cliquable.


En gros, connaissez vous un site valide xhtml 1.1 strict qui utilise cette fonction de map cliquable pour que je puisse comprendre mon problème.

:mrgreen: C'est pas simple hein ?
 
WRInaute impliqué
En effet, c'est assez vicieux. Après recherches, il s'agirait en fait d'une erreur dans la recommendation du W3C.

En xhtml 1.1, lorsqu'on déclare un attribut devant prendre une valeur IDREF, cette valeur ne peut pas commencer par le caractère "#" (cf. les contraintes de validité).

Les spécifications xhtml font en général référence aux spécifications html 4.01 en ce qui concerne la sémantique. Or la sémantique définie par les spécifications html pour l'attribut usemap est de la forme : "uri [CT]".

Bilan : il n'est pas possible de faire "fonctionner usemap" dans un document xhtml 1.1 Strict...

Dans le cas de la page que tu as donnée en exemple, Grandtome, bien que le validateur du W3C ne repère que 2 erreurs, il y en a en fait 161 (on trouve pas mal de balises "<br>" par exemple).

Donc à mon avis :
- soit tu décides de rester en xhtml 1.1 et dans ce cas il faudra trouver une astuce pour l'image map (je pense que css peut être la clé) ;
- soit tu passes en xhtml 1.0 et dans ce cas il te suffit d'ajouter name="france" dans ta balise <map>. Ton image map fonctionnera, et ta page sera validée vu que l'attribut name ne pose pas de problème en xhtml 1.0

Dans les deux cas, il y a pas mal de ménage a faire dans le code pour qu'il soit valide (cf. les 161 erreurs, dont 2 seulement concernent l'histoire de l'image map).
 
WRInaute passionné
...

En xhtml 1.1, lorsqu'on déclare un attribut devant prendre une valeur IDREF, cette valeur ne peut pas commencer par le caractère "#" (cf. les contraintes de validité).

Les spécifications xhtml font en général référence aux spécifications html 4.01 en ce qui concerne la sémantique. Or la sémantique définie par les spécifications html pour l'attribut usemap est de la forme : "uri [CT]".

Bilan : il n'est pas possible de faire "fonctionner usemap" dans un document xhtml 1.1 Strict...

Ah bah oui, vu comme ça , le pb est résolu. Et m***.

Dans le cas de la page que tu as donnée en exemple, Grandtome, bien que le validateur du W3C ne repère que 2 erreurs, il y en a en fait 161 (on trouve pas mal de balises "<br>" par exemple).

???
De puis quand <br /> n'est pas autorisé en xhtml 1.1 strict ?

Certe, sémantiquement parlant, on peut le remplacer par un équivalent css, padding ou autre, mais en aucun cas il ne peut être consédéré comme erreur de validation au standart XHTML 1.1 Strict.

Ceci dit, je vais quand même tenter de les faire disparaitre un maximum.
 
WRInaute impliqué
Grantome a dit:
De puis quand <br /> n'est pas autorisé en xhtml 1.1 strict ?
Ca a toujours été autorisé, contrairement à "<br>" (dont je parlais).

Par contre, je me suis complètement planté en parlant des 161 erreurs :oops: J'avais sauvegardé ladite page en local pour pouvoir travailler dessus, et je viens juste de remarquer que lors de l'opération, tous les tags comme <br /> ou <meta /> deviennent <br> ou <meta> si on choisit l'option par défaut "Page web complète" au lieu de "HTML".

Sacré Windoz... ;-)
 
WRInaute passionné
...

Pfiouuuu... tu me rassures.

Je pensais déjà me tapper des valid sur différent site pour voir.
 
WRInaute impliqué
oui je sais que ce sujet date, mais bon, si ça peut aider des gens...

la page avec la technique de contournement n'existe plus, mais on la trouve bien évidemment sur archive.org


en tout cas, j'ai testé cette solution (pas si lourde que ça..) :
-http://hotel.calvi-location.fr
et ma foi ça valide et ça fonctionne :p
 
Nouveau WRInaute
Bonjour à tous,

j´ai une autre question par rapport à ce thème.
Est ce que dans une map, les attributs alt et title sont pris en compte pour l´indexation?

Merci d´avance.

Edith
 
Discussions similaires
Haut