Y después de que el botón esté enfocado, imagina que tienes como cinco botones en una fila, necesitas dar una indicación de cuál de los botones está enfocado. Y luego, si te enfocas en él, necesitas admitir la tecla Enter o la tecla Espacio como una alternativa al clic. Y lo último, queremos indicar a la tecnología de asistencia que el elemento es un botón. Así que le dirá a los lectores de pantalla u otras herramientas de asistencia que esto es un botón.
De acuerdo, ahora que tenemos estas demandas en mente, vamos a ver el código. Entonces, esto es un comienzo básico para un botón. Es un Div, tiene una clase y un ID, para poder usarlo para el estilo. Tiene un OnClick que abre una alerta, y dice, Soy un botón. Ahora hagámoslo enfocable con el teclado. Para hacerlo, usaremos el atributo TabIndex. El atributo TabIndex le dice al navegador que este elemento está en la lista de tabulación. Entonces, cuando el usuario hace clic en la tecla Tab, eventualmente se enfocará en este elemento. Ahora queremos asegurarnos de que funcione la tecla Enter. No hay una forma fácil de hacerlo, sino agregar un escucha de eventos que escuche las pulsaciones de teclas. Y ahora necesitamos filtrar estas pulsaciones de teclas para ver, si es un Enter, debemos activar la función. Si no es Enter, no debemos hacer nada. Tal vez si es una barra espaciadora, también deberíamos activarlo, depende del sistema operativo, no estoy seguro. Pero también se deben hacer algunas cosas allí. Y ahora queremos decirle a los lectores de pantalla que este elemento es un botón, así que usaremos el atributo de rol.
De acuerdo, lo que tenemos aquí es un botón funcional, pero es solo el comienzo de un botón porque nuestro botón necesitará tener un estado habilitado, un estado deshabilitado, un modo primario, un modo secundario, tal vez un modo para un botón con imágenes, tal vez debería tener un estado específico para una página específica. Quiero decir, el código solo aumentará a partir de aquí. Y este código en realidad ni siquiera cubre todos los aspectos de accessibility. Se necesita mucho código. ¿Qué tal si te digo que hay una forma diferente, una fácil? ¿Qué tal si simplemente usamos la etiqueta de botón de HTML? Entonces, ¿qué sucederá si usamos la etiqueta de botón de HTML? Obtendremos todas estas cosas de forma gratuita porque HTML tiene algunas excelentes características de accessibility integradas. Así que obtendremos el enfoque del teclado, con alguna indicación. Puedes darle estilo si quieres. Obtendremos el evento de pulsación de teclas y obtendremos el rol de forma gratuita, y no tenemos que preocuparnos por ello. Entonces, lo primero que aprendimos al construir nuestra propia Accessibility Component Library es que debemos amar las etiquetas de HTML y no solo los divs para todo. Nos ahorrará mucho tiempo en testing, y nos dará características de forma gratuita. Esto es cierto para los botones, pero también es cierto para los campos de entrada, las etiquetas, los encabezados y otros atributos.
Comments