Trampas de teclado: el detonante oculto de demandas

Monique Reid presentó una demanda contra Colgate-Palmolive en la Corte Suprema del Estado de Nueva York, Condado de Kings, el 2 de febrero de 2026. La demanda alegaba que el sitio web de la empresa discriminaba a los consumidores con discapacidad visual al mantener barreras que impiden el acceso con lectores de pantalla y la navegación por teclado, haciendo imposible comprar en línea sin interacciones basadas en el ratón.

Las trampas de teclado son un fallo técnico específico que aparece repetidamente en las demandas por accesibilidad. Una trampa de teclado ocurre cuando navegas con la tecla Tab hacia una sección de un sitio web y no puedes salir de ella con la misma tecla. El foco se queda atrapado en un menú desplegable, se abre un diálogo modal del que no puedes escapar, o JavaScript personalizado mantiene devolviendo el foco a un elemento en particular.

El Criterio de éxito 2.1.2 de WCAG 2.1 exige que, si el foco del teclado puede moverse hacia un componente, también debe poder moverse fuera de él usando solo la interfaz de teclado. La única excepción son los diálogos modales, que deben atrapar el foco intencionalmente mientras están abiertos, pero deben proporcionar métodos claros de salida, como la tecla Escape.

El sesenta y ocho por ciento de los usuarios de lectores de pantalla se encuentran con trampas de teclado o interfaces inaccesibles mensualmente, según WebAIM. El veinticinco por ciento de todos los problemas de accesibilidad digital están relacionados con un mal soporte del teclado. Alrededor de 7 millones de estadounidenses no pueden usar un ratón debido a discapacidades motoras.

Trampas de teclado: el detonante oculto de demandas

Trampas de teclado: el desencadenante oculto de demandas

Monique Reid presentó una demanda contra Colgate-Palmolive en la Corte Suprema del Estado de Nueva York, Condado de Kings, el 2 de febrero de 2026. Su demanda alegaba que el sitio web de la empresa discriminaba a los consumidores con discapacidad visual al mantener barreras que impiden el acceso con lectores de pantalla y la navegación por teclado, haciendo imposible comprar en línea sin interacciones basadas en el ratón.

El caso es uno entre miles. Pero la alegación específica sobre la navegación por teclado apunta a un fallo técnico particular que aparece repetidamente en las demandas por accesibilidad: las trampas de teclado.

Según la encuesta anual de WebAIM, el 68% de los usuarios de lectores de pantalla se encuentran con trampas de teclado o interfaces inaccesibles mensualmente. Para los aproximadamente 7 millones de estadounidenses que no pueden usar un ratón debido a discapacidades motoras, estas trampas no solo causan frustración. Hacen que los sitios web sean inutilizables.

Qué es realmente una trampa de teclado

El Criterio de éxito 2.1.2 de WCAG 2.1 es directo: si el foco del teclado puede moverse hacia un componente de la página usando una interfaz de teclado, entonces el foco debe poder moverse fuera de ese componente usando solo una interfaz de teclado.

Esa es la regla. En la práctica, una trampa de teclado ocurre cuando navegas con la tecla Tab hacia una sección de un sitio web y no puedes salir de ella con la misma tecla. Quizás el foco se queda atrapado en un menú desplegable. Quizás se abre un diálogo modal y no puedes escapar. Quizás JavaScript personalizado mantiene devolviendo el foco a un elemento particular sin importar cuántas veces presiones Tab.

El documento de comprensión del W3C lo expresa simplemente: los usuarios de teclado no se quedan atrapados. Asegúrese de que los usuarios siempre sepan cómo navegar fuera de los componentes.

Esto es importante porque las personas que dependen del teclado a menudo no tienen otro medio para navegar. Un usuario de ratón que encuentra una trampa puede simplemente hacer clic en otro lugar. Un usuario de teclado no puede.

Por qué las trampas de teclado desencadenan demandas

