2009-10-06 30 views
105

Cuando se utiliza el parámetro "etiqueta para" en los botones de opción, para ser 508 compliant *, ¿es correcto el siguiente?Uso de "etiqueta para" en los botones de opción

<label for="button one"><input type="radio" name="group1" id="r1" value="1" /> button one</label> 

¿o es esto?

<input type="radio" name="group1" id="r1" value="1" /><label for="button one"> button one</label> 

razón que pido es que en el segundo ejemplo, "etiqueta" sólo se abarca el el botón de opción real de texto y no.

* La Sección 508 de la Ley de Rehabilitación de 1973 requiere que las agencias federales brinden acceso a software y sitios web a las personas con discapacidades.

Respuesta

166

Casi lo tienes. Debe ser la siguiente:

<input type="radio" name="group1" id="r1" value="1" /><label for="r1"> button one</label> 

El valor en for debería ser el id del elemento que está etiquetando.

+4

Usted respuesta es, por supuesto, cierto, pero Martha tiene la respuesta correcta. Ambos ejemplos de Martha son HTML5 perfectamente válidos. Y, por ejemplo, si desea que todo esté en un marco, es más fácil diseñar el segundo con css. Si desea que las etiquetas estén en otro lugar, primero. Pero ambos están bien. ¡Atentamente! –

+4

Hmm .. ¿Cómo se hace una etiqueta para alternar entre dos botones de radio? No puede tener dos ID idénticos ...:/ –

+0

@NilsSens Cada par de radio y etiqueta debe tener identificaciones únicas que nunca deben compartir ID –

3

Con el uso de un identificador correcto y para (como se indica por Marc W en otra respuesta) en realidad AMBOS son conformes a 508. He aquí un example using labels in different ways, afirmando que es de hecho compatible.

66

estructura O es válida y accesible, pero el atributo for debe ser igual a la id del elemento de entrada:

<input type="radio" ... id="r1" /><label for="r1">button text</label> 

o

<label for="r1"><input type="radio" ... id="r1" />button text</label> 

El atributo for es opcional en la segunda versión (etiqueta que contiene la entrada), pero IIRC había algunos navegadores más antiguos que no hacían clic en el texto de la etiqueta a menos que lo incluyera. La primera versión (etiqueta después de la entrada) es más fácil de peinar con CSS usando el selector de hermanos adyacentes +:

input[type="radio"]:checked+label {font-weight:bold;} 
+7

Verdadero, aunque en el segundo ejemplo, no se requiere el atributo "para". – Ishmael

+4

Creo que hubo algunas versiones del navegador que solo hacían que el texto del botón "se pudiera hacer clic" si usaba el atributo 'para', es decir, no era suficiente envolver la entrada dentro de la etiqueta. – Martha

+0

@Martha - ¿Sabes qué navegadores? – Kirkland

Cuestiones relacionadas