Qué es Axe DevTools

La herramienta axe DevTools es un kit profesional destinado a la evaluación de accesibilidad digital, diseñado para desarrolladores, testers y equipos de producto que requieren una cobertura automatizada de los requisitos de accesibilidad definidos por el estándar WCAG (Web Content Accessibility Guidelines). Está desarrollada por la empresa Deque Systems y se apoya en el motor de reglas de código abierto axe‑core, lo que garantiza que los análisis estén fundamentados en un conjunto robusto de comprobaciones de accesibilidad.

La extensión axe DevTools funciona como un complemento para navegadores web que permite identificar de forma automática numerosos errores de accesibilidad, comparables a lo que ofrecen otras herramientas como WAVE Evaluation Tool, aunque con un enfoque más detallado, profesional y orientado al ciclo de desarrollo. A diferencia de WAVE, que se orienta más a una evaluación de entrada para diseñadores y equipos de contenido, axe DevTools ofrece informes técnicos profundos, integración con flujos de testing y configuración orientada a desarrolladores. De hecho, en sus documentos se describe explícitamente que el propósito es empoderar a los equipos de desarrollo web y móvil a encontrar, prevenir y corregir problemas de accesibilidad mientras codifican.

Informes técnicos

El valor diferencial de axe DevTools se encuentra en los informes técnicos que genera para desarrolladores. Una vez lanzado el escaneo de una página o aplicación, la herramienta presenta una lista de problemas detectados, cada uno con su nivel de severidad (crítico, serio, moderado, menor), el estándar o criterio WCAG que infringe, un fragmento de código fuente o apuntador al DOM, y la capacidad de resaltar la ubicación del problema en la página. Para cada problema, la herramienta incluye orientación de corrección (remediation guidance), lo que facilita que los desarrolladores comprendan y apliquen la solución. Además, dado que está impulsada por el motor axe-core, minimiza los falsos positivos, lo que contribuye a que los equipos de desarrollo no pierdan tiempo.

Además, la herramienta ofrece capacidades de exportación y compartición de resultados, lo que permite que los desarrolladores integren esos informes en sistemas de seguimiento de incidencias o los compartan con otros miembros del equipo (por ejemplo testers de accesibilidad, QA o equipo de producto). También existe la posibilidad de análisis de componentes individuales, lo que permite una granularidad mayor cuando se trabaja por módulos o micro frontends.

Integración con flujos de testing

Otras de las características interesantes de esta herramienta es la integración con los flujos de testing.

Las APIs de axe DevTools permiten su uso dentro de entornos automatizados, sistemas de integración continua (CI), pruebas end-to-end y frameworks como Cypress, Playwright, Puppeteer, WebDriver, así como lenguajes de scripting como JavaScript/Node.js, C#, Java, Python o Ruby.
De esta forma, un equipo puede configurar, gracias a la documentación de la herramienta, que cada build automatizada ejecute un análisis de accesibilidad y genere un reporte; si aparecen violaciones de accesibilidad, puede bloquearse la entrega o abrirse automáticamente una incidencia. Esto permite que la accesibilidad sea parte del proceso de calidad desde el inicio y no sólo al final.
Complementariamente, en la extensión de navegador se habilita una modalidad Intelligent Guided Tests (IGT) que guía al tester o desarrollador sobre pruebas que no son detectables automáticamente, reduciendo el volumen de pruebas manuales que aún son necesarias.
De esta manera, axe DevTools puede funcionar tanto de forma interactiva (desde el navegador) como en modo automatizado dentro del pipeline de desarrollo, incrementando la cobertura de accesibilidad sin necesidad de que cada desarrollador sea un experto en accesibilidad.

Cómo escribir matrices con MathML

Una matriz es una tabla de números organizada en filas y columnas. Las matrices se utilizan ampliamente en muchas ramas de las matemáticas y ciencias aplicadas. Se utilizan para resolver sistemas de ecuaciones lineales, representar transformaciones geométricas, modelar datos en inteligencia artificial o describir redes eléctricas o circuitos.

Para las personas ciegas, escribir y leer matrices puede plantear diversas barreras de accesibilidad como la incapacidad de memorizar toda la información contenida en la matriz, incompatibilidad del producto de apoyo con el formato utilizado para mostrar la matriz, limitaciones de los sistemas de formateado de texto y marcado semántico, etc. En el caso de otros perfiles de discapacidad el producto de apoyo puede encontrar problemas para navegar por los datos de la matriz o no existir una semántica suficiente para identificar filas, columnas o celdas concretas por lo que una persona que utilice un sistema de control por voz o un barredor no podrá interactuar de forma apropiada con la matriz.

