Mi Viaje de Accesibilidad: en busca de una Biblioteca de Componentes Accesibles

Rate this content
Bookmark

Crear aplicaciones web puede ser desafiante. Crear aplicaciones accesibles - aún más. Sin embargo, el verdadero desafío radica en mantener la accesibilidad en tu proyecto, ya que requiere conocimientos y habilidades más allá de los de desarrollo web tradicional. Para lograr esto, debes elegir las herramientas adecuadas para mantener un alto nivel de accesibilidad cuando se refactoriza el código, monitorear el estado de accesibilidad y probarlo automáticamente durante la integración continua. Para abordar estos desafíos, presentaré un enfoque diferente que entrelaza la accesibilidad en el núcleo de la aplicación web mediante la creación de una biblioteca de componentes accesibles en React. Discutiré los principios, herramientas y técnicas que utilizo para probar y mantener el nivel de accesibilidad a lo largo del tiempo, y te proporcionaré la receta inicial para impulsar el cambio de accesibilidad en tu organización.

This talk has been presented at React Advanced 2022, check out the latest edition of this React Conference.

FAQ

La accesibilidad se trata de inclusión y permite que todas las personas, incluidas aquellas con discapacidades, puedan usar aplicaciones y sitios web. Se enfoca en asegurar que todos los usuarios puedan navegar e interactuar con el contenido de manera efectiva.

Es crucial probar la accesibilidad para asegurar que todas las funcionalidades de una aplicación sean usables para personas con diversas capacidades, garantizando una experiencia inclusiva y evitando la exclusión de usuarios con discapacidades.

Una estrategia efectiva incluye hacer accesible cada componente desde el inicio, emplear etiquetas HTML adecuadas, automatizar las pruebas de accesibilidad y mantener un código accesible a lo largo de los cambios y actualizaciones del proyecto.

Se utilizan herramientas como Storybook para visualizar componentes, frameworks como React y TypeScript para la construcción, y Cypress junto con herramientas especializadas como CircusCI para pruebas y despliegue continuo.

Mantener un conjunto de pruebas de accesibilidad actualizado es vital. Esto permite verificar que los niveles de accesibilidad se mantengan altos incluso cuando se realizan grandes modificaciones en los componentes de la aplicación.

El primer paso es descomponer la aplicación en componentes más pequeños, identificar los comunes entre proyectos y comenzar a adaptar cada uno para que cumpla con los estándares de accesibilidad desde su diseño inicial.

La automatización de pruebas de accesibilidad ayuda a identificar y corregir problemas de forma eficiente, asegurando que los componentes cumplan con los requisitos de accesibilidad de manera consistente y sin depender exclusivamente de revisiones manuales.

Asaf Shochet Avida
Asaf Shochet Avida
23 min
24 Oct, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla discute el viaje del orador en la creación de aplicaciones accesibles y la importancia de evitar que se envíe código inaccesible. Explora el proceso de construcción y creación de componentes accesibles, enfatizando el uso de etiquetas HTML apropiadas y realizando pruebas funcionales y de accesibilidad. La charla también destaca los beneficios de la automatización en la prueba y solución de problemas de accesibilidad. En general, enfatiza la importancia de la accesibilidad y proporciona consejos prácticos para incorporarla en el desarrollo de software.

1. Mi Viaje en Accesibilidad

Short description:

La primera vez que tuve una prueba de accesibilidad, fue un éxito en un aspecto, pero un completo fracaso en el otro. Trabajamos duro para hacer que la aplicación fuera accesible, pero cada vez que hacíamos cambios, la accesibilidad quedaba atrás. El código estaba lleno de parches y trucos, no era mantenible a largo plazo.

Hola. La primera vez que tuve una prueba de accesibilidad hace unos años, fue un éxito en un aspecto, pero un completo fracaso en el otro. Teníamos una aplicación y trabajamos muy duro para hacerla accesible, aplicando muchos parches y técnicas específicas de accesibilidad y código accesible, pero cada vez que teníamos que cambiar algo en el código, por ejemplo, un esfuerzo de rebranding, nuevos colores o una nueva interacción, la accesibilidad simplemente se quedaba atrás porque nadie se acordaba de probarla. Por eso, la mayoría de las veces estaba rota, algo así como esto. Quiero decir, el código funcionaba en cuanto a funcionalidad, pero si mirabas bajo el capó, estaba lleno de parches, lleno de trucos, no era algo de lo que estuviéramos muy orgullosos. Y no era algo que se pudiera mantener durante mucho tiempo.

