Atajos de teclado de un solo carácter
Los atajos de teclado de un solo carácter (una sola letra, número o símbolo) deben poder desactivarse, reasignarse o estar activos únicamente cuando el componente relevante tiene el foco. Protege a las personas usuarias de control por voz y dictado frente a activaciones accidentales.
Qué exige
Si la página implementa un atajo de teclado usando únicamente teclas de letras, números, puntuación o símbolos —sin una tecla modificadora como Ctrl, Alt o Shift—, debe cumplirse al menos una de las siguientes condiciones:
- El atajo puede desactivarse en un menú de configuración.
- El atajo puede reasignarse para utilizar una o más teclas sin carácter imprimible (Ctrl, Alt, Shift, teclas de función).
- El atajo solo está activo cuando el componente relevante tiene el foco.
Este criterio existe principalmente para proteger a las personas usuarias de entrada por voz. Dragon NaturallySpeaking y Voice Control transcriben las palabras habladas como pulsaciones de teclas de caracteres, y una «k» suelta a mitad de una frase puede activar un atajo destructivo en Gmail, Slack o cualquier aplicación que use aceleradores de una sola letra.
Cómo cumplirlo
- Auditar cada manejador de tecla única en el código: escuchadores
keydown/keypressque compruebanevent.keyfrente a un carácter imprimible sin verificar también las teclas modificadoras. - Añadir un panel de configuración «Atajos de teclado» donde los usuarios puedan desactivarlos por completo. Gmail y Slack lo hacen bien.
- O bien: delimitar los atajos para que solo se activen cuando el foco esté dentro de la región correspondiente (por ejemplo,
j/kpara navegar por los correos solo cuando el foco está en la lista de mensajes, no mientras el usuario escribe en una respuesta). - Preferir atajos basados en modificadores (Ctrl+/, Alt+N) como opción predeterminada; reservar los atajos de una sola tecla para el modo de usuario avanzado de activación opcional.
Fallos frecuentes
- Atajos al estilo de Gmail con
j/k/r/aque se activan desde cualquier punto del documento, incluso dentro de áreas de texto con la configuración adecuada del marco de trabajo. - Cuadrículas de datos personalizadas donde
Deleteelimina una fila sin confirmación: aceptable para el teclado, pero problemático para las personas usuarias de voz que dicen «elimina esa coma». - Reproductores de vídeo en los que Space activa o pausa la reproducción globalmente en lugar de solo cuando el reproductor tiene el foco.
- Sitios de documentación con
/para enfocar la búsqueda que se activan incluso cuando el foco está en un editor de código embebido.
axe-core no detecta este problema: requiere revisión del código fuente o reglas automatizadas específicas del conjunto de pruebas más amplio de Deque. La mayoría de los fallos en producción solo se detectan cuando una persona usuaria de control por voz presenta una reclamación.
Por qué importa
Este criterio de conformidad se añadió en WCAG 2.1 específicamente porque la adopción de la entrada por voz creció rápidamente a partir de 2017. Un sitio que no cumple el criterio 2.1.4 puede resultar funcionalmente inutilizable para alguien que dicta: cada párrafo desencadena una acción diferente. También las personas usuarias de teclado con deficiencias motoras que ocasionalmente pulsan la tecla equivocada se benefician de poder desactivar los atajos de un solo carácter.