My Heart Is In the Right Place, but the DOM Isn't

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 17 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 17 - 21, 2025. New York, US & Online
Learn more
Bookmark
Project website
Rate this content

An enthusiastic look at some real-life horror stories of accessibility gone wrong. Learn accessibility best practices by examining cases where some people (myself included) built the right things the wrong way. Some customers were simply confused, while others literally became nauseous of what was built. Come learn from (my) mistakes while having a good laugh.

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

Kyle West
Kyle West
18 min
17 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Kyle West enfatiza la importancia de construir productos accesibles y comparte experiencias para garantizar la accesibilidad. Un enfoque en etiquetas ARIA precisas y el impacto en la accesibilidad. Optimización de la accesibilidad con etiquetas adecuadas y utilizando el atributo aria-hidden. Lecciones en el uso de ARIA, el atributo tabindex y la importancia de revisiones de código de calidad. Abordar los trastornos vestibulares en el diseño web con soluciones como la media query prefersReduceMotion. Mejorar la comodidad del usuario con consultas de accesibilidad y la importancia de un diseño inclusivo centrado en el usuario en el desarrollo de productos.

1. La Importancia de la Accesibilidad en el Desarrollo Web

Short description:

Kyle West, ingeniero web y líder de accesibilidad, enfatiza la importancia de construir productos accesibles. Compartiendo experiencias y desafíos enfrentados para garantizar la accesibilidad, incluyendo una anécdota interesante sobre 'potato code' encontrada durante una interacción con el usuario.

Hola a todos. Me llamo Kyle West. Soy ingeniero web y líder de accesibilidad para Family Search. El título de mi charla es Mi Corazón Está en el Lugar Correcto, pero el DOM No. Uno de mis roles principales es que soy coautor de nuestra biblioteca de sistemas de diseño React, que se utiliza mucho en todos nuestros productos. Como autor de un sistema central que es utilizado por la mayoría de nuestros, casi todos nuestros usuarios, siempre he sentido una responsabilidad adicional por construir un producto accesible que esté disponible para todos. Esto a menudo me ha llevado a la guía de prácticas de autoría ARIA, que es proporcionada por W3C. Es un recurso maravilloso para cualquiera que esté tratando de construir un producto que se ajuste a las mejores prácticas de la industria.

Si has estado allí antes, sin duda habrás visto este banner en la parte superior, que dice, No ARIA es mejor que un mal ARIA. Tienen un enlace maravilloso al que podríamos hacer clic y leer juntos si quisiéramos, pero es muy lógico y explica totalmente por qué eso es importante. Pero he aprendido más que de la documentación. He tenido mis propias experiencias de vida. A lo largo de mi tiempo, he visto muchas veces en las que yo y otros hemos intentado hacer lo correcto, pero no lo hicimos lo suficientemente bien como para ser efectivos. Tengo unas tres de esas historias que me gustaría compartir contigo.

La primera para empezar, probablemente hayas oído hablar de spaghetti code y probablemente con él ravioli code, pero probablemente no hayas oído hablar de potato code, que es el título de mi primera historia. Para dar un poco de contexto, una cosa que hago es reunirme periódicamente con algunos de mis clientes ciegos para entender cómo es su experiencia e identificar cualquier problema que puedan estar enfrentando, obtener comentarios. Me reúno periódicamente con ellos. Una vez, estaba reuniéndome con una mujer que es ciega. Ella trabaja en nuestro departamento de soporte y a menudo atiende las llamadas de otros clientes ciegos. Esa semana, había notado algo que estaba un poco fuera de lo que esperaba, y quería mostrarnos cuál era el problema.

Si no estás familiarizado, la forma en que un usuario ciego interactúa con una computadora es a través de una herramienta llamada lector de pantalla, que toma la información gráfica mostrada en la pantalla y luego la lee en voz alta al usuario. Luego, el usuario tiene un conjunto elevado de atajos de teclado que le permiten navegar por la página. En otras palabras, en lugar de que tú le grites a la computadora, ahora la computadora te grita a ti. Bueno, para este caso particular, el problema que nuestro usuario había encontrado estaba en una página que se veía algo así. Tiene un encabezado en la parte superior con algunos detalles importantes sobre la información en la página, y luego una serie de tarjetas principales que contienen todo tipo de información importante, y luego una serie de barras laterales más pequeñas con algunos widgets de tarjetas más pequeñas que realizan ciertas acciones relacionadas con la página. El problema que ella quería señalarnos estaba en la parte inferior de la sección de la barra lateral, y mientras navegaba a esa parte de la página, en el camino, aproximadamente a la mitad de la barra lateral, el lector de pantalla dijo algo que encontramos muy intrigante. Dijo, Enlace potato. Ella simplemente lo pasó por alto como si no fuera gran cosa. Dijimos, espera, espera, espera, vuelve atrás. ¿Dijiste potato, o el lector de pantalla dijo potato? Ella dijo, sí, lo hizo.

