Para una buena experiencia de usuario, la accesibilidad y la disponibilidad del sitio web/aplicación web, así como la funcionalidad, son cruciales.
Cuando nuestro sitio web se ejecuta bien/experiencia es bueno, los usuarios no lo saben, pero definitivamente lo sentirán cuando no lo estamos haciendo bien. Una parte importante de la disponibilidad y accesibilidad de la aplicación es el procesamiento del enfoque de entrada, pero este es otro punto que los desarrolladores a menudo pasan por alto.
Un ejemplo de mal manejo del enfoque de entrada: abra una ventana después de hacer clic en un enlace, pero no enfoca el cursor en ningún elemento en la ventana. Peor aún: concéntrese en un elemento en la ventana modal, pero el enfoque no regresa después del cierre. Idealmente, se guarda una referencia cuando se activa el enlace y el cursor se centra en una nueva ventana y mueve el cursor hacia atrás cuando se cierra la ventana.
Pero, ¿qué pasa si no sabe en qué elemento se encuentra el cursor de entrada ahora?
El javascript
Es fácil de usar document.activeElement para encontrar el elemento seleccionado actualmente:
La copia del código es la siguiente:
var focusedElement = document.activeElement;
/* Por ejemplo, un ejemplo:
var gatiggerElement = document.activeElement;
mymodal = new MyModal ({
Onopen: function () {
this.container.focus ();
},
onClose: function () {
TriggerElement.focus ();
}
});
*/
Esta propiedad no solo está disponible en elementos de entrada regulares, sino que también incluye campos de formulario o enlaces de etiqueta <a>, sino que cualquier elemento con el conjunto de atributos TabIndex está disponible.
La razón por la que me gusta documento. ActiveElement es que no necesita usar oyentes de escucha de eventos o delegar a los oyentes para rastrear el elemento y enfocarlo; puede obtener esta propiedad en cualquier momento. Por supuesto, antes de usar tales características, debe hacer muchas pruebas, ya sea que haya errores en las condiciones de navegador o carrera. En general, estoy muy satisfecho con eso y lo encuentro muy confiable.