2. Mi Viaje en Accesibilidad: Introducción

Short description:

En mi otro proyecto, hicimos las cosas de manera diferente para hacerlo accesible desde el principio y de manera mantenible. Esta charla trata sobre mi viaje en accesibilidad y la búsqueda de una biblioteca de componentes accesibles. La accesibilidad se trata de inclusión y permitir que todos usen tu aplicación. Queremos evitar que se envíe código inaccesible. Comenzamos probando la accesibilidad paso a paso, como los flujos de inicio de sesión, olvidé mi contraseña, registro, cierre de sesión, compra y contacto de soporte.

Así que por eso, en mi otro proyecto, cuando comenzamos un nuevo proyecto de accesibilidad y en una empresa diferente, hicimos las cosas de manera diferente. Queríamos hacerlo accesible desde el principio y de manera mantenible. Y si estás abordando el mismo problema hoy o estás intentando hacer que tu aplicación sea accesible de una manera que dure, esta charla es para ti.

Así que déjame comenzar. Esta charla se llama mi viaje en accesibilidad, la búsqueda de una biblioteca de componentes accesibles, o como debería ser el nombre completo, mi viaje en accesibilidad, la búsqueda de una biblioteca de componentes accesibles que refleje, rediseñe y sea mantenible y testeable. Son pequeños puntos, pero son muy importantes para nosotros tener código accesible.

Así que déjame presentarme. Soy Asaf. Soy el padre de Sahr, Naziv, y he estado en el campo del desarrollo web durante más de una década en varios roles y actualmente soy el líder técnico de frontend para Avinst, una startup que se especializa en brindar a los desarrolladores excelentes herramientas de desarrollo para accesibilidad. Por ejemplo, tenemos algoritmos basados en visión por computadora y aprendizaje automático que ayudan a detectar y encontrar problemas de accesibilidad. Creamos extensiones para Chrome y otras extensiones para dispositivos móviles que ayudan a los desarrolladores y probadores a encontrar problemas en sus aplicaciones. Y desarrollamos SDK que amplían los marcos de prueba como Cypress o Selenium y les brindan complementos de accesibilidad para sus pruebas. Voy a profundizar en este último punto en breve en esta presentación.

Antes de comenzar, ¿qué es la accesibilidad? La accesibilidad se trata de inclusión. Se trata de permitir que todos entren. Permitir que todas las personas usen tu increíble aplicación. Por ejemplo, una persona con discapacidad física que no puede usar el mouse aún necesitará una forma de navegar por tu sitio web y hacer clic en tu menú desplegable y seleccionar la tercera opción que abre otro submenú, y luego seleccionar la cuarta opción desde allí. Entonces, si tienes algún tipo de navegación o interacción para los usuarios que todos tenemos en nuestras aplicaciones, quieres asegurarte de que esto también sea accesible para alguien que no puede usar el mouse. Y no es trivial. Debería serlo, pero no lo es. Entonces, lo que hacemos es evitar que este tipo de cosas salgan de nuestro código. Queremos enviar solo código que sea accesible desde el principio.