2. The Impact of Accurate ARIA Labels

Short description:

Explorando el concepto de 'potato code' en el desarrollo web, destacando la importancia de las etiquetas ARIA precisas y el impacto en la accesibilidad.

Cuando la gente me pregunta al respecto, les he estado diciendo que no es realmente una patata. Es solo un carácter o algo que nuestro lector de pantalla no entiende, y por eso se confunde y dice patata. Pero no es realmente una patata, así que pueden simplemente ignorarlo. Bendita sea. Ella tenía tanta confianza en nosotros, los ingenieros, que asumió que era el lector de pantalla el que tenía el problema y no nuestro código.

Bueno, yo no confío tanto en nuestro código, así que fui y traté de encontrar esto de inmediato. No me llevó mucho tiempo llegar a esta pequeña joya donde, como puedes ver, alguien había codificado manualmente la etiqueta ARIA de patata en un icono. Si no estás familiarizado, ARIA label es un atributo especial que el lector de pantalla utiliza para que nosotros podamos decir, oye, para esta parte del DOM, usa el valor dado para describirlo.

Así que cuando llegamos allí con el lector de pantalla, dijo patata, lo cual no es realmente ideal para la situación, ya que obviamente no era una patata. La mayoría de las veces, una etiqueta ARIA es algo bueno tener, pero en nuestro caso, simplemente se puso allí de manera superflua, lo que me da la definición de lo que ahora llamo código patata, que es código que nunca debería haber pasado una revisión de código. Este es un ejemplo claro de que no ARIA es mejor que un mal ARIA.

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

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.
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.
Elementos Interactivos Anidados: Una Pesadilla en Accesibilidad
React Advanced 2023React Advanced 2023
23 min
Elementos Interactivos Anidados: Una Pesadilla en Accesibilidad
Top Content
Nested interactive elements can cause accessibility issues on websites, and the speaker shares a personal experience with an accessibility bug involving a list component. Mitigating nested interactive structures involves limiting these patterns during development and restructuring existing elements. The speaker provides recommendations for improving accessibility, such as adjusting role properties and gathering user feedback. The conclusion emphasizes the importance of accessible solutions and encourages sharing resources to build more inclusive experiences.
Dilemas de los diálogos y travesuras modales: Un análisis profundo de las ventanas emergentes
JSNation 2023JSNation 2023
10 min
Dilemas de los diálogos y travesuras modales: Un análisis profundo de las ventanas emergentes
The Talk discusses the use of dialogues and popovers in web development. Dialogues can be modal or non-modal and are now accessibility-supported. Popovers are versatile and can be added to any element without JavaScript. They provide suggestions, pickers, teaching UI, list boxes, and action menus. Modal and non-modal dialogues and popovers have different behaviors and dismissal methods. Browser support for these features is expanding, but there are still open questions about positioning, semantics, and other use cases.
Construyendo un Sitio Web Rápido para Cada Visitante
React Advanced 2024React Advanced 2024
31 min
Construyendo un Sitio Web Rápido para Cada Visitante
This talk focuses on building a fast and accessible website for all users, highlighting the importance of performance and user experience optimization. It emphasizes the need for adaptive implementation to cater to different devices and user conditions. The talk also discusses the factors beyond the developer's control, such as screen size, browsers, devices, internet connection, and sitting position. It highlights the significance of optimizing image components for various devices and the role of browser support and rendering engines. The speaker discusses the use of future APIs and the challenges of browser compatibility, as well as optimizing image formats and bundler compatibility. The talk provides insights on controlling bundler and device compatibility, optimizing CPU usage, internet connection, and JavaScript form submission. It concludes with a proposal to respond with save data instead of effective type for limited internet connections and recommends using React with adaptive hooks for better user experiences. Overall, the talk covers essential aspects of building a fast and accessible website.
a11y y TDD: Una Combinación Perfecta
JSNation 2022JSNation 2022
24 min
a11y y TDD: Una Combinación Perfecta
This Talk explores the intersection of accessibility and test-driven development (TDD) in software development. TDD is a process that involves writing tests before writing production code, providing a safety net for code changes. The Talk demonstrates how to apply TDD principles to real-life examples, such as filling out a form, and emphasizes the importance of user-centric testing. By using atomic design principles, code can be organized in a clean and easy way. The Talk also discusses the use of labels and test IDs in tests for improved accessibility.

Workshops on related topic

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.
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.