(Keika) Non, il faut mettre les deux attributs (name et id). C'est pour la balise a qu'il ne faut pas mettre d'attribut name.
Pour un élément de formulaire, c'est l'attribut name qui nomme la variable HTTP qui sera transmise. L'attribut id lui, nomme l'élément pour permettre de le référencer. Par exemple, une balise label qui pointe un contrôle de formulaire dont l'identifiant est spécifié via l'attribut for.
<label for="login-username">Login :</label><input id="login-username" name="username" />
(BigZ[SHN]) Pour faire simple, HTML 4 est le standard de facto sur le Web. XHTML 1 est une formulation de HTML 4 en XML. C'est sensé apporter un peu plus de rigueur aux documents qui se réclament être des documents XHTML (parsing plus aisé, rendu plus fiable, etc).
HTML 5 est une évolution de HTML 4, qui est sensé y porter les améliorations ergonomiques introduites par XHTML 2.
XHTML 2 est une remise à plat qui entend rompre avec les défauts de conceptions de HTML, dont ont hérité ces descendant.
Je sais que c'est très abstrait, dit comme ça, mais en fait... bah... XHTML 1 n'est que partiellement supporté par le navigateur majoritaire, XHTML 2 va certainement effrayer, en ce sens qu'il fait table rase du passé, et HTML 5... risque d'être vu comme une chimère.
Bref, ceux qui tirerons avantage de cette jungle sont ceux qui maîtriserons XSL
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.