Construyendo interfaces de usuario - ¡Por la gente, para la gente!

Rate this content
Bookmark

¿Qué tal si te enteras de que tu interfaz de usuario no es utilizable para aproximadamente el 20% del mundo? ¿Y también podrías ser demandado por ello en muchos países? Es normal asustarse, pero gracias a un concepto llamado accesibilidad, podemos resolver esto y hacer que nuestra interfaz de usuario sea más accesible y de una manera mucho más emocionante con esta charla!

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

FAQ

La accesibilidad en la construcción de interfaces de usuario garantiza que todas las personas, independientemente de su discapacidad, puedan acceder y utilizar todas las funciones de un producto o servicio de manera fluida.

Algunas herramientas incluyen lectores de pantalla, que anuncian lo que aparece en la pantalla para personas con problemas de visión, y navegación por teclado, que ayuda a quienes no pueden usar un mouse.

WCAG significa Directrices de Accesibilidad al Contenido Web. Es un conjunto de directrices y listas de verificación elaboradas internacionalmente para hacer que el contenido web sea accesible para personas con discapacidades.

WAI significa Iniciativa de Accesibilidad Web, Aplicaciones Ricas en Accesibilidad. Es un subconjunto de WCAG que proporciona API específicas para cumplir con las directrices de accesibilidad.

Es crucial porque aproximadamente el 15% de la población mundial tiene algún tipo de discapacidad. Ignorar la accesibilidad puede excluir a una significativa porción de usuarios potenciales.

Países con normativas estrictas sobre accesibilidad pueden requerir que las aplicaciones cumplan con ciertos estándares de accesibilidad, como en el caso del sitio web de Domino's en Estados Unidos bajo la Ley de Discapacidad de los Estadounidenses.

ARIA son un conjunto de atributos especiales para accesibilidad que ayudan a mejorar la experiencia de usuarios con discapacidades en aplicaciones web, anunciando explícitamente estados y roles de los elementos de la interfaz.

Usar las etiquetas HTML adecuadas ayuda a los lectores de pantalla a proporcionar el contexto correcto sobre los elementos de la pantalla, mejorando la accesibilidad y la experiencia del usuario.

Nikhil Sharma
Nikhil Sharma
22 min
20 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla se centra en la importancia de la accesibilidad en la construcción de interfaces de usuario, discutiendo WCAG y WAI. Se enfatiza el uso de etiquetas HTML correctas para la accesibilidad y se proporcionan consejos prácticos para mejorar la accesibilidad en aplicaciones. La charla también destaca la importancia de la accesibilidad de palabras clave y el uso de HTML semántico. Se cubren técnicas de navegación, como etiquetas ARIA y migas de pan, y se enfatiza la importancia de la internacionalización. La demostración muestra las mejoras realizadas en una aplicación de inicio de sesión después de aplicar prácticas de accesibilidad.

1. Introducción a la Accesibilidad y WCAG

Short description:

Hablaré sobre la construcción de interfaces de usuario por y para las personas. La accesibilidad garantiza la igualdad de consumo de una interfaz de usuario independientemente de la discapacidad. Discutiremos la accesibilidad del contenido web y la importancia de la accesibilidad en el mundo real. Dos conceptos importantes son WCAG (Directrices de Accesibilidad al Contenido Web) y WAI (Iniciativa de Accesibilidad Web, Aplicaciones Ricas en Accesibilidad).

Hola a todos, espero que estén teniendo un gran día. Hablaré sobre un tema interesante que es la construcción de interfaces de usuario por y para las personas. Antes de profundizar, para aquellos que no me conocen, soy Nikhil, soy ingeniero de software en Postman, principalmente me ocupo de cosas relacionadas con Postman en la web, la plataforma de escritorio de Postman y el sistema Xen en Postman. Estaré allí, pueden conectarse conmigo a través de Twitter o GitHub. Vengan a saludar, me encantaría tener una charla.

