Parece que en la mayoría de los navegadores, un <input type="submit">
trata tanto de [barra espaciadora] como de [enter] como un clic, pero un enlace <a>
solo trata [enter] como un clic.jQuery: ¿evento de clic de activación en los enlaces con la barra espaciadora?
Mi aplicación utiliza una serie de enlaces formateados para simular botones, por lo que un usuario que está acostumbrado a tabular un botón y presionar [barra espaciadora] se verá frustrado.
Este poco de jQuery resuelve el problema:
$("a.Button").die("keypress").live("keypress", function(e) {
if (e.which == 32) {
$(this).trigger("click");
e.preventDefault();
}
});
Mi pregunta: ¿Hay alguna razón para no hacerlo? Soy un poco reacio a anular el comportamiento predeterminado del navegador en algo tan básico como esto, pero como ya estoy abusando de la etiqueta de enlace para que parezca un botón, al menos de esta manera no estoy violando las expectativas del usuario. promover.
FWIW esta es una aplicación con un público limitado. Javascript es un requisito establecido para usarlo. Hace un uso intensivo de mapas, cuadros, cuadrículas editables y otros elementos visuales y/o interactivos, y no tengo claro si sería posible hacerlo utilizable mediante un lector de pantalla. –
Esto no parece funcionar para los botones de enlace ASP.NET que producen elementos de anclaje con un href de 'javascript: WebForm_DoPostBackWithOptions (new WebForm_PostBackOptions ("ctl00 $ main $ uclFind $ uclEntry $ btnGet", "", true, "", "", falso, verdadero)) ' –