Cuando queremos hacer que nuestra propia aplicación sea accesible, pensamos en dónde deberíamos comenzar este esfuerzo. Tuvimos varias ideas. Todo provino del lado de las pruebas. Quiero decir, estas ideas son muy similares a las discusiones que tuvimos sobre las pruebas. Podemos probar el producto o probar la accesibilidad del flujo del producto. Por ejemplo, podemos cubrir el flujo de inicio de sesión, comenzar con la pantalla de inicio de sesión y luego confirmar que el cuadro de diálogo de inicio de sesión es válido, que el flujo de olvidé mi contraseña funciona y que el registro y el cierre de sesión también funcionan con el teclado y con el lector de pantalla, que es una tecnología accesible, por ejemplo. Lo mismo para el flujo de compra y el flujo de contacto de soporte. Disculpa mi voz. Tengo un poco de resfriado.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
React Advanced 2021React Advanced 2021
47 min
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
Top Content
The Talk discusses the balance between flexibility and consistency in design systems. It explores the API design of the ActionList component and the customization options it offers. The use of component-based APIs and composability is emphasized for flexibility and customization. The Talk also touches on the ActionMenu component and the concept of building for people. The Q&A session covers topics such as component inclusion in design systems, API complexity, and the decision between creating a custom design system or using a component library.
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Top Content
There is a need for a standard library of APIs for JavaScript runtimes, as there are currently multiple ways to perform fundamental tasks like base64 encoding. JavaScript runtimes have historically lacked a standard library, causing friction and difficulty for developers. The idea of a small core has both benefits and drawbacks, with some runtimes abusing it to limit innovation. There is a misalignment between Node and web browsers in terms of functionality and API standards. The proposal is to involve browser developers in conversations about API standardization and to create a common standard library for JavaScript runtimes.
Accesibilidad en Discord
React Advanced 2021React Advanced 2021
22 min
Accesibilidad en Discord
This Talk discusses the accessibility efforts at Discord, focusing on keyboard navigation and the challenges faced with implementing focus rings and outlines. The speaker showcases a unified focus ring system and a saturation slider to address accessibility concerns. They also highlight the implementation of role colors and the use of CSS filters for accessibility improvements. The Talk concludes with insights on runtime accessibility checking and the development of a performant core runtime system for checking accessibility issues.
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Today's Talk discusses building flexible, resilient, and future-proof React components using composition and configuration approaches. The composition approach allows for flexibility without excessive conditional logic by using multiple components and passing props. The context API can be used for variant styling, allowing for appropriate styling and class specification. Adding variants and icons is made easy by consuming the variant context. The composition and configuration approaches can be combined for the best of both worlds.
Configurando las Pruebas de Accesibilidad de Axe
TestJS Summit 2021TestJS Summit 2021
30 min
Configurando las Pruebas de Accesibilidad de Axe
Top Content
AXe is an accessibility engine for automated web UI testing that runs a set of rules to test for accessibility problems. It can be configured to disable or enable specific rules and run based on tags. Axe provides various options, but axe linter does not support all options. The importance of investing time and resources in accessibility is emphasized, as it benefits not only those with disabilities but improves the web for everyone. Manual testing is also highlighted as a necessary complement to automated tests for addressing accessibility issues.
Construyendo Bibliotecas de Componentes Multiplataforma para Web y Nativo con React
React Advanced 2021React Advanced 2021
21 min
Construyendo Bibliotecas de Componentes Multiplataforma para Web y Nativo con React
Top Content
This Talk discusses building cross-platform component libraries for React and React Native, based on a successful project with a large government-owned news organization. It covers the requirements for React Native knowledge, building cross-platform components, platform-specific components, styling, and the tools used. The Talk also highlights the challenges of implementing responsive design in React Native.

Workshops on related topic

