¿Es mejor ajustar la etiqueta dentro de un elemento del formulario o usar el atributo “para” en HTML?

Sé que puedes usar ambos, pero ¿es mejor usar uno sobre el otro? Si es así, ¿por qué?

Ejemplo de atributo “para”:

 

Ejemplo de envolver:

  

Semánticamente, ambas posibilidades son iguales. Pero según el diseño que desee, existen ventajas y desventajas para las dos posibilidades. Por ejemplo, si desea que la etiqueta se encuentre en un lugar completamente diferente, no tendría sentido colocar la entrada en la etiqueta. Pero si desea poder hacer un efecto de desplazamiento a través de css, que establece, por ejemplo, un fondo para la etiqueta y el área alrededor de la entrada, sería mejor colocar la entrada en la etiqueta.

según http://www.w3.org/TR/2008/WD-WCAG20-TECHS-20080430/H44.html

algunas tecnologías de asistencia no manejan correctamente las tags implícitas

Entonces, cuando se ajuste, es posible que también desee proporcionar el atributo “para” al elemento de etiqueta.

El ajuste permite soltar el atributo for , que a su vez permite omitir el atributo `id ‘en el elemento de entrada. Ideal para plantillas o cualquier forma que necesite ser utilizada en múltiples instancias en una página.

No importa. Ambos logran las mismas cosas en términos de definir la relación entre la etiqueta y el campo.

Incrustar la entrada en la etiqueta también afecta el comportamiento de envoltura. ajustará como una sola unidad por defecto. Mientras que envolverá el texto con espacios en blanco y ajustará la etiqueta a una nueva línea, pero deje la checkbox arriba.

Si cuenta para nada, los marcos como ASP.NET colocan el elemento label junto a los elementos input / select / textarea y usan el atributo label ‘s for .