Últimamente, se está planteando crear formularios mediante listas de definición y se está generando muchas dudas sobre si es acertado hacerlo así o no.

En su día, yo también me planteé esa duda. Creí estar convencido de que es acertado usar listas de definición para cada elemento de un formulario y al final acabé descartandolo completamente.

¿Por qué creí que una lista de definición puede marcar correctamente un formulario?

Una lista de definición está compuesta de elementos (items), igual que un formulario está compuesto de datos que se solicitan al usuario. Puede considerarse que cada dato de un formulario es un elemento de la lista de definición.

A su vez, cada elemento de una lista de definición contiene un término y una definición, del mismo modo que cada dato de un formulario tiene una etiqueta y un campo donde el usuario ha de definir el dato.

¿Por qué ahora creo que es incorrecto hacerlo así?

No todos los datos que se solicitan en un formulario encajan perfectamente en una lista de definición. Por ejemplo, un dato que se pide a partir de campos checkbox o radio buttons no encaja.

No garantiza accesibilidad, es más, crea problemas de accesibilidad en algunas versiones de JAWS.

El valor semántico queda definido a partir del <label> de la etiqueta de cada campo ya que éste debe encerrar el <input> del campo asociado, por tanto, es innecesario aumentar el peso de la página mediante marcas de listas de definición.

Conclusión

Creo que la única ventaja que se obtiene de marcar un formulario con listas de definición es una ventaja visual, de presentación, que realmente debe ser tratado con CSS.

Desde el punto de vista semántico no aporta nada sobre el uso correcto de las etiquetas, y desde el punto de vista de la accesibilidad, creo que la complica.

Por tanto, yo creo que usar listas de definición para marcar formularios es incorrecto.