Muy bien. Antes de profundizar, vamos a entender una pequeña analogía que me gusta mucho cuando se introduce un concepto como la accesibilidad. Imaginen si hay una constitución de un país, garantiza a los ciudadanos algunos derechos, digamos que hay derecho a la educación, derecho a la religión y también derecho a la expresión. Cosas así. Tomando eso solo como ejemplo de una constitución de un país, podemos decir que al igual que la constitución es la que garantiza una igualdad de estatura, independientemente de cuál sea el origen de una persona. Ahora, cuando se trata de la accesibilidad, podemos hacer algunos cambios en la declaración. Ahora la declaración puede decir que, muy bien, la accesibilidad también hace lo mismo. Nos garantiza una igualdad de consumo de una interfaz de usuario, independientemente de cuál sea la discapacidad de una persona. Cosas simples, simplemente dicho. La accesibilidad significa simplemente que si tengo un producto o un servicio, la accesibilidad permitiría a una persona, independientemente de cualquier tipo de discapacidad que pueda tener, acceder al producto y utilizar todas sus funciones en una experiencia fluida.

Entonces, en nuestro caso, limitaremos esta charla solo a la accesibilidad del contenido web, pero la accesibilidad es un tema mucho más amplio. Utilizamos muchas herramientas para tener una experiencia accesible para nuestros usuarios, como lectores de pantalla, que nos ayudan a anunciar lo que hay en la pantalla para las personas que tienen problemas de visión. Hay navegación por teclado para aquellos que no tienen un mouse o tienen un problema para mantener el mouse estable y no pueden usarlo directamente. Entonces, hay accesibilidad mediante teclado para eso. Pero discutiremos más sobre esto a medida que avancemos con la charla.

Entonces, yendo más allá, es posible que ya sepan que ya tenemos accesibilidad en el mundo real, ¿verdad? Para aquellos que tienen problemas para caminar, tenemos sillas de ruedas para ellos para que puedan moverse. Tenemos un bastón inventado para personas que tienen problemas de visión, o incluso tenemos escrituras en braille para que las personas que tienen problemas de visión puedan leer claramente. Entonces, si la accesibilidad tiene tanta importancia en el mundo real, ¿por qué el mundo de JS se quedaría atrás, verdad? Con este pensamiento en mente, veamos dos conceptos importantes antes de avanzar con la charla.

A la izquierda, podrán ver que está WCAG. Ahora, este término significa Directrices de Accesibilidad al Contenido Web. No es nada extravagante, sino simplemente un conjunto de directrices y listas de verificación que han sido elaboradas por un grupo de personas de todo el mundo, y estas listas de verificación ayudan a las personas a hacer que el contenido dentro de sus aplicaciones sea más accesible y más accesible para cualquier tipo de personas con discapacidad. Ahora, a la derecha está solo un subconjunto de esta WCAG, que llamamos WAI, que significa Iniciativa de Accesibilidad Web, Aplicaciones Ricas en Accesibilidad. Ahora, lo que dicen es que, muy bien, quieres cumplir con las directrices de WCAG, ahora, muy bien, tengo algunas API para que puedas usar en tu código y cumplir con esas directrices. Entonces, ya sabemos que hay muchas API de accesibilidad como esta, hay ARIA inválido, que dice que, muy bien, los lectores de pantalla sabrán que una vez que una entrada es inválida, pueden anunciarlo en la pantalla. Hay ARIA requerido para anunciar en la pantalla, ¡oye, estás en una entrada que requiere una alimentación!

2. Importancia de las etiquetas HTML para la accesibilidad

Short description:

Discutiremos la importancia de utilizar las etiquetas HTML correctas para la accesibilidad. El 15% de la población mundial tiene algún tipo de discapacidad, lo que hace que la accesibilidad sea crucial. La accesibilidad no solo es para personas con discapacidad, también se adapta a otras discapacidades, como no tener un mouse. La accesibilidad no es tan difícil como parece y existen muchas prácticas para hacer que las aplicaciones sean más accesibles. Esta charla tiene como objetivo proporcionar una comprensión más profunda de la accesibilidad y consejos prácticos para comenzar. El primer consejo es utilizar las etiquetas HTML correctas, lo cual ayuda a los lectores de pantalla a proporcionar el contexto correcto y elimina la necesidad de ordenar manualmente los elementos.

Entonces, hay cosas como esa. Y veremos más al respecto en las diapositivas siguientes, pero sí. Solo una cosa a tener en cuenta es que, especialmente, esto es especialmente relacionado con el mundo de JSX o el mundo de React en el que tenemos este tipo de modelo mental en el que usamos camel case para cada prop, pero eso no es lo mismo con la accesibilidad. Entonces, con estos atributos de accesibilidad, simplemente tenemos que usarlos tal como son, como lo hemos estado usando con HTML, que es con valores separados por guiones y no en camel case. Así que ahí tienes un pequeño consejo.

