html - sirve - ¿Cómo funciona role=form para ayudar a la accesibilidad?
que es un formulario en html (4)
De hecho, la Recomendación ARIA establece claramente que no se debe cambiar la semántica del lenguaje de host en la sección 1.4:
"No es apropiado crear objetos con estilo y secuencia de comandos cuando el lenguaje de host proporciona un elemento semántico para ese tipo de objetos. Mientras que WAI-ARIA puede mejorar la accesibilidad de estos objetos, la mejor manera de proporcionar acceso es permitiendo que el agente de usuario maneje el objeto de forma nativa. Por ejemplo, es mejor usar un elemento h1 en HTML que usar la función de encabezado en un elemento div ".
Entonces, escribir <form role=''form''>
no solo es redundante, sino contrario a la recomendación. Los efectos secundarios [d] como el mencionado son el resultado de desobedecer la recomendación.
He leído que el atributo de role
se agregó a Bootstrap para la accesibilidad, y me gustaría saber cómo <form role="form">
ayuda a la accesibilidad. Consulte http://getbootstrap.com/css/#forms-example para ver un ejemplo de este uso específico.
Busqué el repositorio de Bootstrap para "papel" en vano.
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á desempeñando el role
de form
? Tendría sentido agregar role="..."
si el role
fuera diferente a la form
(no sé qué, pero pretendamos); tal como está (especialmente sin razonamiento concreto / ejemplos de casos de uso), es desconcertante en el mejor de los casos.
Me gustaría señalar que el artículo @ user664833 mencionado en un comment indica que role="form"
no debería ir en elementos <form>
, sino más bien en un <div>
o algún otro elemento que no indica semánticamente que contiene elementos de forma.
El elemento <form>
probablemente ya esté manejado correctamente por los lectores de pantalla modernos.
Recomiende usar [
role="form"
] en un elemento semánticamente neutro, como un elemento<div>
no en un<form>
, ya que el elemento ya tiene expuesta la semántica de roles predeterminada .
Semánticamente hablando, una forma predeterminada 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 de formulario) con el atributo role=form
diferente, incluso si entienden que el elemento de forma padre tendrá el mismo significado semántico o sin el atributo role=form
.
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 las teclas de navegación rápidas de su región (por ejemplo, en JAWS 15 usa R para esto). Además, su usuario podrá encontrar fácilmente dónde comienza y termina el formulario, ya que los lectores de pantalla marcan el inicio y el final de las regiones.