Construye un Tablero Rico en Datos y Hermoso con la Rejilla de Datos de MUI X y Joy UI
React Summit 2023React Summit 2023
137 min
Construye un Tablero Rico en Datos y Hermoso con la Rejilla de Datos de MUI X y Joy UI
Top Content
WorkshopFree
Sam Sycamore
Siriwat (Jun) Kunaporn
2 authors
Aprende cómo utilizar el ecosistema completo de MUI para construir un tablero de gestión de proyectos hermoso y sofisticado en una fracción del tiempo que tomaría construirlo desde cero. En particular, veremos cómo integrar la Rejilla de Datos de MUI X con Joy UI, nuestra biblioteca de componentes más nueva y hermana del estándar de la industria Material UI.
Tabla de contenidos:- Presentando nuestro proyecto y herramientas- Configuración de la aplicación e instalación del paquete- Construcción del tablero- Prototipado, estilos y temas - Características de Joy UI- Filtrado, ordenación, edición - Características de la Rejilla de Datos- Conclusión, pensamientos finales, P&R
Accesibilidad web para Ninjas: Un enfoque práctico para crear aplicaciones web accesibles
React Summit 2023React Summit 2023
109 min
Accesibilidad web para Ninjas: Un enfoque práctico para crear aplicaciones web accesibles
Workshop
Asaf Shochet Avida
Eitan Noy
2 authors
En este masterclass práctico, te proporcionaremos las herramientas y técnicas que necesitas para crear aplicaciones web accesibles. Exploraremos los principios del diseño inclusivo y aprenderemos cómo probar nuestros sitios web utilizando tecnología de asistencia para asegurarnos de que funcionen para todos.
Cubriremos temas como el marcado semántico, los roles de ARIA, los formularios y la navegación accesibles, y luego nos sumergiremos en ejercicios de codificación donde podrás aplicar lo que has aprendido. Utilizaremos herramientas de prueba automatizadas para validar nuestro trabajo y asegurarnos de cumplir con los estándares de accesibilidad.
Al final de este masterclass, estarás equipado con el conocimiento y las habilidades para crear sitios web accesibles que funcionen para todos, y tendrás experiencia práctica utilizando las últimas técnicas y herramientas para el diseño inclusivo y las pruebas. ¡Únete a nosotros en este increíble masterclass de codificación y conviértete en un ninja de la accesibilidad web y el diseño inclusivo!
Pruebas automatizadas de accesibilidad con jest-axe y Lighthouse CI
TestJS Summit 2021TestJS Summit 2021
85 min
Pruebas automatizadas de accesibilidad con jest-axe y Lighthouse CI
Workshop
Bonnie Schulkin
Bonnie Schulkin
¿Incluyen tus pruebas automatizadas verificaciones de accesibilidad? Este masterclass cubrirá cómo comenzar con jest-axe para detectar violaciones de accesibilidad basadas en código, y Lighthouse CI para validar la accesibilidad de las páginas completamente renderizadas. Ninguna cantidad de pruebas automatizadas puede reemplazar las pruebas manuales de accesibilidad, pero estas verificaciones se asegurarán de que tus probadores manuales no estén haciendo más trabajo del necesario.
Aprende a utilizar Composables: La navaja suiza de los desarrolladores de Vue
Vue.js Live 2024Vue.js Live 2024
163 min
Aprende a utilizar Composables: La navaja suiza de los desarrolladores de Vue
Workshop
Juan Andrés Núñez Charro
Juan Andrés Núñez Charro
Los Composables (funciones de composición) son funciones con estado/sin estado que pueden aprovechar la API de reactividad de Vue, desacoplándola de los componentes.Este cambio de perspectiva abre la posibilidad de abordar escenarios comunes de una manera nueva y creativa. En este masterclass, aprenderás cómo resolver problemas típicos que enfrenta cada desarrollador de Vue, utilizando composables:
- Almacenamiento de datos;- Comunicación entre componentes;- Funciones de utilidad (DOM, API, etc);Y más.
Accesibilidad web en aplicaciones JavaScript
React Summit 2022React Summit 2022
161 min
Accesibilidad web en aplicaciones JavaScript
Workshop
Sandrina Pereira
Sandrina Pereira
A menudo vemos que JavaScript daña la accesibilidad de un sitio web. En esta masterclass, aprenderás cómo evitar errores comunes y cómo utilizar JS a tu favor para mejorar la accesibilidad de tus aplicaciones web.
En esta masterclass exploraremos múltiples ejemplos del mundo real con problemas de accesibilidad, y aprenderás cómo hacer que funcionen para las personas que utilizan un mouse o un teclado. También aprenderás cómo se utilizan los lectores de pantalla, ¡y te mostraré que no hay razón para tener miedo de usar uno!
Únete a mí y déjame mostrarte cómo la accesibilidad no limita tus soluciones o habilidades. ¡Al contrario, las hace más inclusivas!
Al final, serás capaz de:- Comprender los principios de WCAG y cómo están organizados- Conocer casos comunes en los que JavaScript es esencial para la accesibilidad- Crear enlaces, botones y elementos conmutables inclusivos- Utilizar regiones en vivo para errores y estados de carga- Integrar la accesibilidad en el flujo de trabajo de tu equipo de inmediato- Darte cuenta de que crear sitios web accesibles no es tan difícil como parece ;)
Creando aplicaciones React Native accesibles
React Summit Remote Edition 2021React Summit Remote Edition 2021
91 min
Creando aplicaciones React Native accesibles
Workshop
Scott Vinkle
Scott Vinkle
React Native es un framework utilizado para crear aplicaciones nativas de iOS y Android de una manera con la que los desarrolladores web ya pueden estar familiarizados. Pero, ¿cómo asegurarse de que tus aplicaciones React Native sean inclusivas y utilizables para todos? Scott compartirá consejos sobre cómo probar y construir aplicaciones React Native con accesibilidad integrada.