La ADA no menciona los sitios web. Pero el Departamento de Justicia ha dejado claro que el Título III se aplica a los espacios en línea, y los tribunales han coincidido en gran medida. Cuando el abogado de un demandante prueba un sitio y descubre que no puede navegar más allá de cierto punto, eso es una barrera concreta.

Las trampas de teclado son especialmente dañinas en los litigios porque son demostrables. Un demandante puede mostrar al tribunal exactamente lo que sucede. Presiona Tab. El foco desaparece dentro de un widget. Presiona Tab otra vez. Nada. Presiona Tab veinte veces. Sigue atrapado. No hay forma de completar una compra, enviar un formulario o acceder a la información.

La demanda contra Colgate-Palmolive alega exactamente esto: barreras que impiden la navegación por teclado, haciendo imposible comprar en línea sin interacciones basadas en el ratón. Esa es la teoría legal. Si requieres un ratón, estás excluyendo a las personas que no pueden usar uno.

Dónde se esconden las trampas de teclado

Las trampas de teclado aparecen en lugares predecibles. Los diálogos modales son el problema más común. Se abre un modal, el foco se mueve dentro, y el desarrollador olvida gestionar lo que sucede cuando el usuario alcanza el último elemento enfocable. El usuario navega con Tab más allá del último botón y el foco desaparece en el fondo, o peor, se queda atrapado por completo.

Los widgets personalizados también causan problemas. Los desarrolladores construyen menús desplegables, paneles de pestañas y carruseles usando divs y spans en lugar de HTML semántico. Añaden manejadores de clic pero olvidan los manejadores de teclado. Un usuario navega con Tab hacia el widget y no puede salir porque las teclas de flecha no hacen nada y Tab queda atrapado.

Los embebidos de terceros son otra fuente. El documento de la técnica G21 del W3C menciona específicamente los complementos como una trampa común. Si un complemento no proporciona un mecanismo de teclado para devolver el foco a la ventana padre, los usuarios pueden quedar atrapados en ese contenido. Esto era un problema mayor con Flash, pero los embebidos modernos como mapas interactivos o reproductores multimedia personalizados aún pueden atrapar el foco si no están construidos correctamente.

Los ejemplos de reglas ACT del W3C muestran un patrón de trampa simple:

html

<a href="#">Enlace 1</a> <button onblur="setTimeout(() => this.focus(), 10)">  Botón1 </button> <a href="#">Enlace 2</a>

Cuando el foco sale del botón, el setTimeout lo devuelve inmediatamente. El usuario nunca puede alcanzar el Enlace 2. Eso es una trampa.

La excepción de los diálogos modales

Hay un caso legítimo donde atrapar el foco es realmente necesario. Los diálogos modales deben atrapar el foco mientras están abiertos. Si navegas con Tab más allá del último botón de un modal y el foco se mueve a la página detrás de él, los usuarios se confunden y pueden perder el contexto por completo.

El ejemplo del W3C lo explica: cuando se ha abierto un diálogo, el foco queda atrapado dentro del diálogo. Navegar con Tab desde el último control lleva el foco al primer control. El diálogo se cierra activando el botón Cancelar o Aceptar.

Esto está permitido porque la trampa es intencional y el usuario tiene una forma clara de salir. La clave es que el usuario sepa cómo salir. Eso es lo que significa el criterio de éxito cuando dice que si requiere más que las teclas de flecha o Tab sin modificar u otros métodos de salida estándar, se informa al usuario del método.

En la práctica, eso significa que los modales deben cerrarse con la tecla Escape, y los botones para cerrar el modal deben estar claramente disponibles. El usuario nunca debe quedar atrapado sin forma de salir.

Cómo es el atrapamiento de foco adecuado

La guía de TestParty muestra una implementación correcta de modal:

javascript

