Me pregunto cuál es la diferencia entre los siguientes dos fragmentos de código:
<label>Input here : </label>
<input type='text' name='theinput' id='theinput'/>
y
<label for='theinput'>Input here : </label>
<input type='text' name='theinput' id='theinput'/>
Estoy seguro de que hace algo cuando usa una biblioteca JavaScript especial, pero aparte de eso, ¿valida el HTML o lo requiere por alguna otra razón?
select
solo se enfoca en la selección en lugar de expandir las opciones.El
for
atributo asocia la etiqueta con un elemento de control, como se define en la descripción delabel
la especificación HTML 4.01. Esto implica, entre otras cosas, que cuando ellabel
elemento recibe el foco (por ejemplo, al hacer clic en él), pasa el foco a su control asociado. La asociación entre una etiqueta y un control también puede ser utilizada por agentes de usuario basados en voz, lo que puede proporcionar al usuario una forma de preguntar cuál es la etiqueta asociada, cuando se trata de un control. (La asociación puede no ser tan obvia como en la representación visual).En el primer ejemplo en la pregunta (sin el
for
), el uso dellabel
marcado no tiene implicaciones lógicas o funcionales; es inútil, a menos que haga algo con él en CSS o JavaScript.Las especificaciones HTML no hacen obligatorio asociar las etiquetas con los controles, pero las Pautas de Accesibilidad al Contenido en la Web (WCAG) 2.0 sí. Esto se describe en el documento técnico H44: el uso de elementos de etiqueta para asociar etiquetas de texto con controles de formulario , que también explica que la asociación implícita (anidando, por ejemplo,
input
dentrolabel
) no es tan ampliamente compatible como la asociación explícita víafor
yid
atributos,fuente
En pocas palabras, lo que hace es referirse a
id
la entrada, eso es todo:fuente
El atributo for de la
<label>
etiqueta debe ser igual al atributo id del elemento relacionado para unirlos.fuente
El atributo for muestra que esta etiqueta significa campo de entrada relacionado, o casilla de verificación o botón de opción o cualquier otro campo de ingreso de datos asociado con él. por ejemplo
fuente
Rotula cualquier entrada que sea el parámetro para el
for
atributo.fuente