Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[XHTML] Id, name et radio

6 views
Skip to first unread message

Fabrice BONNY

unread,
Mar 1, 2002, 4:20:55 AM3/1/02
to
Bonjour à tous,
j'ai un sérieux problème. Le XHTML définit l'attribut "name" comme
formellement déprécié et remplacé par l'attribut "id". Petite question
: comment fait-on pour les boutons radios ? On ne peut plus employer
name pour les regrouper et on ne peut pas leur donner le même id.
Merci de m'éclairer parce que là, c'est l'impasse.

--
@++
Fabrice

Sauf erreur(s)...

laurent prevosto

unread,
Mar 1, 2002, 4:46:13 AM3/1/02
to

Je lis :

"Finally, note that XHTML 1.0 has deprecated the name attribute of the
a, applet, form, frame, iframe, img, and map elements, and it will be
removed from XHTML in subsequent versions."

Il n'est pas question de input...

lp

Alain Ketterlin

unread,
Mar 1, 2002, 5:01:04 AM3/1/02
to
"Fabrice BONNY" <fbo...@areste.com> writes:

> j'ai un sérieux problème. Le XHTML définit l'attribut "name" comme
> formellement déprécié et remplacé par l'attribut "id".

Pas tout a fait. La rec. dit :

| Note that in XHTML 1.0, the name attribute of these elements is
| formally deprecated,

Le _these_ fait reference aux elements mentionnes un peu plus haut, et
<button> n'en fait pas partie. id remplace name seulement pour les
identificateurs de fragments, si je comprends bien.

> Petite question : comment fait-on pour les boutons radios ?

Comme avant je presume, avec name.

-- Alain.

Fabrice BONNY

unread,
Mar 1, 2002, 4:47:06 AM3/1/02
to
> Je lis :
>
> "Finally, note that XHTML 1.0 has deprecated the name attribute of
the
> a, applet, form, frame, iframe, img, and map elements, and it will
be
> removed from XHTML in subsequent versions."
>
> Il n'est pas question de input...

Tout d'abord, merci. C'est plus le paragraphe suivant qui me pose
problème :

In XML, fragment identifiers are of type ID, and there can only be a
single attribute of type ID per element. Therefore, in XHTML 1.0 the
id attribute is defined to be of type ID. In order to ensure that
XHTML 1.0 documents are well-structured XML documents, XHTML 1.0
documents MUST use the id attribute when defining fragment
identifiers, **even on elements that historically have also had a name
attribute**. See the HTML Compatibility Guidelines for information on
ensuring such anchors are backwards compatible when serving XHTML
documents as media type text/html.

Fabrice BONNY

unread,
Mar 1, 2002, 4:52:42 AM3/1/02
to

Avant tout, merci. Poussons le raisonnement un peu plus loin. J'ai mis
des <label> sur mes éléments. Or l'attribut for attend l'id de
l'élément auquel il se rattache, ce qui fait que pour l'instant, j'ai
ça :

<label for="foo">Bar</label>
<input type="radio" id="foo" name="foo" value="1" />Truc
<input type="radio" name="foo" value="2" />Machin

C'est valide, mais c'est "un peu bancal", non ? Je m'inquiète pour la
perennité de la chose.

laurent prevosto

unread,
Mar 1, 2002, 5:40:26 AM3/1/02
to
Fabrice BONNY wrote:
>>Je lis :
>>
>>"Finally, note that XHTML 1.0 has deprecated the name attribute of
>>
> the
>
>>a, applet, form, frame, iframe, img, and map elements, and it will
>>
> be
>
>>removed from XHTML in subsequent versions."
>>
>>Il n'est pas question de input...
>>
>
> Tout d'abord, merci. C'est plus le paragraphe suivant qui me pose
> problème :
>
> In XML, fragment identifiers are of type ID, and there can only be a
> single attribute of type ID per element. Therefore, in XHTML 1.0 the
> id attribute is defined to be of type ID.
Là on explique les elements ont un attribut 'id' et un seul, qui est de
type ID (pas un CDATA donc) ce qui assure l'unicité...
http://www.w3.org/TR/2000/REC-xml-20001006#id
Jusqu'ici tout va bien...

> In order to ensure that
> XHTML 1.0 documents are well-structured XML documents, XHTML 1.0
> documents MUST use the id attribute when defining fragment
> identifiers, **even on elements that historically have also had a name
> attribute**.

