[OK] & dans les attributs

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

[OK] & dans les attributs

Message par arno. »

Bonjour, je voudrais faire un lien vers une adresse qui contient une esperluette. Par exemple :

Code : Tout sélectionner

google.fr/search?hl=fr&q=bonjour
J'ai trouvé un document qui a l'air de dire qu'en html, il faut garder l'esperluette, mais qu'en xhmtl, il faut la remplacer par &.

Or moi, j'aimerais bien utiliser & en html.
Cela fonctionne très bien avec firefox, mais j'aimerais savoir si cela peut poser des problèmes avec certains navigateurs, et si cela est valide selon la spécification.
Je n'ai pas réussi à trouver sur le site w3c de réponse à ces questions.

merci de votre aide.
Dernière modification par arno. le 11 mars 2006, 17:12, modifié 1 fois.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: & dans les attributs

Message par calimo »

arno. a écrit :J'ai trouvé un document qui a l'air de dire qu'en html, il faut garder l'esperluette,
Il se trompe. (en fait je dirais plutôt que c'est toi qui l'as mal lu :P ) Tu n'as qu'à valider pour essayer : sans le amp; le validateur hurle ! ;-)

Tu peux laisser & comme ça parce que ça marche. Mais normalement, même en HTML tu dois encoder les entités pour être valide. (à part peut-être s'il y a un espace après ?)

En HTML ce que tu as le droit d'écrire c'est &amp sans le ; à la fin mais seulement s'il y a un espace après (ce n'est pas le cas ici).

Si tu n'es pas convaincu :
http://www.la-grange.net/w3c/html4.01/c ... ml#h-5.3.2
Les auteurs devraient utiliser « & » (code décimal ASCII 38) au lieu de « & », pour éviter toute confusion avec le début d'une référence de caractère (délimiteur ouvrant de référence d'entité), Les auteurs devraient également utiliser « & » dans les valeurs d'attributs, étant donné que les références de caractères sont admises dans les valeurs d'attribut de type « CDATA ».
:wink:

Edit : utile aussi : http://www.la-grange.net/w3c/xhtml1/#diffs :)
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Re: & dans les attributs

Message par arno. »

merci pour ta réponse.

calimo a écrit :
Edit : utile aussi : http://www.la-grange.net/w3c/xhtml1/#diffs :)
Ce lien me laise perplexe :
Quand une valeur d'attribut contient une esperluette, il doit être exprimé comme une référence d'entité du caractère (par exemple "&"). Par exemple, quand l'attribut href de l'élément a pointe vers un script CGI qui accepte des paramètres, il doit être exprimé comme ceci http://my.site.dom/cgi-bin/myscript.pl? ... &name=user plutôt que http://my.site.dom/cgi-bin/myscript.pl? ... &name=user.
Ça a l'air d'être la même chose, et c'est très confusant tout ça.
Si j'ai bien compris, en html : on peut mettre '&' même si c'est mieux de mettre '&' tandis qu'en xhtml, on doit mettre '&amp' ?
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Mouais, en même temps il y a visiblement un bug sur cette traduction :? :lol:

C'est plus clair en anglais : http://www.w3.org/TR/xhtml1/#C_12
Juste en-dessus il est indiqué que c'était un comportement incorrect et malheureux des agents utilisateurs HTML de traiter le & comme &.

Mais de toutes façons en XHTML si tu ne le fais pas le parseur XML va s'arrêter sur l'erreur, donc tu es obligé de le faire :wink:

PS : tu as bien compris :wink:
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

merci
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Re: & dans les attributs

Message par Benoit »

calimo a écrit :En HTML ce que tu as le droit d'écrire c'est &amp sans le ; à la fin mais seulement s'il y a un espace après (ce n'est pas le cas ici).
Tu es sûr de ça ?
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Oui, certain !
http://www.la-grange.net/w3c/html4.01/c ... l#entities
Remarque : Dans SGML, dans certains cas, il est possible d'éliminer le caractère « ; » final après une référence de caractère (par exemple, à un saut de ligne ou immédiatement avant une balise).[...]
Ils précisent que ce n'est pas toujours possible (s'il n'y a pas d'espace p.ex) et que ce n'est pas recommandé, mais c'est possible :(
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Heu relis ce que tu as cité, nulle part il n'est fait mention d'espace ! Seulement les retours à la ligne et les ouvertures de balises, ce qui est suffisamment rare pour oublier complètement cette possibilité.

Sans compter qu'aucun navigateur ne considère le HTML comme du SGML, et ce ne sera bientôt plus le cas des spécifications non plus (HTML5) :)
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Benoit a écrit :Heu relis ce que tu as cité, nulle part il n'est fait mention d'espace ! Seulement les retours à la ligne et les ouvertures de balises, ce qui est suffisamment rare pour oublier complètement cette possibilité.
Euh... avec un "par exemple" qui indique qu'il faut se reporter aux specs SGML, ce dont je n'ai aucune idée... :?
En même temps l'exemple contraire est "au milieu d'un mot" ce qui n'est pas le cas s'il y a un espace après.
Entre les deux... c'est le flou le plus total comme souvent en HTML :lol: :?

En tous cas le validateur ne bronche pas s'il voit un &amp suivi d'un espace :roll:
Benoit a écrit :Sans compter qu'aucun navigateur ne considère le HTML comme du SGML, et ce ne sera bientôt plus le cas des spécifications non plus (HTML5) :)
Ouais bon, en même temps le "bientôt"... je doute :(
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

calimo a écrit :En tous cas le validateur ne bronche pas s'il voit un &amp suivi d'un espace :roll:
Ah c'est un peu plus solide comme indication :)
M'enfin je ne me fierais pas au validateur pour prouver que quelque chose est valide, seulement pour prouver que quelque chose est invalide (et encore, il y a des fausses erreurs dans le validateur CSS par exemple).
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités