5546 sujets

Sémantique web et HTML

Bonjour à tous,

Mon interrogation est purement "technique" : en xhtml, est-ce qu'un label peut contenir un label ?

En html 4 la réponse est très claire, c'est non :

<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->


Pour xhmtl, si on se fie uniquement à la déclaration, c'est autorisé :
<!ELEMENT label %Inline;>


Mais juste au-dessus de la déclaration, il est noté :
a écrit :
Each label must not contain more than ONE field
Label elements shouldn't be nested.


Et ceci passe au validateur :

	<div>
		<label for="nom">Nom :
			<label for="prenom">Prénom :</label>
			<input type="text" id="prenom" />
		</label>
		<input type="text" id="nom" />
	</div>


Tout indique que c'est autorisé...

J'interprète donc sûrement mal la "note" précédant la déclaration. Quelqu'un peut m'éclairer ?
Modifié par boulaneige (28 Feb 2011 - 13:13)
Administrateur
Bonjour,

tout indique que c'est fortement pas recommandé ; si j'en crois le "shouldn't"
Que la DTD ne l'interdise pas : il y a des limitations dans la grammaire formelle qui fait que tout n'est pas descriptible. HTML5 et ses douzaines de %type résoud le problème
Après que ce ne soit pas complétement interdit dans le texte me dépasse mais euh ne le fait pas, jamais never et tout ira bien.
Les WCAG 2.0 l'interdisent en tout cas Smiley smile
Merci de ta réponse.

Bon ben ça me rassure, y'a pas que moi que ça laisse perplexe.

Ca ne m'était jamais venu à l'idée d'imbriquer des label, d'où mon incompréhension de la dtd.

C'est quand même curieux, "ils" savent pourtant exprimer une exclusion, exemple avec l'élément a. Mais ils sont vicieux, ils ont créé une nouvelle entité alors qu'il aurait été plus simple d'ajouter comme dans html 4 -(a).

Un bonheur n'arrivant jamais seul, je m'arrache maintenant les cheveux avec le couple infernal ins/del... Smiley sweatdrop