Con el interesante comentario de Olga me entero de otro de cambio de rumbo que asumir.
La verdad es que hace años de esto, pero recuerdo haber leído y re-leído las recomendaciones acerca de hacer que el control se asocie explicita e implícitamente a la etiqueta puesto que algunos dispositivos no soportaban la asociación explicita de forma única.
De hecho la estructura implícita me sigue pareciendo más lógica a nivel de XHTML, y cabe pensar que dicha estructura resulte más fácil de interpretar que la explicita.
La asociación implícita asegura la relación etiqueta – control, mientras que hace tiempo con la asociación explicita se corría el riesgo de no interpretar esta relación.
Dos de los puntos de verificación de WCAG 1 decían:
10.2 Hasta que las aplicaciones de usuario soporten explícitamente la asociación entre control de formulario y etiqueta, para todos los controles de formularios con etiquetas asociadas implícitamente, asegúrese de que la etiqueta está colocada adecuadamente. [Prioridad 2] (Punto de revisión 10.2)
12.4 Asocie explícitamente las etiquetas con sus controles. [Prioridad 2] Por ejemplo, en HTML, utilice LABEL y su atributo «for».
Siguiendo todo esto la estructura comentada en Asociación implícita de etiquetas LABEL para controles de formulario me parece la más correcta puesto que en realidad se asocian de ambas formas.
Por otro lado entiendo que al colocar el control inmediatamente antes o después de la etiqueta ya se esta haciendo implícita la relación. Creo haber leído que la asociación implícita donde el control es embebido es una asociación mediante marcador.
Sin embargo tiene razón Olga y es que en WCAG 2 se recomienda la versión explícita.
Se supone que las pautas de accesibilidad deben mantener la compatibilidad hacia atrás, pero debido a la cantidad de dispositivos y reglas supongo que es normal encontrarse ante estas tesituras. Lo bueno que se saca de ellas es la aventura de profundizar y el debate que puede surgir 🙂