Addaw, ir a inicio Donar

Fallo común WCAG 2.2

F99Atajos de teclado de una sola tecla que no se pueden desactivar

Nombre oficial en el W3C: Fallo del criterio de conformidad 2.1.4 debido a implementar atajos de teclado de una sola tecla de carácter sin ofrecer un mecanismo para desactivarlos o reasignarlos

En pocas palabras

Este error ocurre cuando la web tiene atajos que se activan con una sola tecla, como S para abrir el buscador, y no permite desactivarlos ni cambiarlos. Quien usa control por voz o pulsa teclas sin querer puede activarlos por accidente. Hay que permitir apagarlos o añadirles una tecla como Ctrl o Alt.

Por qué es importante

  • Quien usa control por voz (programas que manejan el ordenador con órdenes habladas) dicta palabras. Cada letra dictada puede disparar un atajo: decir «salir» puede abrir el buscador, borrar o archivar algo.
  • Las personas con temblores o poca precisión pulsan teclas sin querer.
  • Quien usa un lector de pantalla también usa letras sueltas para moverse, y los atajos de la web pueden chocar con ellas.

Cómo evitarlo

  1. Lo más sencillo: no cree atajos de una sola tecla (letra, número, signo de puntuación o símbolo).
  2. Si los necesita, haga que usen también una tecla modificadora: Ctrl, Alt o Cmd.
  3. Otra opción: ofrezca en la configuración una forma de desactivar los atajos o de cambiar sus teclas.
  4. Puede usar teclas sueltas si solo funcionan cuando un componente tiene el foco, como escribir una letra en una lista desplegable para saltar a esa opción.

Cómo comprobarlo

  1. Pregunte al equipo de desarrollo si la web tiene atajos de teclado y cómo se configuran.
  2. Haga clic en una zona vacía de la página para que ningún campo tenga el foco.
  3. Pulse letras, números y signos de uno en uno, también con Mayús. Observe si ocurre algo.
  4. Si algo se activa, busque una opción para desactivar o cambiar ese atajo. Si no existe, hay fallo.

Ejemplo

El primer atajo se dispara con solo pulsar S; el segundo exige mantener Alt.

// Incorrecto: basta con pulsar la tecla S
document.addEventListener('keydown', (e) => {
  if (e.key === 's') abrirBuscador();
});

// Correcto: requiere Alt + S
document.addEventListener('keydown', (e) => {
  if (e.altKey && e.key === 's') abrirBuscador();
});
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 F99 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

Este fallo se aplica al contenido web con el que se puede interactuar usando un teclado físico como mecanismo de entrada.

Descripción

Cuando se implementan atajos de teclado que usan únicamente teclas de carácter, las órdenes por voz pueden activar funciones de forma involuntaria. Los atajos de tecla de carácter usan una sola tecla, como una tecla de letra (incluidas mayúsculas y minúsculas), de puntuación, de número o de símbolo.

El contenido debe, o bien no implementar atajos de una sola tecla de carácter, o bien ofrecer opciones de configuración para desactivar esos atajos o para reasignarlos a atajos de teclado que empleen una tecla modificadora adicional, como Alt o Ctrl.

El uso de un atajo de teclado de una sola tecla no es un fallo si el atajo solo está activo cuando un elemento concreto de la interfaz tiene el foco. Por ejemplo, cuando un elemento select o un cuadro de lista personalizado tiene el foco, la introducción de teclas de un solo carácter para desplazarse por la lista es una función útil.

El procedimiento de prueba sugiere preguntar al autor (a menudo el desarrollador del sitio) si se usan atajos de teclado. Si esa información es fiable, el procedimiento puede ser más sencillo que pulsar todas las teclas.

El criterio de conformidad no se aplica cuando los atajos de una sola tecla solo están activos mientras ciertos elementos de la interfaz tienen el foco, por ejemplo, un elemento select. En este caso, pulsar una tecla de letra sirve para desplazarse rápidamente entre las opciones del select.

Examinar los scripts de la página y buscar manejadores de eventos de teclado habituales, como document.addEventListener('keydown' ...) , o el tratamiento de propiedades de eventos relacionadas con el teclado mediante código como .key, .code, .charCode o .keyCode, puede revelar la presencia de scripts que interceptan atajos de teclado sin que se mantengan pulsadas al mismo tiempo teclas modificadoras como ALT o Ctrl. Como hay varias formas de implementar eventos de teclas de carácter, este método no se considera fiable.

Algunos navegadores emplean atajos de una sola tecla con Shift. Por ejemplo, Firefox abre una búsqueda en la página al pulsar Shift + / y una búsqueda en los enlaces de la página al pulsar Shift + '. En estos casos, será necesario pulsar Esc o hacer clic en una parte vacía de la página para retirar el foco del campo de entrada del navegador.

Ejemplo

Una aplicación usa el atajo de una sola tecla S para abrir una ventana emergente de búsqueda. No hay ninguna opción de configuración disponible para desactivar o modificar el atajo.

Pruebas

Procedimiento

Si el sitio no ofrece opciones de configuración para desactivar o reasignar los atajos de teclado:

  1. Si al cargar la página el foco se sitúa en un campo de entrada, hacer clic en una parte vacía de la página para asegurarse de que ningún campo de entrada tiene el foco.
  2. Pulsar las teclas que el autor haya identificado como teclas de atajo o, si esa información no está disponible, pulsar todos los caracteres imprimibles (es decir, todas las teclas de números, letras, signos y puntuación). No pulsar las teclas modificadoras y de control no imprimibles, como Ctrl, Alt, Esc, las teclas de flecha y (si existen) las teclas de función F1-F12. También quedan exentas Space, Enter, Return, Tab y la tecla Delete.
  3. Mantener pulsada la tecla Shift y pulsar de nuevo las mismas teclas.
  4. Comprobar si al pulsar las teclas se ha activado alguna función.

Resultados esperados

Si la comprobación n.º 4 es falsa, entonces se da esta condición de fallo y el contenido falla el criterio de conformidad.

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