Utilizando MathML podemos solucionar muchos de estos problemas ya que aporta semántica y compatibilidad con los diversos productos de apoyo. Con MathML, no solo podemos mostrar una matriz, sino también describirla de forma que cualquier persona, con o sin discapacidad, pueda acceder a su contenido.

Cómo escribir una matriz con MathML

En MathML tenemos el elemento mtable para representar matrices. Además podemos encerrarla entre corchetes utilizando el elemento mfenced como se requiere en algunos ejercicios matemáticos o de física.

El siguiente ejemplo muestra una matriz de 2×2 celdas con los valores 1, 2, 3 y 4:

<math>
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mn>1</mn></mtd>
<mtd><mn>2</mn></mtd>
</mtr>
<mtr>
<mtd><mn>3</mn></mtd>
<mtd><mn>4</mn></mtd>
</mtr>
</mtable>
</mfenced>
</math>

Con el elemento mtr marcamos una fila de la matriz y con mtd marcamos una celda concreta.

En el navegador la matriz se mostraría de la siguiente forma:

1 2 3 4

También podemos escribir la matriz con variables para la resolución de problemas de álgebra:

<math>
<mtable>
<mtr>
<mtd><mi>a</mi></mtd>
<mtd><mi>b</mi></mtd>
</mtr>
<mtr>
<mtd><mi>c</mi></mtd>
<mtd><mi>d</mi></mtd>
</mtr>
</mtable>
</math>

En el navegador se mostraría de la siguiente forma:

a b c d

Escribiendo Derivadas e Integrales con MathML

MathML (Mathematical Markup Language) es un lenguaje basado en XML diseñado para describir contenido matemático de forma estructurada y accesible en la web y, en muchos casos, es una de las pocas formas de poder escribir matemáticas para personas con discapacidad visual y que puedan compartirlas con personas sin discapacidad y todos puedan leer lo mismo. Cuando tenemos que escribir matemáticas simples como operaciones aritméticas es suficiente con un documento de texto plano pero cuando tenemos que utilizar operaciones de cálculo diferencial o integral entonces necesitamos utilizar un lenguaje que nos permita estructurar el contenido que estamos escribiendo siguiendo las normas de escritura definidas por las operaciones de cálculo. Las derivadas e integrales pueden representarse fácilmente con las etiquetas adecuadas, permitiendo mostrar contenido matemático accesible en la web.

¿Qué son las derivadas?

Las derivadas son un concepto fundamental del cálculo diferencial. Representan la tasa de cambio de una función respecto a una variable.

En MathML podemos representar una derivada con el siguiente código:

<math>
<mfrac>
<mi>d</mi>
<mrow>
<mi>d</mi><mi>x</mi>
</mrow>
</mfrac>
<mi>f</mi>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</math>

En el navegador se visualizaría de la siguiente forma:

 
d dx f ( x )

¿Qué son las integrales?

Las integrales son el concepto central del cálculo integral. Se utilizan para calcular áreas bajo curvas, volúmenes y resolver ecuaciones diferenciales.

En MathML podemos escribir una integral siguiendo este código:

<math>
<mo>&#x222B;</mo>
<mi>f</mi>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
<mo>d</mo><mi>x</mi>
</math>

En el navegador veríamos lo siguiente:

f ( x ) dx

Seguridad digital básica con ZERO

La seguridad en línea es una preocupación creciente, especialmente para entornos altamente sensibles que manejan información crítica. Pero la seguridad digital no es sólo necesaria para el ámbito empresarial, también es necesaria para garantizar la seguridad de todos los miembros de una familia. Es habitual que todas las personas de una familia tengan acceso a Internet pero no todos los miembros de esa familia conocen los peligros de la red y de cómo evitarlos. Es cada vez más clara la necesidad de un sistema que garantice la seguridad a la hora de acceder a Internet por aquellas personas que desconocen o no saben identificar posibles estafas o fraudes digitales. Para abordar esta necesidad, dns0.eu ha desarrollado ZERO, un servicio diseñado para ofrecer una protección reforzada contra amenazas cibernéticas emergentes.
Los cibercriminales emplean tácticas cada vez más sofisticadas para comprometer sistemas y datos. Una estrategia común es el uso de dominios maliciosos que, en las primeras horas de actividad, pueden evadir las medidas de seguridad tradicionales. ZERO se centra en detectar y bloquear estos dominios combinando  técnicas avanzadas que identifican automáticamente patrones de alto riesgo.
Este servicio ofrece las siguientes ventajas:
• Detección temprana de amenazas: Al identificar y bloquear dominios maliciosos recién registrados o activados, ZERO reduce significativamente el riesgo de ataques antes de que causen daño.
• Protección contra técnicas avanzadas: ZERO aborda amenazas como el typosquatting, homógrafos IDN y algoritmos de generación de dominios (DGA), que suelen ser utilizados para engañar a los usuarios y eludir sistemas de seguridad convencionales.
• Bloqueo de dominios de alto riesgo: Al restringir el acceso a dominios de nivel superior (TLD) conocidos por ser utilizados por actores malintencionados, se minimiza la exposición a posibles amenazas.
Pero como todo servicio automatizado ZERO también tiene sus fallos:
• Posibles falsos positivos: La implementación de filtros estrictos puede resultar en el bloqueo de dominios legítimos que comparten características con los maliciosos, lo que podría afectar la experiencia del usuario.
• Requiere actualización constante: Para mantener su eficacia, ZERO necesita una actualización continua de su base de datos de amenazas y ajustes en sus heurísticas, lo que implica un esfuerzo sostenido en ciberseguridad.
• Limitaciones en entornos dinámicos: En organizaciones con necesidades de acceso a una amplia variedad de dominios, las restricciones de ZERO podrían interferir con operaciones legítimas, requiriendo configuraciones personalizadas.
Con todo esto ZERO puede resultar un servicio indispensable para mantener seguros a los miembros más jóvenes y más ancianos de la familia.

