All posts
Technical Implementation

12 Pasos Técnicos para Cumplir WCAG 2.2 en PrestaShop sin Plugins Lento (Guía 2026)

Muchos dueños de tiendas online ignoran la accesibilidad hasta que llega una demanda o una auditoría fiscal. En 2026, las regulaciones como la EAA 2026 y...

AE
Accessio EngineeringAccessibility engineering team
5 minutes read

Muchos dueños de tiendas online ignoran la accesibilidad hasta que llega una demanda o una auditoría fiscal. En 2026, las regulaciones como la EAA 2026 y el cumplimiento de WCAG 2.2 son obligatorias en España y gran parte de Latinoamérica. Ignorar esto no es solo un riesgo legal, sino una pérdida de clientes potenciales.

Las multas por incumplimiento de accesibilidad web pueden superar los 15.000 euros en casos graves.

Esta guía técnica detalla cómo configurar PrestaShop para que sea usable por todos sin depender de plugins pesados que ralentizan el sitio. Aprenderás a corregir errores comunes, optimizar la navegación con teclado y asegurar etiquetas ARIA correctas.

1. Entendiendo los Estándares en 2026

El cumplimiento no es opcional. Debes conocer las normas vigentes antes de tocar una sola línea de código o plantilla.

1.1 ¿Qué exige WCAG 2.2?

WCAG 2.2 introduce nuevos criterios sobre el control del cursor y la interacción táctil. Los puntos clave incluyen:

  • Nombre, rol, valor: Asegura que los elementos tengan atributos aria-label o etiquetas HTML correctas.
  • Contraste de color: El ratio mínimo debe ser 4.5:1 para texto normal y 3:1 para texto grande.
  • Movimiento del cursor: Evita animaciones que provoquen mareos en usuarios con epilepsia fotosensible.

1.2 Contexto Legal EAA 2026

La EAA 2026 (Ley de Accesibilidad Europea) establece plazos estrictos para la adaptación de sitios web públicos y privados grandes. PrestaShop, al ser una plataforma abierta, te da el control total para cumplir estas normas desde el núcleo del código.

Ignorar la normativa puede resultar en la pérdida de subvenciones públicas o contratos gubernamentales.

2. Implementación Básica en Temas y Plantillas

La mayoría de los temas predeterminados de PrestaShop fallan en accesibilidad básica. Debes revisar el CSS y las plantillas Smarty manualmente.

2.1 Revisión de Contraste y Colores

No confíes en los visores de color del navegador. Usa herramientas como el Contrast Checker para verificar cada elemento.

  • Verifica que los botones de "Añadir al carrito" tengan suficiente contraste sobre el fondo.
  • Asegura que los enlaces no sean solo de un color diferente al texto plano (usa subrayado o iconos).
  • Revisa las alertas de error en formularios para que sean legibles.

2.2 Estructura Semántica HTML5

PrestaShop utiliza etiquetas genéricas a veces. Debes forzar el uso correcto de header, main, nav y footer.

  1. Edita los archivos .tpl en la carpeta /themes/tu_tema/templates/.
  2. Reemplaza divs innecesarios con etiquetas semánticas.
  3. Asegura que el orden de lectura coincida con el flujo visual.

3. Áreas Críticas del Catálogo y Carrito

El catálogo es donde más errores ocurren. Los filtros de búsqueda y las páginas de producto deben ser accesibles.

3.1 Filtros de Búsqueda

Los filtros laterales suelen estar mal etiquetados.

  • Añade aria-label a cada filtro para describir su función (ej: "Filtrar por precio").
  • Usa role="search" en el contenedor principal de los filtros.
  • Asegura que la selección de un filtro actualice la página sin perder el foco del teclado.

3.2 Página de Producto

La ficha técnica debe ser clara y completa.

  • Imágenes: Cada imagen de producto necesita alt descriptivo. Si es decorativa, usa alt="".
  • Variantes: Los selectores de tamaño o color deben tener etiquetas asociadas.
  • Botones de Acción: "Añadir al carrito" debe ser visible y accesible con teclado.

3.3 Carrito de Compras

El carrito es una interfaz compleja.

  • Usa aria-live="polite" para notificaciones de éxito o error.
  • Asegura que el botón de "Pagar" sea lo suficientemente grande para dedos grandes (mínimo 44x44px).
  • Verifica que los mensajes de stock bajo sean claros y legibles.

4. Gestión de Formularios y Pagos

Los formularios son la barrera más común para usuarios con discapacidad visual o motriz.

4.1 Etiquetas Asociadas Correctamente

Cada campo debe tener un label asociado explícitamente mediante el atributo for.

  • Evita usar solo texto plano como "Nombre" sin etiqueta.
  • Usa aria-describedby para explicar cómo rellenar campos complejos (ej: formato de tarjeta).
  • Asegura que los mensajes de error estén vinculados al campo correspondiente con aria-invalid="true".

4.2 Botones de Acción

Los botones deben ser claros y accesibles.

  • Usa texto descriptivo en lugar de iconos solos (ej: "Cerrar sesión" en lugar de una X).
  • Asegura que el foco del teclado se mantenga después de hacer clic en un botón.
  • Revisa que los botones no se superpongan visualmente.

4.3 Pagos y Validación

Los pasos de pago deben ser claros.

  • Usa aria-live="assertive" para mensajes críticos como "Pago fallido".
  • Asegura que la validación de campos (ej: CVV) sea clara y no dependa solo del color rojo.

5. Navegación con Teclado y Foco Visible

La navegación sin ratón es esencial para usuarios con movilidad reducida.

5.1 Foco Visible

El foco debe ser siempre visible.

  • Define estilos CSS para :focus que sean claros (ej: borde grueso o sombra).
  • Evita el desvanecimiento del foco (outline: none) sin proporcionar una alternativa visual.
  • Asegura que el foco no se mueva de forma brusca al navegar entre elementos.

5.2 Orden de Lectura

El orden lógico es vital.

  • Usa tabindex solo cuando sea necesario para reordenar la navegación.
  • Evita saltos repentinos en el flujo del teclado.
  • Revisa que los menús desplegables sean accesibles con teclado (usando aria-expanded).

6. Multimedia y Contenido Dinámico

El contenido multimedia debe ser accesible desde el principio.

6.1 Videos y Audio

Los videos deben tener subtítulos y transcripciones.

  • Usa etiquetas track para subtítulos en HTML5.
  • Asegura que los controles de video sean accesibles con teclado.
  • Proporciona una descripción de audio para contenido visual importante.

6.2 Animaciones y Movimiento

Las animaciones deben ser controlables.

  • Usa prefers-reduced-motion en CSS para desactivar animaciones en dispositivos que lo solicitan.
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

7. Gestión de Errores y Mensajes del Sistema

Los mensajes de error deben ser claros y no ofensivos.

  • Usa aria-live para notificaciones en tiempo real.
  • Asegura que los errores se comuniquen al usuario inmediatamente después de la acción fallida.
  • Proporciona sugerencias claras sobre cómo corregir el error.

8. Optimización del Rendimiento y Accesibilidad

La accesibilidad no debe comprometer el rendimiento.

8.1 Carga Diferida

Cargar scripts pesados solo cuando sea necesario