Y pasando a por qué deberíamos preocuparnos por la accesibilidad. Ahora, la primera y principal razón es que te sorprendería saber que el 15% de la población mundial tiene algún tipo de discapacidad. Entonces, si no hacemos que nuestras aplicaciones sean accesibles, eso significa que el 15% de una gran parte de nuestra audiencia, que es un número que no podemos ignorar, no puede usar nuestras aplicaciones de la manera que queremos, ¿verdad? Y la segunda cosa es que si tenemos una aplicación que se va a utilizar en varios países, es decir, tiene un alcance en todo el mundo. Es posible que queramos ver que hay países que realmente le dan importancia a la accesibilidad y a las personas que tienen alguna discapacidad. Por ejemplo, hubo un caso muy reciente, ¿verdad?, que todos conocemos, sobre el sitio web de Domino's donde, según la Ley de Discapacidad de los Estadounidenses, no cumplía con las prácticas de accesibilidad que deberían estar presentes. Entonces, si estás creando un sitio web y va a tener alcance mundial, asegúrate de tener estas cosas en mente. Muy bien.

Con esta charla, vamos a desmentir algunos mitos sobre la accesibilidad. Por ejemplo, que la accesibilidad es solo para personas con discapacidad. No diría eso porque la discapacidad también puede significar que alguien no tiene un mouse, eso también es una discapacidad. Si muestras un cargador en la pantalla cuando algo aún se está cargando, eso también es una experiencia accesible que les estás brindando a los usuarios. Entonces, el significado más profundo de la accesibilidad es atender cualquier tipo de discapacidad y no solo la discapacidad física. Eso es solo un subconjunto. Y el segundo es que la accesibilidad es difícil. Creo que veremos esto al final de esta charla, que no, no lo es y la accesibilidad tampoco se trata solo de aria evidente y hay 10 o más prácticas que puedes hacer para que nuestras aplicaciones sean más accesibles. Y sí, esta charla no es una introducción a la accesibilidad. No es solo una clase teórica. Quiero que sea cada vez más inclusiva y más orientada a la demostración para que después de esta charla, tengamos una idea clara de cuál es el significado más profundo de la accesibilidad y cómo podemos comenzar sin tener que leer esos grandes blogs en Internet, ¿verdad? Muy bien.

Con todas estas ideas en mente, comencemos. El primer y más importante consejo que doy a todos es utilizar las etiquetas HTML correctas, lo cual generalmente nos ayuda en la mayoría de los casos para la accesibilidad. Ahora, cuando usamos las etiquetas HTML correctas, nuestros lectores de pantalla utilizan esa información para proporcionar el contexto correcto sobre lo que hay en la pantalla. Por ejemplo, si estás utilizando un botón HTML, los lectores de pantalla pueden decirle a las personas que, okay, esto es un botón. Y estas etiquetas HTML también te brindan algunas ventajas importantes. Por ejemplo, no tienes que preocuparte por el orden de tus botones o por los elementos dentro de un formulario, no tienes que pensar en cuál debe ser el primer elemento que se selecciona, cuál debe ser el último, si el foco se mueve primero o no. Todo esto ya está incorporado. Una vez que uses las etiquetas HTML correctas, también puedes, si quieres ampliar esta definición de accesibilidad, tienes colegas que están utilizando la misma estructura HTML en su código diario.

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 Conference 2021React Advanced Conference 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 Conference 2023React Advanced Conference 2023
23 min
Elementos Interactivos Anidados: Una Pesadilla en Accesibilidad
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.
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.
Cómo hacer el bien sin hacer nada
React Advanced Conference 2021React Advanced Conference 2021
32 min
Cómo hacer el bien sin hacer nada
Accessibility is about making sure everyone can participate on the web, regardless of disability. Automated tools like Lighthouse and React Axe help identify accessibility errors and provide guidance on fixing them. Unit tests validate ARIA attributes and keyboard navigation, while integration and end-to-end tests focus on outcomes and simulate user experiences. Cypress.io is an open-source testing framework with excellent accessibility support. Implementing small changes leads to a deep understanding of web accessibility and bug resilience.

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.