Técnica ARIA WCAG 2.2
ARIA23Anunciar las novedades de un chat o un historial con role="log"
Nombre oficial en el W3C: Usar role=log para identificar actualizaciones de información secuencial
En pocas palabras
Un chat, un historial de actividad o un registro de avisos añaden mensajes nuevos al final, uno tras otro. Si su contenedor lleva role="log", el lector de pantalla lee cada mensaje nuevo cuando llega, sin mover el foco. Solo lee lo añadido, no todo el historial.
Por qué es importante
En un chat de atención al cliente, la persona escribe en un campo de texto. Las respuestas aparecen en otra zona de la pantalla. Si usa lector de pantalla y nadie se las anuncia, no sabe que le han contestado.
Con role="log", los mensajes nuevos se leen de forma educada: cuando el lector termina lo que está diciendo. El foco sigue en el campo de texto.
Cómo se hace
- Ponga
role="log"en el contenedor de los mensajes desde que se carga la página. - Añada cada mensaje nuevo al final, como un elemento más. No reescriba todo el contenedor, porque se volvería a leer entero.
- Dé nombre a la zona con
aria-labeloaria-labelledby, por ejemplo «Conversación». - Indique en cada mensaje quién lo escribe: «Ana: Su pedido sale mañana».
- Úselo solo para información que crece en orden. Para un mensaje que se sustituye por otro, use
role="status".
Cómo comprobarlo
- Localice las zonas que añaden información en orden: chat, historial, registro de actividad.
- Compruebe en el código que su contenedor tiene
role="log". - Active un lector de pantalla, deje el foco en otro sitio y provoque un mensaje nuevo. Debe leerse solo ese mensaje.
Ejemplo
Chat de atención al cliente en el que cada respuesta nueva se anuncia al llegar.
<div role="log" aria-label="Conversación con atención al cliente">
<p><strong>Ana:</strong> Buenos días, ¿en qué puedo ayudarle?</p>
<p><strong>Usted:</strong> Quiero cambiar la fecha de mi cita.</p>
<!-- Los mensajes nuevos se añaden aquí, al final -->
</div>
<label for="mensaje">Su mensaje</label>
<input id="mensaje">
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 ARIA23 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.
Descripción
El propósito de esta técnica es notificar a las tecnologías de asistencia cuando se ha añadido contenido a información secuencial relativa al historial o los registros (logs) de la aplicación. La función (role) de región activa (live region) de ARIA log tiene un valor implícito de aria-live igual a polite y un valor de aria-atomic igual a false, lo que permite que el usuario sea notificado a través de la tecnología de asistencia (como un lector de pantalla) cuando se añaden mensajes al registro. El nuevo contenido de la región activa es leído automáticamente por la tecnología de asistencia, sin que esta tenga que situar el foco en el lugar donde se muestra el texto. Consulte WAI-ARIA 1.3 log (role) para más detalles.
Ejemplos
Actualizar el contenido de una conversación de chat
Los comentarios que los usuarios escriben en el campo de entrada de un chat se añaden al final de la región del historial del chat. La región está marcada con role="log" para que las tecnologías de asistencia anuncien las nuevas incorporaciones. Cuando aparece cada nuevo mensaje de chat, un lector de pantalla debería anunciar su contenido (según la compatibilidad entre la tecnología de asistencia y el navegador).
<div id="chatRegion" role="log" aria-labelledby="chatHeading">
<h4 id="chatHeading">Chat History</h4>
<ul id="conversation">
<li>The latest chat message</li>
</ul>
</div>
Ejemplo funcional: usar role="log" en una conversación de chat
Actualizar el registro de un servidor
Un registro de aplicación guarda actividades con marca de tiempo. El registro se expone en la aplicación como una vista, con la región marcada con role="log" para que las tecnologías de asistencia anuncien las nuevas incorporaciones. Cuando se añade cada nueva entrada al registro, un lector de pantalla la anuncia.
<div id="activityLog" role="log">
<h4 id="logHeading">Recent activity</h4>
<ul id="logentries"">
<li>08:03 UserX logged off</li>
</ul>
</div>
Ejemplo funcional: usar role="log" en el registro de un servidor
Pruebas
Procedimiento
En una página que contiene información que se actualiza de forma secuencial:
- Comprobar que al contenedor de la información se le asigna la función
log.
Resultados esperados
- La comprobación n.º 1 es verdadera.
Cómo lo comprobamos en ADDAW
En cada auditoría de ADDAW revisamos esta técnica página a página y le entregamos los errores con capturas y la forma de corregirlos.
Basado en la técnica ARIA23 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.