¿Cómo mejorar la accesibilidad de un carrusel con JavaScript?
Hoy en día, crear sitios web accesibles es una prioridad para asegurar que todos los usuarios puedan interactuar eficazmente, independientemente de las tecnologías que utilicen. En este contexto, uno de los componentes que más puede beneficiarse de una mejora en la accesibilidad es el carrusel. A continuación, aprenderemos cómo manejar las interacciones del usuario mediante el teclado, asegurando que el foco se controle debidamente.
¿Por qué es importante el manejo del foco del teclado?
El uso del teclado es crucial para garantizar que todos los usuarios, especialmente aquellos con discapacidades, puedan navegar de forma efectiva. En sitios web con carruseles u otros elementos interactivos, es fundamental que estos sean accesibles a través del teclado para no excluir a quienes dependen de dispositivos asistidos. Sin un manejo adecuado del foco, podríamos saltarnos botones y afectar la interacción del usuario.
¿Cómo ajustar el foco en un carrusel?
Para lograr que un carrusel sea amigable con el teclado, es necesario realizar algunos ajustes en su código. Un problema común es que los elementos como las flechas de navegación sean ignorados por el foco del teclado.
Podemos observar el código de un carrusel específico, donde las flechas están actualmente definidas como elementos div. Cambiarlos por elementos button permitirá que el navegador reconozca interacciones tanto con el ratón como con el teclado.
<!-- Cambiar de div a button es crucial --><buttonclass="carousel-control-prev">Anterior</button><buttonclass="carousel-control-next">Siguiente</button>
Al guardar estos cambios y refrescar la página, se debe observar que al navegar con el teclado, los botones ahora reciben el foco adecuadamente.
¿Cómo añadir estilos para indicar el foco?
Mejorar la accesibilidad no solo implica hacer ajustes funcionales, sino también visuales. Es útil agregar estilos CSS que proporcionen retroalimentación visual cuando un elemento tenga el foco. Esto se puede lograr a través del uso de propiedades como outline.
/* Añadir un estilo de enfoque para las flechas del carrusel */.carousel-control:focus{outline:3px solid #00FF00;/* Establece un contorno verde */}
Con estos estilos implementados, el usuario recibirá una clara señal visual que indica que un botón está enfocado, mejorando así la usabilidad del carrusel.
¿Qué se puede seguir mejorando con JavaScript en el carrusel?
Este es el primer paso hacia la accesibilidad, pero aún quedan aspectos que se pueden optimizar. En futuras lecciones, exploraremos cómo usar JavaScript para manejar cambios dinámicos en el carrusel, asegurando que cada movimiento y acción sea lo más fluida e inclusiva posible para todos los usuarios. Al seguir mejorando nuestros métodos y técnicas, no solo hacemos sitios web más inclusivos, sino que también damos un paso clave hacia un futuro donde la tecnología esté al alcance de todos.
Si bien es usual que un diseñador conozca de Html y Css, creo que tener un buen nivel de JavaScript no lo es. Por lo cual creo que todo el modulo 6 no es accesible para mi que tengo conocimiento 0 en el tema. Llegué aquí por que estaba en la ruta de diseño UI/UX, y no me niego a aprender algo nuevo cómo lo es este lenguaje, pero no es mi prioridad en este momento.
Con sólo HTML y CSS puedes generar un nivel de accesibilidad destacable, pero algunos casos si requieren JavaScript un poco queramos o no... Tal vez te ayudaría un poco el curso básico de JavaScript en caso de que te sientas algo perdido en el tema.
deberían tb advertir de tener base de JS
Exacto. Quizás en Platzi deberían añadir alguna especie de prerrequisitos a los cursos. No necesariamente como algo obligatorio mostrando diploma, sino como sugerencia
Como diseñadores UI/UX no creo que deban saber como manejar javascript, más bien con esta lección estan informados sobre lo que se puede hacer con javascript y a la hora de diseñar interfaces, pueden llegar a solicitarle a los desarrolladores que tengan en cuenta este tipo de peticiones cuando implementen ellos las interfaces.
No me cuadra algo con la filodofia de :"queremos darle una experiencia igual o parecida a todos nuestros Usuarios."
Personalmente, creo que por lo que hay que apuntar es dar un buena Usabilidad a todos los usuarios. en cuanto al carrusel, no veo problema que con el tabulador no se pueda pasar por el boton de flechita, si a pesar de esto se puede navegar por todos los elementos del carrusel, como si fuera una lista, esto desde mi uso del lector de pantalla. puesto que el pasar por menos botones tambien significa menos palabras que el lector de pantaalla te leee, si en ambas situaciones la informacion que se transmite es la misma. se debe hacer lo que sea mas comodo para el usuario no?
Bueno esto desde mi punto de vista. no se si se este violando alguna regla de la wacag al no pasar por ese boton.
pienso lo mismo, es decir si fuera un carrusel con muchos elementos entonces si, pero como son pocos no veo la necesidad, supongo que es para cuando haya muchos elementos
Como diseñador UI/UX es la primera vez que entro en contacto con el tan afamado Javascript, pero se me hace muy bien porque así me han dado ganas de aprender ese lenguaje de programación tan indispensable en Frontend.
Elementos que reciben foco: button y a. Hay otros?
Los inputs de los formularios
Ah si también, gracias :D
En esta clase se explica cómo extender la accesibilidad de un sitio web usando JavaScript, especialmente para manejar interacciones de usuarios que navegan con teclado. Se enfatiza la importancia del foco del teclado para garantizar una experiencia similar entre usuarios de mouse y tecnologías asistivas. En el proyecto del carrusel, se detecta que el foco se pierde al navegar con teclado debido a que las flechas están implementadas como div. Al cambiar estos elementos por button, el navegador reconoce automáticamente interacciones tanto por clic como por la tecla Enter. Además, se agregan estilos de foco para mantener coherencia visual con el diseño. Con estos ajustes, el carrusel se puede controlar correctamente con el teclado, sentando la base para manejar cambios dinámicos en la siguiente clase.
Y si tengo el "Scroll" Horizontal para el carrusel.... Ahi como le hago?
Si tienes un carrusel con scroll horizontal, puedes utilizar la propiedad 'scrollLeft' para mover el carrusel hacia la izquierda o hacia la derecha. Puedes ajustar el valor de 'scrollLeft' para mover el carrusel a la posición deseada.
Ya quiero profundizar más sobreJS
Igualmente, me falta aprender a dominar el lenguaje 😅
Haz la ruta de la Escuela de JavaScript después de este curso y vas a complementar mucho tu aprendizaje!
increíble
El tittulo tiene un error.
El título está bien, no te preocupes. Vamos a configurar nuestra página para que diferentes componentes (como el carousel) se puedan manejar con solo el teclado.
@trejocode te pido por favor que generemos conversaciones positivas y cumplamos el código de conducta, la idea no es hacer sentir mal a nuestros compañeros, sino todo lo contrario, ayudarlos y apoyarlos en lo que podamos.