À l'aide de HTML 'label' tag avec des boutons radio
Ne le label
balise de travail avec des boutons radio? Si oui, comment l'utilisez-vous? J'ai un formulaire qui s'affiche comme ceci:
First Name: (text field)
Hair Color: (color drop-down)
Description: (text area)
Salutation: (radio buttons for Mr., Mrs., Miss)
Je voudrais utiliser le label
balise pour chaque étiquette dans la colonne de gauche afin de définir sa connexion à un contrôle approprié dans la colonne de droite. Mais Si j'utilise un bouton radio, de la spécification, ce qui semble indiquer que tout à coup, la "formule de politesse" de l'étiquette de la forme de contrôle n'appartient plus à la label
tag, mais plutôt les options "Monsieur, Madame, etc...." allez dans l' label
tag.
J'ai toujours été un fan de l'accessibilité et du web sémantique, mais cette conception ne fait pas de sens pour moi. Le label
tag déclare expressément les étiquettes. Le option
balise options de sélection. Comment déclarer un label
sur l'étiquette réelle pour un ensemble de boutons radio?
Mise à JOUR:
Voici un exemple avec le code:
<tr><th><label for"sc">Status:</label></th>
<td> </td>
<td><select name="statusCode" id="sc">
<option value="ON_TIME">On Time</option>
<option value="LATE">Late</option>
</select></td></tr>
Cela fonctionne très bien. Mais contrairement à d'autres contrôles de formulaire, des boutons radio ont un champ distinct pour chaque valeur:
<tr><th align="right"><label for="???">Activity:</label></th>
<td> </td>
<td align="left"><input type="radio" name="es" value="" id="es0" /> Active  
<input type="radio" name="es" value="ON_TIME" checked="checked" id="es1" /> Completed on Time  
<input type="radio" name="es" value="LATE" id="es2" /> Completed Late  
<input type="radio" name="es" value="CANCELED" id="es3" /> Canceled</td>
</tr>
Que faire?
- Liées réponse: stackoverflow.com/questions/13080416/...
- À l'aide de l'accessibilité de la balise en question montrant un tableau de mise en page est plutôt drôle 🙂
Vous devez vous connecter pour publier un commentaire.
Oui
Même manière que pour toute autre forme de contrôle.
Vous donner un
for
attribut qui correspond à laid
de la commande, ou vous mettre le contrôle à l'intérieur de l'élément label.Une étiquette est pour un de contrôle, et non pas un ensemble de contrôles.
Si vous voulez ajouter une légende à une série de contrôles, utilisez un
<fieldset>
avec un<legend>
(et donner un<label>
à chaque contrôle dans le jeu).<input type="radio"
est une valeur possible pour ce contrôle, pas le nom pour le contrôle de lui-même. J'ai un code qui fait la bonne chose avec tous les autres types de contrôle de formulaire que j'ai rencontré. Peut-être fieldset est ma réponse? En fin de compte je suppose que le point de tout cela est de l'accessibilité pour les personnes handicapées de la vue. Les moteurs de recherche donné sur le "web sémantique" à partir de presque une journée.<select>
tag est un contrôle. Vous pourriez utiliser à la place des boutons radio.<label><input>text<label>
est techniquement valide, il n'est pas une pratique exemplaire et n'a pas été depuis 03ish. Certains aussi a des problèmes avec cette méthode. @GlenPeterson pas la fourniture d'un nom à un groupe de radios, de leur faire le travail et ressembler à un groupe de radio de 1.for
.Ah oui. Voici comment cela fonctionne.
<label>
étiquettes champs individuels, donc chaque<input type="radio">
obtient son propre<label>
.À l'étiquette un groupe de champs (par exemple, plusieurs boutons radio qui partagent le même
name
), vous utilisez un<fieldset>
balise avec un<legend>
élément.for
etid
attributs ici puisque vous enchaînez les entrées danslabel
Vous ne pouvez pas déclarer une étiquette pour un ensemble de boutons, mais pour chaque bouton.
Dans ce cas, les étiquettes sont "Monsieur", "Madame" et "Mademoiselle", pas de "formule de politesse".
Mise à JOUR
Peut-être que vous devriez utiliser un autre tag pour ce "label" de la vôtre, car il n'est pas vraiment un label.
Pour répondre à votre question: non, vous ne pouvez pas vous connecter formule de politesse à l'un des boutons radio. Il n'aurait de sens que si vous cliquez sur la formule de Salutation, l'une des options serait sélectionné. Au lieu de cela, vous pouvez donner à M., Mme et Mlle leurs propres étiquettes, donc si quelqu'un clique sur un de ces mots, le bouton radio correspondant sera sélectionné.
je pense qu'on peut encore enveloppement formule de politesse à l'intérieur d'unje corrige la position des mains, voir les commentaires ci-dessous. Même si c'est techniquement possible, ce n'est pas ce<label>
élément, vous ne pouvez pas utiliser lefor
attribut.<label>
était destinée.<fieldset>
et<legend>
sont conçus dans ce but.<label>
est fait pour.for
, je viens si @GlenPeterson parle hypothétiquement. Aucune infraction ne signifiait.<label>
pour cela moi aussi. Apprendre de nouvelles choses tous les jours 😉 merci pour le lien en tout cas.<label>
est, donc, j'ai vu beaucoup de gens utilisent<label>
plus généralement.Vous pouvez utiliser le
aria-role="radiogroup"
à associer les contrôles sans l'aide d'un<fieldset>
. C'est l'une des techniques suggérées par les WCAG 2.0.Cependant, j'ai remarqué que l'utilisation de cette technique, le WebAim Vague outil permettant de donner un avertissement au sujet d'un manque
<fieldset>
, donc je ne suis pas sûr de ce que SUR le soutien de la ce est comme.mes 2 cents au sujet, ou plutôt un côté nœud (il n'a pas l'utilisation implicite de l'association pour pouvoir être placé n'importe où, mais linking):
groupement est fait par le
name
attribut, et reliant par leid
attribut:HTML:
L'Étiquette de "pour" l'attribut correspond à la Radio boutons ID. Alors...
Espère que cela aide.
Vous voulez le vôtre à ressembler à quelque chose comme ça...