- La UI de notificaciones toast ya no está recomendada en GitHub debido a problemas de accesibilidad
- La estructura de notificaciones temporales que desaparecen automáticamente corre el riesgo de incumplir los criterios de accesibilidad visual y funcional (WCAG)
- GitHub propone banner y dialog como alternativas de retroalimentación persistente y accesible
- Los toast también presentan varios problemas de usabilidad, como en pantallas grandes, multitarea y la tendencia a ignorar banners
- Para lograr accesibilidad y una experiencia de usuario consistente, se deja de usar Toast en todo el sistema de diseño Primer
Resumen de Toasts
- Un toast es una pequeña ventana de notificación rectangular que aparece brevemente en la esquina inferior de la pantalla y se activa por una acción del usuario o del sistema
- Está diseñado para desaparecer automáticamente después de cierto tiempo, lo que implica problemas de accesibilidad y usabilidad
- Por estas razones, GitHub recomienda formas de comunicación más estables y accesibles
Alternativas a Toast
- Es necesario elegir la UI adecuada según el propósito
- Las notificaciones simples de éxito pueden confirmarse en la propia pantalla de resultado sin retroalimentación adicional
- Las tareas complejas pueden comunicar el estado exitoso mediante un banner o con contenido progresivo
- Las tareas fallidas deben mostrar la información del error mediante un banner o un dialog
- En el caso del envío de formularios, los formularios simples no requieren confirmación adicional; los formularios complejos pueden usar una página de confirmación intermedia o un banner
- Para la validación de entradas, se deben usar los componentes de validación de formularios ya existentes en Primer
- Las tareas de larga duración deben comunicar su finalización mediante un banner u otros canales, como correo electrónico o notificaciones push
- Si ocurre una desincronización de sesión, se debe informar la necesidad de recargar mediante un dialog o un banner
Consideraciones de accesibilidad (Accessibility Considerations)
- La UI de toast puede incumplir varios criterios de éxito de WCAG
- 2.2.1 Timing Adjustable (A): debe permanecer visible hasta que el usuario la cierre directamente
- 1.3.2 Meaningful Sequence (A): la discrepancia entre el orden del DOM y el orden visual puede causar confusión al usar tecnologías de asistencia
- 2.1.1 Keyboard (A): las interacciones dentro del toast deben poder controlarse con el teclado
- 4.1.3 Status Messages (AA): su presencia debe comunicarse a las tecnologías de asistencia de manera no intrusiva
- Además, hay otros criterios que también podrían verse afectados
- 1.4.4 Resize text (AA): al ajustar el tamaño del texto existe riesgo de que tape la pantalla o genere overflow
- 1.4.10 Reflow (AA): al hacer scroll horizontal se debe garantizar la accesibilidad por teclado
- 2.4.3 Focus Order (A): puede producirse confusión en el orden del foco
- 3.2.4 Consistent Identification (AA): es necesario mantener consistencia en el código
Consideraciones de usabilidad (Usability Considerations)
- En pantallas grandes, el toast puede quedar fuera del campo visual y pasar desapercibido
- Si se cierra automáticamente, el usuario puede perder el mensaje mientras realiza otra tarea
- Ocultamiento de UI: el toast puede cubrir elementos importantes, como botones en la parte inferior
- Los usuarios que amplían la pantalla pueden no ver el toast si queda fuera del área ampliada
- Problemas de memoria de trabajo: al desaparecer automáticamente, no se puede volver a revisar la información
- Tendencia a ignorar banners: el uso excesivo hace que los usuarios tiendan a ignorarlos
- Desajuste de ubicación: la distancia física entre la UI que lo activó y el toast puede generar confusión sobre su relación
- Acción de cierre incorrecta: la tecla Esc puede cerrar también otras partes de la UI
Material adicional de referencia
1 comentarios
Comentarios en Hacker News
toast(), tiende a abusarse, pero propone que una estructura comouseAlerts()es mucho mejor