Alejandría

Busca en Alejandría

Herramientas

axe-core y Axe

Detecta barreras de accesibilidad durante el desarrollo.

01

En pocas palabras

Axe-core es un motor abierto de pruebas de accesibilidad HTML. Axe es la familia de productos de Deque que añade extensiones, pruebas guiadas e informes.

Qué problema resuelve

Barreras como campos sin etiquetas, determinados problemas de contraste y atributos de accesibilidad incorrectos.

Cuándo utilizarlo

Desarrollo de componentes, formularios y pruebas de regresión. Ejemplo: comprobar accesibilidad automáticamente antes de publicar un portal.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

Cómo funciona

axe-core inspecciona el DOM visible y aplica reglas de accesibilidad. El resultado distingue infracciones, comprobaciones superadas y casos incompletos que requieren revisión. Las pruebas deben cubrir los estados reales: formularios con errores, menús abiertos y diálogos.

Ejemplo: revisar una pantalla

Con axe-core cargado en el navegador de pruebas:

const results = await axe.run(document);
for (const violation of results.violations) {
  console.log(violation.id, violation.help);
}

Puedes incorporar este análisis a las pruebas de navegador y revisar los elementos afectados con herramientas de Deque.

Integración con Playwright

import { test, expect } from '@playwright/test';
import AxeBuilder from '@axe-core/playwright';

test('el formulario de solicitud no tiene infracciones WCAG A/AA', async ({
  page,
}) => {
  await page.goto('/solicitud');
  await page.getByRole('button', { name: 'Enviar' }).click(); // provocar errores de validación

  const resultados = await new AxeBuilder({ page })
    .withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa', 'wcag22aa'])
    .exclude('#widget-chat-terceros')
    .analyze();

  expect(resultados.violations).toEqual([]);
});

Existen integraciones equivalentes para Cypress (cypress-axe), Selenium, Jest con jsdom (jest-axe) y Storybook (addon a11y), que permiten revisar cada componente aislado (component testing).

Estructura del resultado

Campo Significado
violations Infracciones detectadas, con impacto (minor a critical) y nodos afectados
passes Reglas comprobadas y superadas
incomplete Requieren revisión humana (por ejemplo, contraste sobre una imagen)
inapplicable Reglas sin elementos a los que aplicar

Cada infracción incluye un enlace a la explicación de la regla y el selector del elemento, útil para el reporte en CI.

Qué detecta y qué no

Detecta bien Requiere pruebas manuales
Imágenes sin texto alternativo Si el texto alternativo es significativo
Campos de formulario sin etiqueta Orden lógico del foco y trampas de teclado
Contraste insuficiente en texto plano Comprensión de mensajes de error
Roles y atributos ARIA inválidos Experiencia real con lector de pantalla
IDs duplicados, jerarquía de encabezados Contenido dinámico anunciado correctamente

Las pruebas automáticas detectan una parte de los problemas de accesibilidad; el resto exige revisión con teclado y lectores de pantalla (NVDA, VoiceOver, TalkBack).

Adopción gradual

En una aplicación existente con muchas infracciones, empieza registrando la línea base y haz fallar el pipeline solo con infracciones nuevas o de impacto critical y serious. Reduce la deuda por pantallas prioritarias (registro, solicitud de crédito, pagos) y amplía el alcance cada trimestre.

Criterios de implementación

Acuerda qué reglas y niveles WCAG evalúa el equipo. Combina los resultados con pruebas de teclado, foco y lector de pantalla. Una ejecución sin infracciones automáticas no equivale a una auditoría completa.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.