Pregunta ¿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:

<header id="header" role="banner">
    Header stuff in here
</header>

O:

<section id="facebook" role="contentinfo">
    Facebook stuff in here
</section>

O:

<section id="main" role="main">
     Main content stuff in here
</section>

¿Es necesario este atributo de rol?

¿Este atributo es mejor para la semántica?

¿Mejora el SEO?

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

Tiene alguna idea sobre esto?


913
2018-05-01 10:11


origen


Respuestas:


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.

<a href="#" role="button" aria-label="Delete item 1">Delete</a>

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 <main>.

<main role="main">…</main>

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.

<span role="foo link note bar">...</a>

Fuera de la lista, solo link y 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.)


814
2017-09-06 18:12



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

El objetivo 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/


140
2018-05-01 13:10



¿Es necesario este atributo de rol?

Responder: .

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

Te proporciona:

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

9
2017-10-13 07:36