Onkeypress en elementos no focalizables
28 de Abril 2008
A raíz de una consulta hecha hace unos días en la lista de Acceso Web sobre el uso de onkeypress, hoy se daba la respuesta de que su uso es imprescindible para elementos que no son enlaces ni controles de formulario, es decir, para elementos que no pueden tener el foco cuando se utiliza el tabulador para navegar.
Efectivamente, si no se define un comportamiento para el evento onkeypress en este tipo de elementos, no es posible ejecutar la función asociada a ese evento mediante el teclado si esta sólo se ha definido para el evento onclick.
Para que un elemento no focalizable, como una capa o un párrafo, pueda tener el foco, hay que asignarle un valor al atributo tabindex. Esto implica que si hemos estructurado nuestro código en un orden lógico de navegación, una vez que asignemos a un elemento el atributo tabindex, deberemos asignárselo a todos los elementos focalizables de la página para no provocar un desorden en la navegación.
El atributo tabindex es otro de esos “pluses” que, en mi opinión, hacen un flaco favor a la accesibilidad y usabilidad de una página.
Una de las soluciones puede ser convertir el elemento no focalizable en focalizable (Ej: un párrafo en enlace) o proporcionarlo en caso de que no sea posible (Ej: un enlace “cerrar ventana” para una ventana o capa).
En esta página se pueden ver varios ejemplos del uso de onkeypress para elementos no focalizables con y sin el atributo tabindex.

Un comentario a “Onkeypress en elementos no focalizables”
Comentario: #1
Javascript y accesibilidad, el Agosto 15th, 2008:
[...] Habrá muchos casos en los que el uso de Javascript proporcionará más accesibilidad que una solución basada sólo en CSS. Un ejemplo claro es un menú desplegable, en el que, si no usamos Javascript, los usuarios de teclado tendrán dificultades, por no decir que les será imposible acceder a los submenús de cada opción, ya que sólo los elementos clicables o campos de formulario pueden tener el foco. [...]