Addaw, ir a inicio Donar

Fallo común WCAG 2.2

F92Usar role="presentation" en contenido que tiene significado

Nombre oficial en el W3C: Fallo del criterio de conformidad 1.3.1 debido al uso de la función presentation en contenido que transmite información semántica

En pocas palabras

El atributo role="presentation" (o role="none") borra el significado de un elemento para los lectores de pantalla. El error es ponerlo en algo que sí transmite información, como una tabla de datos, una lista o un encabezado. La estructura se ve en pantalla, pero desaparece para quien usa un lector.

Por qué es importante

Los elementos HTML dicen qué es cada cosa: una tabla, una lista de 5 elementos, un encabezado de nivel 2. El lector de pantalla (programa que lee en voz alta lo que hay en la pantalla) usa esa información para orientarse.

Con role="presentation", el elemento se trata como un simple contenedor. En una tabla de datos, la persona ya no puede moverse por filas y columnas ni oír las cabeceras. Solo oye los textos seguidos, sin saber qué dato va con cuál.

Cómo evitarlo

  1. Reserve role="presentation" y role="none" para elementos que solo sirven para maquetar, como una antigua tabla de diseño.
  2. No lo ponga en tablas de datos, listas, encabezados, imágenes informativas ni formularios.
  3. Revise las plantillas y componentes heredados: a veces añaden este rol a todas las tablas sin distinguir.
  4. Si quiere quitar solo el aspecto visual, hágalo con CSS. El CSS no borra el significado.

Cómo comprobarlo

  1. Busque en el código role="presentation" y role="none".
  2. Para cada elemento encontrado, pregúntese si transmite información o relaciones: datos en filas y columnas, una lista, un título.
  3. Si la respuesta es sí, hay fallo.
  4. En el panel «Accesibilidad» de las herramientas del navegador (F12), compruebe que la tabla o lista aparece con su función y no como «none» o «presentation».

Ejemplo

Una tabla con datos de tarifas no debe llevar role="presentation".

<!-- Incorrecto: se pierde la estructura de tabla -->
<table role="presentation">
  <tr><th>Servicio</th><th>Precio</th></tr>
  <tr><td>Piscina</td><td>3 €</td></tr>
</table>

<!-- Correcto: sin role -->
<table>
  <tr><th>Servicio</th><th>Precio</th></tr>
  <tr><td>Piscina</td><td>3 €</td></tr>
</table>
Ver el texto completo del W3C (traducción al español)

Esta es una traducción no oficial al español de la técnica F92 de Techniques for WCAG 2.2, del W3C. Puede contener errores. El único documento oficial y normativo es la versión original en inglés, publicada en el sitio web del W3C.

Aplicabilidad

HTML

Descripción

Este fallo se produce cuando se aplica la función presentation a un elemento cuyo propósito es transmitir información o relaciones en el contenido. Elementos como table pueden transmitir información sobre el contenido que contienen mediante su marcado semántico. En cambio, la función presentation de WAI-ARIA tiene como finalidad suprimir la información semántica del contenido en la API de accesibilidad e impedir que los agentes de usuario transmitan esa información al usuario. El uso de role="presentation" en contenido que debería transmitir información semántica puede impedir que el usuario comprenda ese contenido.

Ejemplos

En este ejemplo, unos datos tabulares están marcados con role=presentation. Aunque las tablas de maquetación pueden marcarse de esta forma, las tablas de datos necesitan conservar su información semántica y, por tanto, no deberían marcarse con role=presentation.

Código de ejemplo:

<table role="presentation">
  <caption>Fruits and their colors</caption>
  <tr>
    <th>Name</th>
    <th>Color</th>
  </tr>
  <tr>
    <td scope="row">banana</td>
    <td>yellow</td>
  </tr>
  <tr>
    <td scope="row">orange</td>
    <td>orange</td>
  </tr>
</table>

Pruebas

Procedimiento

  1. Comprobar si un elemento transmite información, estructura o relaciones mediante su marcado semántico.
  2. El elemento tiene el atributo role="presentation".

Resultados esperados

  • Si la comprobación n.º 2 es verdadera, se da esta condición de fallo y el contenido falla el criterio de conformidad.

Recursos

Cómo lo comprobamos en ADDAW

Este error es uno de los que buscamos en cada auditoría de ADDAW. Se lo entregamos con capturas y la forma de corregirlo.

Solicitar una auditoría

Basado en la técnica F92 del W3C (WCAG 2.2). Explicación y ejemplos: ADDAW. Traducción no oficial del texto del W3C © W3C, licencia de documentos del W3C. ¿Ha visto un error? Escríbanos.