modal.addEventListener('keydown', (e) => {  if (e.key === 'Escape') {    closeModal();    triggerButton.focus(); // Devuelve el foco al disparador  }  if (e.key === 'Tab') {    // Atrapa el foco dentro del modal, pero permite el ciclo    const focusable = modal.querySelectorAll(      'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'    );    const firstFocusable = focusable[0];    const lastFocusable = focusable[focusable.length - 1];    if (e.shiftKey && document.activeElement === firstFocusable) {      e.preventDefault();      lastFocusable.focus();    } else if (!e.shiftKey && document.activeElement === lastFocusable) {      e.preventDefault();      firstFocusable.focus();    }  } });

Esto mantiene el foco dentro del modal mientras está abierto pero recorre los elementos disponibles. Cuando el modal se cierra, el foco regresa a lo que lo abrió. Ese es el patrón.

El ejemplo de Mozilla

Incluso las grandes organizaciones se equivocan en esto. El proyecto bedrock de Mozilla, que impulsa el sitio web de Mozilla.org, tuvo un problema reportado en marzo de 2025 sobre su menú de navegación móvil.

El problema: al abrir el menú de navegación móvil en un dispositivo con teclado externo o tecnología de asistencia, el foco no estaba confinado al menú. Los usuarios podían salir con Tab y aterrizar en elementos de página ocultos detrás del menú abierto.

El informe del problema describe el comportamiento esperado: cuando el menú de navegación móvil está abierto, el foco del teclado debe permanecer dentro del menú. Los usuarios solo deberían poder navegar por los elementos del menú hasta que el menú se cierre.

Esto es lo inverso del problema habitual de trampa. Aquí el menú no atrapaba el foco cuando debería haberlo hecho. Ambos fallos causan confusión. Los usuarios esperan que el foco permanezca en un menú abierto hasta que lo cierren intencionalmente. Cuando no es así, la navegación se vuelve impredecible.

El problema sigue abierto. Mozilla aún no lo ha solucionado.

Pruebas para detectar trampas de teclado

Probar para detectar trampas es simple pero tedioso. Necesitas recorrer cada página sin más que un teclado.

La guía de UXPin recomienda comenzar desde la barra de direcciones del navegador. Presiona Tab repetidamente hasta que regreses a la barra de direcciones. Anota cualquier elemento omitido, orden ilógico o estados de foco invisibles. Luego hazlo de nuevo con Shift+Tab para probar la navegación inversa.

Para widgets específicamente, necesitas probar que todos los elementos interactivos respondan a las teclas apropiadas. Los enlaces se activan con Enter. Los botones se activan con Enter y Espacio. Las casillas de verificación se alternan con Espacio. Los botones de opción se navegan con las teclas de flecha y se seleccionan con Espacio.

Para widgets personalizados como pestañas, acordeones y menús, necesitas probar el patrón de interacción completo. ¿Puedes abrir el menú con Enter o Espacio? ¿Puedes navegar por los elementos con las teclas de flecha? ¿Puedes cerrarlo con Escape? ¿El foco regresa a donde comenzó?

La regla ACT del W3C proporciona un enfoque de prueba más formal. La regla verifica la existencia de trampas de teclado probando si el foco puede moverse fuera de un componente en cualquier dirección. Si puedes escapar en una dirección pero no en la otra, eso todavía se considera aprobado según la regla técnica, pero se reconoce como una mala práctica.

El requisito de instrucciones

A veces las trampas son inevitables. Un widget complejo podría necesitar manejar sus propias interacciones de teclado. En esos casos, el criterio de éxito requiere que se informe al usuario del método para mover el foco fuera.

Los ejemplos del W3C muestran cómo funciona esto. En un ejemplo, dos botones crean una trampa pero se proporcionan instrucciones antes de los botones: "Presione Ctrl+M para Salir". La tecla Escape está programada para funcionar, y las instrucciones son accesibles mediante teclado. Eso aprueba.

Otro ejemplo coloca las instrucciones dentro de la propia trampa. Un párrafo dentro de la región atrapada dice "Presione Ctrl+M para Salir". Eso también aprueba.

Lo que falla es tener instrucciones que no funcionan, o no tener instrucciones en absoluto. El W3C muestra un ejemplo fallido donde las instrucciones dicen "Presione Ctrl+M para Salir" pero el script no implementa realmente esa combinación de teclas. El usuario lee el texto de ayuda, sigue las instrucciones y no sucede nada. Eso es un fallo.

El caso de negocio más allá de las demandas

El riesgo legal es real. Pero la accesibilidad del teclado es importante por razones más allá de evitar litigios.

Alrededor del 20% de los usuarios en todo el mundo viven con discapacidades que influyen en cómo interactúan con la web. Eso incluye personas con discapacidades motoras, usuarios ciegos que dependen de lectores de pantalla y personas con baja visión que encuentran difícil seguir el puntero del ratón.

También hay circunstancias temporales. Usuarios con brazos rotos, brotes de síndrome del túnel carpiano, o aquellos que trabajan en espacios reducidos pueden depender temporalmente de la navegación por teclado.

Y están los usuarios avanzados. Muchos desarrolladores y usuarios técnicos prefieren la navegación por teclado por eficiencia. Un mal soporte del teclado frustra a estos usuarios y aumenta el tiempo de finalización de tareas.

Asombrosamente, el 25% de todos los problemas de accesibilidad digital están relacionados con un mal soporte del teclado. Corregir las trampas de teclado aborda una parte significativa de las barreras de accesibilidad.

Correcciones comunes para trampas comunes

La mayoría de las trampas de teclado tienen soluciones directas una vez que sabes dónde buscar.

Diálogos modales: Implementa el patrón de atrapamiento de foco mostrado anteriormente. Asegúrate de que Escape cierre el diálogo. Devuelve el foco al elemento desencadenante cuando el diálogo se cierre.

Menús desplegables personalizados: No los construyas con divs. Usa HTML semántico con atributos ARIA adecuados si es necesario. Asegúrate de que las teclas de flecha naveguen por las opciones. Asegúrate de que Tab salga del menú cuando esté cerrado.

Embebidos de terceros: Pruébalos a fondo. Si un embebido atrapa el foco, busca comandos de teclado documentados. Si no existen, considera reemplazar el embebido o añadir instrucciones visibles antes de que los usuarios entren en él.

Manejadores de eventos que roban el foco: Verifica cualquier JavaScript que llame a .focus() en un evento blur. Los ejemplos del W3C muestran este patrón:

javascript

<button onblur="setTimeout(() => this.focus(), 10)">

Cualquier código que vuelva a enfocar un elemento cuando pierde el foco crea una trampa. Elimínalo.

Valores positivos de tabindex: Los valores positivos de tabindex crean un orden de foco impredecible. Usa elementos HTML semánticos que son naturalmente enfocables y siguen el orden del DOM. Para elementos personalizados, usa tabindex="0" para incluirlos en el orden natural.

El problema de las superposiciones

Algunas empresas venden superposiciones de accesibilidad que afirman corregir automáticamente las trampas de teclado. No lo hacen.

Las superposiciones funcionan inyectando JavaScript que intenta modificar el comportamiento después de que la página se carga. No pueden corregir problemas estructurales como la falta de manejadores de teclado. A menudo entran en conflicto con la propia tecnología de asistencia de los usuarios. Y crean la ilusión de accesibilidad sin lograrla realmente.

Si confías en una superposición para corregir las trampas de teclado, prueba tu sitio con un teclado. Retira tu ratón. Intenta navegar. Es probable que descubras que las trampas siguen ahí.

Qué significa el caso Colgate-Palmolive

La demanda de Monique Reid contra Colgate-Palmolive es típica. Alega que el sitio web discrimina a los consumidores con discapacidad visual al mantener barreras que impiden el acceso con lectores de pantalla y la navegación por teclado.

El caso está en el Condado de Kings, Nueva York, que es una jurisdicción activa para demandas por ADA. La demandante está representada por Shaked Law Group, que presenta muchas de estas demandas.

El resultado dependerá de si Colgate-Palmolive puede demostrar que su sitio no atrapa a los usuarios de teclado. Si un experto del demandante puede demostrar que el foco se atasca en widgets, modales o componentes personalizados, la empresa enfrenta responsabilidad.

La ADA en sí misma permite medidas cautelares, lo que significa que se podría ordenar a Colgate-Palmolive que arregle su sitio. Pero la ley del estado de Nueva York permite daños y perjuicios. La demanda incluye reclamaciones por discriminación por discapacidad bajo la ley estatal.

Lo que debes hacer ahora

Prueba tu sitio con un teclado hoy. Desconecta tu ratón. Comienza en la barra de direcciones. Presiona Tab a través de cada página.

Presta atención a estos problemas específicos:

  • Elementos omitidos: Si no puedes alcanzar algo con Tab, es inaccesible.
  • Foco invisible: Si no puedes ver dónde estás, estás perdido.
  • Foco atrapado: Si entras en una sección y no puedes salir, tienes una trampa.
  • Falta de rutas de escape: Si se abre un modal y Escape no lo cierra, los usuarios quedan atrapados.
  • Mala gestión del foco: Si el foco no regresa al desencadenante después de que se cierra un modal, los usuarios pierden el contexto.

Documenta lo que encuentres. Arregla las trampas primero. Son violaciones de Nivel A, lo que significa que fallar en ellas implica fallar en la accesibilidad básica.

La técnica G21 del W3C proporciona un procedimiento de prueba simple. Navega con Tab por el contenido de principio a fin. Verifica que el foco del teclado no quede atrapado en ningún contenido. Si el foco parece atrapado, verifica que la información de ayuda explique cómo salir y que se pueda acceder a ella mediante teclado.

Eso es todo. No se requieren herramientas complejas. Solo un teclado y atención.

La conclusión

Monique Reid demandó a Colgate-Palmolive el 2 de febrero de 2026, alegando barreras de navegación por teclado. No es la primera ni será la última.

Las trampas de teclado son un desencadenante oculto de demandas porque son fáciles de encontrar e imposibles de defender. Cuando el abogado de un demandante navega con Tab por tu sitio y se queda atrapado, tiene evidencia. Cuando un usuario de lector de pantalla encuentra un widget del que no puede escapar, tiene una historia.

La solución es directa. Prueba con un teclado. Encuentra las trampas. Corrige el código. Documenta tu trabajo. No es caro. No es complicado. Es simplemente necesario.

El sesenta y ocho por ciento de los usuarios de lectores de pantalla encuentran estos problemas mensualmente. El veinticinco por ciento de todos los problemas de accesibilidad están relacionados con el teclado. Siete millones de estadounidenses no pueden usar un ratón.

Tu sitio debería funcionar para ellos. Si no es así, una demanda podría ser el menor de tus problemas. El costo real son los usuarios que estás excluyendo cada día.

Frequently Asked Questions

A keyboard trap is any situation where someone navigating with a keyboard gets stuck. They press Tab to move forward and focus either doesn't move at all, gets stuck cycling through the same few elements, or disappears entirely. They can't reach other parts of the page. The W3C's example shows a button with onblur="setTimeout(() => this.focus(), 10)" that pulls focus back every time the user tries to leave. That's a trap.
Because they're easy to demonstrate. A plaintiff's lawyer can sit in court, press Tab on a keyboard, and show the judge that focus gets stuck. There's no way to complete a purchase, submit a form, or access information without a mouse. The Colgate-Palmolive suit alleges exactly this: barriers that prevent keyboard navigation, making online shopping impossible without mouse-based interactions. The ADA doesn't mention websites, but courts have largely agreed that excluding people who can't use a mouse violates the law.
Modal dialogs are the most common offender. A modal opens, focus moves inside, and the developer forgets to manage what happens when the user reaches the last focusable element. Custom widgets like dropdown menus built with divs and spans instead of semantic HTML cause problems. Third-party embeds like interactive maps or media players can trap focus. The Mozilla bedrock project had an issue where their mobile navigation menu didn't trap focus when it should have, letting users tab out and land on hidden page elements.
Yes. Modal dialogs must trap focus while they're open. If you tab past the last button in a modal and focus moves to the page behind it, users get confused. The W3C's example explains that when a dialog is opened, focus is trapped within it, and tabbing from the last control takes focus to the first control. The dialog is dismissed by activating Cancel, OK, or pressing Escape. This is allowed because the user knows how to leave. That's what the success criterion means when it says users must be advised of the exit method.
Unplug your mouse. Start at the browser's address bar. Press Tab repeatedly until you return to the address bar. Note any elements you can't reach, illogical order, or invisible focus states. Then do it again with Shift+Tab to test reverse navigation. For widgets, test that all interactive elements respond to appropriate keys. Links activate with Enter. Buttons activate with Enter and Space. Checkboxes toggle with Space. Radio buttons navigate with arrow keys. For custom widgets, test the full interaction pattern. Can you open a menu, navigate with arrow keys, close with Escape, and return focus to where you started?
The ACT rule checks whether keyboard focus can move away from a component in any direction. If you can escape in one direction but not the other, that's still considered passing under the technical rule, but it's recognized as a poor practice. The formal test involves checking if focus can move to another component, and if it can't, checking whether help information explains how to exit and can be accessed via keyboard.
That can work, but the instructions must actually function. The W3C's examples show two passing scenarios. One where instructions appear before the trapped region: "Press Ctrl+M to Exit." Another where instructions appear inside the trapped region itself. Both pass if the key combination actually works. What fails is having instructions that don't work. If the help text says "Press Ctrl+M to Exit" but the script doesn't implement that key combination, the user reads the instructions, follows them, and nothing happens. That's a failure.
Mozilla's bedrock project had an issue filed in March 2025 about their mobile navigation menu. When opening the menu on a device with an external keyboard or assistive technology, focus wasn't confined to the menu. Users could tab out and land on page elements hidden behind the open menu. The issue report describes the expected behavior: when the mobile navigation menu is open, keyboard focus should remain within the menu until it's closed. The issue remains open. Mozilla hasn't fixed it yet.
Most traps have straightforward fixes. For modal dialogs, implement focus trapping that cycles through focusable elements while the modal is open, ensure Escape closes the modal, and return focus to the trigger element when it closes. For custom dropdowns, use semantic HTML with proper ARIA attributes, ensure arrow keys navigate options, and ensure Tab exits when closed. For third-party embeds, test thoroughly and add visible instructions before users enter. For event handlers that steal focus, remove any code that calls .focus() on a blur event. For positive tabindex values, remove them and use semantic HTML with natural DOM order.
About 20% of users worldwide live with disabilities that influence how they interact with the web. There are also temporary circumstances. Users with broken arms, carpal tunnel flare-ups, or those working in cramped spaces may temporarily rely on keyboard navigation. Power users prefer keyboard navigation for efficiency. A staggering 25% of all digital accessibility issues are tied to poor keyboard support. Fixing keyboard traps addresses a significant portion of accessibility barriers.
No. Overlays inject JavaScript that attempts to modify behavior after the page loads. They can't fix structural problems like missing keyboard handlers. They often conflict with users' own assistive technology. They create the illusion of accessibility without actually achieving it. If you're relying on an overlay to fix keyboard traps, test your site with a keyboard. Remove your mouse. Try to navigate. The traps will still be there.
The ADA allows injunctive relief, meaning you can be ordered to fix your site and pay the plaintiff's attorney fees. State laws like New York's human rights law allow damages. The Colgate-Palmolive suit includes disability discrimination claims under state law. Lawsuits can settle for $5,000 to $15,000 or more. You can get sued repeatedly until you fix the site. The real cost is the users you're excluding every day.
Test your site with a keyboard today. Unplug your mouse. Start at the address bar. Press Tab through every page. Watch for skipped elements you can't reach. Watch for invisible focus states where you can't see where you are. Watch for trapped focus where you enter a section and can't leave. Watch for missing escape routes where a modal opens and Escape doesn't close it. Watch for improper focus management where focus doesn't return after a modal closes. Document what you find. Fix the traps first. They're Level A violations, which means failing them means failing basic accessibility.

Ready to Find Your Perfect Vehicle?

Browse our extensive inventory or schedule a test drive today!

Janeth

About Janeth

Comments (0)

No comments yet.

Get More Info