Et donc pour identifier un fragment particulier, on doit utiliser
l'attribut 'id' et non plus 'name' comme on pouvait le faire en HTML
puisque 'name' n'assure pas l'unicité (c'est un bête CDATA)... ça ne
rajoute pas de fonctionnalité en plus, juste un test de contrainte.

D'ailleurs, pour revenir à ta remarque, c'est pas plus mal puisqu'on
utilisait 'name' et pour adresser un fragment bien particulier (via <a
href="#foo"> par exemple) et pour grouper des radio-boutons ce qui n'a
pas grand chose à voir et n'était pas super-propre...

> See the HTML Compatibility Guidelines for information on
> ensuring such anchors are backwards compatible when serving XHTML
> documents as media type text/html.

Bon alors là c'est plus la merde.
On nous explique qu'en XHTML on définit les framents avec l'attribut
'id'... seulement en HTML on faisait plutôt ça avec 'name'. Conclusion
si on veut définir un fragment qui soit adressable en XHTML et en XML on
est obligé de mettre les 2...

Voilà

Laurent


laurent prevosto

unread,
Mar 1, 2002, 5:54:41 AM3/1/02
to
Pourquoi ça serait bancal ?
- 'id' désigne l'uniqueID de ton premier input... et d'ailleurs tu
l'utilises pour y rattacher un label.
- 'name' permet de regrouper les deux radio-boutons

Bon, tu as utilisé deux fois 'foo' ce qui est un peu confusant comme
disent les américains, et surtout ici un peu inutile vu que je suis
certain que tu vises des navigateurs qui comprennent bien 'id'...
En écrivant ainsi c'est plus clair non ?

<label for="foo">fou</label>
<input type="radio" id="foo" name="fubar" value="1" />Truc
<label for="bar">barre</label>
<input type="radio" id="bar" name="fubar" value="2" />Machin

Voilà

Laurent


Fabrice BONNY

unread,
Mar 1, 2002, 6:00:18 AM3/1/02
to
> Là on explique les elements ont un attribut 'id' et un seul, qui est
de
> type ID (pas un CDATA donc) ce qui assure l'unicité...
> http://www.w3.org/TR/2000/REC-xml-20001006#id
> Jusqu'ici tout va bien...

C'était déjà le cas en HTML 4.
http://www.w3.org/TR/html401/struct/global.html#adef-id

> Et donc pour identifier un fragment particulier, on doit utiliser
> l'attribut 'id' et non plus 'name' comme on pouvait le faire en HTML
> puisque 'name' n'assure pas l'unicité (c'est un bête CDATA)... ça ne
> rajoute pas de fonctionnalité en plus, juste un test de contrainte.

En HTML, qu'est qui n'était pas un bête CDATA ?
; ^)

> Bon alors là c'est plus la merde.
> On nous explique qu'en XHTML on définit les framents avec l'attribut
> 'id'... seulement en HTML on faisait plutôt ça avec 'name'.
Conclusion
> si on veut définir un fragment qui soit adressable en XHTML et en
XML on
> est obligé de mettre les 2...

Surtout qu'un formulaire posté avec des id plutôt que des names ne
donne rien en sortie.
: ^(

Fabrice BONNY

unread,
Mar 1, 2002, 6:08:08 AM3/1/02
to
> > <label for="foo">Bar</label>
> > <input type="radio" id="foo" name="foo" value="1" />Truc
> > <input type="radio" name="foo" value="2" />Machin
> >
> > C'est valide, mais c'est "un peu bancal", non ? Je m'inquiète pour
la
> > perennité de la chose.
> >
> Pourquoi ça serait bancal ?
> - 'id' désigne l'uniqueID de ton premier input... et d'ailleurs tu
> l'utilises pour y rattacher un label.

Qui devrait être rattaché au groupe.

> - 'name' permet de regrouper les deux radio-boutons

Si un jour les name "sautent" au profit des id, n'y a-t-il pas un
risque que mon second bouton passe à la trappe ?

> Bon, tu as utilisé deux fois 'foo' ce qui est un peu confusant comme
> disent les américains, et surtout ici un peu inutile vu que je suis
> certain que tu vises des navigateurs qui comprennent bien 'id'...
> En écrivant ainsi c'est plus clair non ?
>
> <label for="foo">fou</label>
> <input type="radio" id="foo" name="fubar" value="1" />Truc
> <label for="bar">barre</label>
> <input type="radio" id="bar" name="fubar" value="2" />Machin

Même remarque, si name disparaît, les id seront pris en compte et mon
script de réception, il attend "fubar" et il reçoit "foo" et "bar". Je
sais, c'est de la pure réflexion théorique et anticipatoire mais la
rigueur du XML sert aussi à me flageller l'esprit. (J'ai laissé 2
neurones sur cette phrase)
Sinon, ça marche, c'est valide et visuellement, pas de problème.

laurent prevosto

unread,
Mar 1, 2002, 6:18:33 AM3/1/02
to

Mais les 'name' ne sauteront pas au profit des 'id', en tout cas pas
dans ce contexte : comme tu l'as fort bien remarqué, tu en as besoin
pour regrouper des radio-bouton, 'id', lui sert juste à identifier les
elements. Chacun son job.
C'est juste plus propre au final : avant on utilisait le même attribut
'name' pour des fonctionnalités qui différeraient suivant le contexte.
plus maintenant. :-)

voilà

laurent


Fabrice BONNY

unread,
Mar 1, 2002, 8:20:25 AM3/1/02
to
> Mais les 'name' ne sauteront pas au profit des 'id', en tout cas pas
> dans ce contexte : comme tu l'as fort bien remarqué, tu en as besoin
> pour regrouper des radio-bouton, 'id', lui sert juste à identifier
les
> elements. Chacun son job.
> C'est juste plus propre au final : avant on utilisait le même
attribut
> 'name' pour des fonctionnalités qui différeraient suivant le
contexte.
> plus maintenant. :-)

Ouaip, ben, dans la rec, il est dit que les éléments ayant
historiquement utilisé name doivent utiliser id. Blackout sur les
boutons radio, d'où mon interrogation. Mais j'ai compris que name
continuerait d'exister pour les formulaires. Par ailleurs, en grattant
un peu plus profond, je suis tombé sur les XForms qui semblent vouloir
dire que les bons vieux forms ont vécu :
http://www.w3.org/TR/2002/WD-xforms-20020118/index.html.
Merci.

0 new messages