Aplicando la accesibilidad en Reactjs

Luego de leer el maravilloso 谩rticulo de @CristinaGrim, Quiero hacer mi web accesible, pero no s茅 por d贸nde empezar quede con la duda de 驴Como puedo aplicar esto a Reactjs?, 驴Que forma puedo validar que los cambios que estoy haciendo en mi aplicaci贸n realmente mejoran la accesibilidad? y de este art铆culo se basa precisamente en esas preguntas.

Comenzando la investigaci贸n me encontr茅 con la documentaci贸n oficial de reactjs acerca de la accesibilidad y otro 谩rticulo de @hdjirdeh, Accessibility auditing with react-axe and eslint-plugin-jsx-a11y que fue el punto de partida.

Instalar eslint-plugin-jsx-a11y

Es un plugin de ESlint que nos permite inspeccionar el c贸digo que estamos escribiendo, validando las pr谩cticas que se recomiendan en cada elemento de html que usemos en JSX.

yarn add -D eslint eslint-plugin-jsx-a11y

Agregamos el archivo de configuraci贸n para ESlint en la ra铆z del proyecto .eslintrc con la configuraci贸n b谩sica:

{ "extends": "react-app" }

De esta forma se validan las caracter铆sticas m谩s comunes de accesibilidad

Si quieres ver m谩s configuraciones es ESlint puedes ver el articulo Usar ESLint y Prettier en proyectos TypeScript

Si quieres garantizar un nivel de accesibilidad similar a AA puedes usar:

{ "extends": ["react-app", "plugin:jsx-a11y/recommended"] }

Y si quieres ir un poco m谩s (similar a AAA) all谩 puedes usar:

{ "extends": ["react-app", "plugin:jsx-a11y/strict"] }

En esta documentaci贸n esta la diferencia detallada entre el modo recomendado y el modo estricto.

Instalando react-axe

Un m贸dulo que eval煤e el c贸digo HTML de nuestra aplicaci贸n en el DOM para darnos recomendaciones de accesibilidad directamente en la consola del navegador, utiliza la api de axe-core tambien puedes encontrar react-a11y pero este fue depretado en favor de react-axe.

Para instalarlo:

yarn add -D react-axe

Ahora solo necesitas inyectar el inspector de Axe en el punto de entrada de tu aplicaci贸n, ejemplo: index.js

if (process.env.NODE_ENV !== 'production') { const axe = require('react-axe') axe(React, ReactDOM, 1000) }

Se usa la variable entorno NODE_ENV para mostrar las sugerencias solo en ambiente de desarrollo

Ahora podr谩s ver las notificaciones en la consola de desarrollo de tu navegador, estas tienen alertas que corresponden a los mismos niveles de accesibilidad mencionados:

  • Minor (A)
  • Moderate (AA)
  • Serious (AAA)
  • Critical (AAA)

Todo depende a que est茅s apuntando desde tu aplicaci贸n.

Tambi茅n tenemos a mano extensiones de Chrome que te pueden ayudar a validar la accesibilidad de la aplicaci贸n:

Espero te sea de utilidad este contenido y recuerda que la accesibilidad la hacemos todos.

Actualizado 23/11/2019 a las 16:31