Detección de barreras de accesibilidad con Wave

WAVE (Web Accessibility Evaluation Tool) es una herramienta en línea gratuita desarrollada por WebAIM (Web Accessibility In Mind). Su propósito es ayudar a identificar errores y áreas de mejora en sitios web para garantizar el cumplimiento de las directrices de accesibilidad, como las WCAG (Web Content Accessibility Guidelines). WAVE no solo resalta los problemas, sino que también proporciona sugerencias para corregirlos.

El acceso a WAVE es sencillo: basta con visitar la página de Wave, ingresar la URL del sitio web a evaluar, y recibir un análisis detallado sobre elementos clave de accesibilidad.

También podemos instalar el Widget de Wave para Chrome o Firefox. Esto nos permitirá evaluar contenido en local por lo que resulta indispensable para desarrolladores que están trabajando en contenidos aún no publicados.

Wave es una herramienta ideal para conocer el estado de accesibilidad de una página web y aunque la información que nos ofrece es muy valiosa no hay que olvidar los límites y realidades de las herramientas automáticas.

Detección y validación de barreras de accesibilidad con herramientas automáticas

La accesibilidad web es fundamental para garantizar que todas las personas, independientemente de sus habilidades o discapacidades, puedan acceder y utilizar los contenidos en línea.
Para los desarrolladores y diseñadores las herramientas automáticas de validación de la accesibilidad ofrecen una manera eficiente de identificar problemas de accesibilidad en sus sitios web. Sin embargo, este tipo de herramientas automáticas poseen ventajas y limitaciones que deben ser conocidas por estos diseñadores y desarrolladores.

Algunas cuestiones, como el significado contextual del contenido, la calidad de los textos alternativos o la utilidad de la navegación, requieren juicio humano. Esto implica que algunos criterios de éxito de WCAG deben ser validados por una persona ya que hoy por hoy las herramientas automáticas carecen del conocimiento y la identificación del contexto de un contenido para poder identificar si existe una barrera de accesibilidad o no. Por ejemplo, una herramienta automática puede dar por válida la siguiente descripción para una imagen que se utiliza como botón cancelar: ‘iconCancel12.jpg’, o indicar que hay problemas por usar ARIA aunque se esté utilizando de forma apropiada.

Estas herramientas tampoco pueden apreciar posibles problemas de usabilidad o inconsistencias entre los mecanismos de navegación de varias páginas.

Unido a todo esto se ha de indicar que muchas de las herramientas automáticas de validación de barreras de accesibilidad no detectan los cambios dinámicos realizados mediante Javascript en los contenidos por lo que en muchos casos de webApps desarrolladas con ReactJS o Angular pueden incorporar multitud de barreras de accesibilidad indetectables para este tipo de herramientas.

Los resultados de las evaluaciones realizadas por estas herramientas necesitan ser interpretados y aplicados por personas con conocimientos básicos en accesibilidad y desarrollo web. Sin este conocimiento, las correcciones pueden no ser efectivas o incluso empeorar la accesibilidad. Con esto se indica que es falsa la afirmación de que gracias a estas herramientas el desarrollador no requiere ningún conocimiento de accesibilidad web.

A pesar de todo esto las herramientas automáticas de validación de la accesibilidad son necesarias para ayudar a la detección temprana de muchas barreras de accesibilidad y deberían ser de uso obligatorio para los desarrolladores y diseñadores de contenido.