¿Qué es el atributo de rol XHTML? Para que lo usas?

4 minutos de lectura

avatar de usuario
jd.

he leído la página del W3C en esto, pero todavía es vago para mí. Es el role propósito del atributo para aclarar el código? ¿O será interpretado por algunos navegadores o arañas?

¿Se puede usar como un selector de DOM usando algunas bibliotecas de JavaScript (estoy pensando que sí desde el id atributo tiene que ser único, esto podría usarse para identificar múltiples recursos en una página)?

avatar de usuario
robert harvey

La versión corta:

El atributo de función puede brindar a los navegadores futuros una forma de trabajar de manera inteligente con ciertos elementos XML de forma independiente del dispositivo. Por ejemplo, una lista desordenada que está marcada con el atributo de función de “navegación” se puede interpretar de manera inteligente en navegadores tanto en entornos de escritorio como portátiles, lo que permite que se muestre claramente en ambos entornos.

La versión larga:

El atributo de rol XHTML definido en esta especificación permite al autor anotar lenguajes XML con información semántica extraíble por máquina sobre el propósito de un elemento. Los casos de uso incluyen accesibilidad, adaptación de dispositivos, procesamiento del lado del servidor y descripción de datos complejos.

El atributo describe las funciones que desempeña el elemento actual en el contexto del documento. Esto puede ser utilizado, por ejemplo, por aplicaciones y tecnologías de asistencia para determinar el propósito de un elemento. Esto podría permitir a un usuario tomar decisiones informadas sobre qué acciones se pueden realizar en un elemento y activar la acción seleccionada en un forma independiente del dispositivo. También podría usarse como un mecanismo para anotar partes de un documento en un forma específica de dominio (por ejemplo, una taxonomía de términos legales).

Ejemplo:

<ul role="navigation sitemap">
    <li href="https://stackoverflow.com/questions/1678238/downloads">Downloads</li>
    <li href="docs">Documentation</li>
    <li href="news">News</li>
</ul>

Dado que el grupo de trabajo de XHTML2 dejará de existir a finales de este año, no hay posibilidad de que esta especificación alcance el estado de lanzamiento en algo parecido a su forma actual. http://www.w3.org/News/2009#entry-6601

  • Sin embargo, role también es un atributo estándar en HTML5.

    – Andrew Vit

    8 oct 2010 a las 20:59

avatar de usuario
Alohci

El documento al que se refiere es parte del trabajo del grupo de trabajo XHTML 2, ahora descontinuado. Es efectivamente obsoleto.

HTML5/XHTML5 también tiene una role atributo. Su definición es similar pero algo más limitada: su propósito es indicar los roles de las aplicaciones de Internet enriquecidas accesibles (ARIA), de modo que la tecnología de asistencia, como los lectores de pantalla, pueda informar mejor a los usuarios sobre el propósito de los componentes de la interfaz de usuario (widgets) y también ayudarlos a navegar. la página web más fácilmente.

La lista de roles válidos para ARIA está disponible en http://www.w3.org/TR/wai-aria/#roles

El rol se puede utilizar para la accesibilidad. Mi entendimiento es que el atributo de rol debe evitarse donde la semántica lo deje claro. Usando <nav role="navigation">...</nav> por ejemplo, se desaconseja porque el nav elemento semántico ya implica navegación.

Pero hay casos en los que es útil. Una imagen que es un enlace, por ejemplo, puede tener role="link" tabindex="0" para ayudar a los lectores de pantalla y otras tecnologías de asistencia a comprender que está actuando como un enlace (asegúrese de escuchar el evento de pulsación de tecla molesta para ingresar la tecla y el evento de clic).

O en una imagen que puedes tener role="button" para indicar que la imagen está actuando como un botón.

El atributo de rol permite que la aplicación web agregue semántica a la aplicación web que sea significativa para los navegadores pero que no se transmita en el marcado sin especificarlo.

Muchas veces hay una forma semánticamente correcta de hacerlo sin recurrir al atributo, pero está ahí cuando lo necesitas.

¿Ha sido útil esta solución?