¿Cuál es el propósito del atributo “rol” en HTML?

Sigo viendo los atributos de roles en el trabajo de algunas personas. Lo uso también, pero no estoy seguro de su efecto.

Por ejemplo:

 

O:

  

O:

 
Main content stuff in here

¿Es necesario este atributo de rol?

¿Este atributo es mejor para la semántica?

¿Mejora el SEO?

Aquí se puede encontrar una lista de roles, pero veo que algunas personas hacen las suyas propias. ¿Está permitido o un uso correcto del atributo de rol?

Tiene alguna idea sobre esto?

La mayoría de los roles que ves se definieron como parte de ARIA 1.0 y luego se incorporaron a HTML5. Algunos de los nuevos elementos HTML5 (diálogo, principal, etc.) incluso se basan en los roles originales de ARIA.

http://www.w3.org/TR/wai-aria/

Hay dos razones principales para usar roles además de su elemento semántico nativo.

Razón # 1. Anulando el rol donde no es apropiado un elemento de lenguaje de host o, por varias razones, se utilizó un elemento menos apropiado semánticamente.

En este ejemplo, se utilizó un enlace, aunque la funcionalidad resultante es más parecida a un botón que un enlace de navegación.

 Delete 

Los lectores de pantalla oirán esto como un botón (a diferencia de un enlace), y puede usar un selector de atributo CSS para evitar class-itis y div-itis.

 *[role="button"] { /* style these a buttons w/o relying on a .button class */ } 

Razón # 2. Copia de seguridad del rol de un elemento nativo, para admitir navegadores que implementaron el rol ARIA pero que aún no implementaron el rol del elemento nativo.

Por ejemplo, el rol “principal” ha sido soportado en los navegadores durante muchos años, pero es una adición relativamente reciente a HTML5, por lo que muchos navegadores aún no admiten la semántica para

.

 

Esto es técnicamente redundante, pero ayuda a algunos usuarios y no daña a ninguno. En unos pocos años, esta técnica probablemente será innecesaria.

Usted también escribió:

Veo que algunas personas hacen las suyas. ¿Está permitido o un uso correcto del atributo de rol?

Ese es un uso válido del atributo a menos que no se incluya un rol real. Los navegadores aplicarán el primer rol reconocido en la lista de tokens.

 ... 

Fuera de la lista, solo el link y la note son roles válidos, por lo que se aplicará la función de enlace porque es lo primero. Si usa roles personalizados, asegúrese de que no entren en conflicto con ninguna función definida en ARIA o en el idioma del servidor que está utilizando (HTML, SVG, MathML, etc.)

Según tengo entendido, los roles fueron definidos inicialmente por XHTML pero fueron desaprobados. Sin embargo, ahora están definidos por HTML 5, consulte aquí: https://www.w3.org/WAI/PF/aria/roles#abstract_roles_header

El objective del atributo de rol es identificar al software de análisis la función exacta de un elemento (y sus elementos secundarios) como parte de una aplicación web. Esto es principalmente como un elemento de accesibilidad para los lectores de pantalla, pero también puedo verlo como útil para navegadores incorporados y raspadores de pantalla. Para ser útil al cliente HTML inusual, el atributo debe establecerse en una de las funciones de la especificación que he vinculado. Si lo hace, esta funcionalidad ‘futura’ no puede funcionar, un comentario sería mejor.

Aspectos prácticos aquí: http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/

¿Es necesario este atributo de rol?

Respuesta: .

  • El atributo de rol es necesario para admitir aplicaciones de Internet enriquecidas accesibles ( WAI-ARIA ) para definir roles en lenguajes basados ​​en XML, cuando los lenguajes no definen su propio atributo de rol.
  • Aunque esta es la razón por la cual el atributo de rol es publicado por el grupo de trabajo de protocolos y formatos , el atributo también tiene casos de uso más generales.

Te proporciona:

  • Accesibilidad
  • Adaptación del dispositivo
  • Procesamiento del lado del servidor
  • Descripción de datos complejos, … etc.