¿Cómo ayuda role = form a la accesibilidad?


He leído que el atributo rolese agregó a Bootstrap para la accesibilidad, y me gustaría saber cómo <form role="form"> ayuda a la accesibilidad. Véase http://getbootstrap.com/css/#forms-example para un ejemplo de este uso específico.

Yo busqué en el repositorio de Bootstrap "role" sin éxito.

Mi problema es que la información parece redundante. La noción de que el elemento es una forma ya está expresada por la propia etiqueta HTML (<form>), entonces, ¿qué ayuda si también agregamos que el elemento está reproduciendo el role de form? Tendría sentido agregar role="..." si role iba a ser diferente de form (no se qué - pero vamos a fingir); tal como está (especialmente sin razonamiento concreto / ejemplos de casos de uso), es desconcertante en el mejor de los casos.

Author: user664833, 2014-02-21

4 answers

Si agrega un role="form" a un formulario, un lector de pantalla lo ve como una región en una página web. Eso significa que un usuario puede saltar fácilmente al formulario con sus teclas de navegación rápida de región (por ejemplo, en JAWS 15 utiliza R para esto). Y también, su usuario podrá encontrar fácilmente dónde comienza y termina el formulario porque los lectores de pantalla marcan el inicio y el final de las regiones.

 78
Author: Andre Polykanine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-21 00:51:32

Me gustaría señalar que el artículo @user664833 mencionado en un comentario establece que role="form" no debería ir sobre <form> elementos , sino sobre un <div> o algún otro elemento que no indique semánticamente que contiene elementos de forma.

El elemento <form> probablemente ya esté manejado correctamente por los lectores de pantalla modernos.

Cita (enlace):

Recomienda usar [role="form"] en un elemento semánticamente neutro como un <div> no en un elemento <form>, ya que el elemento ya tiene semántica de rol por defecto expuesta.

 6
Author: Nelu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:18

De hecho, la Recomendación ARIA establece claramente que no se debe cambiar la semántica del lenguaje anfitrión en la sección 1.4:

" No es apropiado crear objetos con estilo y script cuando el lenguaje host proporciona un elemento semántico para ese tipo de objeto. Mientras que WAI-ARIA puede mejorar la accesibilidad de estos objetos, la accesibilidad se proporciona mejor permitiendo que el agente de usuario manejar el objeto de forma nativa. Por ejemplo, es mejor usar un h1 elemento en HTML que usar el rol de encabezado en un elemento div."

Por lo tanto, escribir <form role='form'> no solo es redundante sino que va en contra de la recomendación. Efectos secundarios como el mencionado resultan de desobedecer la recomendación.

 4
Author: Jaccoud,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-09 16:57:21

Semánticamente hablando, una forma por defecto es, bueno, una forma. Sin embargo, no todas las aplicaciones de accesibilidad(lectores de pantalla, etc.) están diseñadas de la misma manera y algunas pueden usar elementos (incluso el elemento form) con el atributo role=form de manera diferente, incluso si entienden que el elemento form padre tendrá el mismo significado semántico con o sin el atributo role=form.

 3
Author: salmanxk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-21 00:59:03