Informe de Accesibilidad de ejemplo. Harbor & Pine es una tienda ficticia que creamos con defectos de accesibilidad habituales y que después probamos con el mismo motor que analiza tu sitio web.

Analiza tu sitio web gratis

Informe de Accesibilidad de ejemplo

harborandpine.example

Plataforma:
Shopify
Generado:
24 sept 2026
Páginas analizadas:
9
Motor:
axe-core 4.13.0

Resumen

Las pruebas automatizadas detectan una parte de los problemas de accesibilidad de un sitio, no todos. Este informe describe lo que encontraron nuestras pruebas y cómo corregirlo. No constituye asesoramiento legal ni certifica el cumplimiento de la ADA, de la Ley Europea de Accesibilidad ni de ninguna ley.

Vista general

P1 · Corregir primeroBloquea a los visitantes en páginas clave
8
P2 · Corregir despuésBarreras graves o moderadas
0
P3 · MejorarProblemas leves y buenas prácticas
2

Casos por gravedad

Crítico
73
Grave
58
Moderado
25
Leve
0
Fallos verificadosTipos de problema que no superaron una prueba automatizada
10
Requiere revisiónSeñalados, pero una persona debe decidir
4
Comprobaciones superadasReglas automatizadas sin fallos
32
No probadoPasos del recorrido y comprobaciones manuales
7

Hemos probado 9 páginas, 4 de ellas tomadas de tu sitemap. Las fechas objetivo son sugerencias basadas en la gravedad; acuerda las fechas definitivas con tu desarrollador.

Resumen del sitio web

Detectado a partir de evidencias públicas de las páginas probadas. Una etiqueta puede ser errónea; solo determina qué comprobaciones adicionales se ejecutan.

Tipo de sitio web

  • Tienda onlineConfianza alta
    • Funciona con Shopify, una plataforma de tiendas online
    • Enlace a un carrito
    • Enlaces a productos o a la tienda
  • Landing pageConfianza media
    • Solo 6 páginas internas enlazadas

Tecnologías detectadas

  • ShopifyConfianza alta

    Recursos o scripts de Shopify en la página

Comprobaciones para este sitio

  • Comprobaciones generales: accesibilidad, SEO, velocidad, seguridad y email
  • Módulo de comercio electrónico: páginas de colección, de producto y del carrito, y un recorrido de compra con teclado hasta el botón de pago
  • Notas para Shopify: pasos de corrección en el tema y en el panel de administración; las cabeceras y las cookies que gestiona la plataforma se muestran como referencia

Recorrido de compra con teclado

Intentamos comprar usando solo el teclado (Tab, Mayús+Tab, Intro, Espacio, Escape), como lo hacen las personas que no pueden usar un ratón. Añadimos un artículo a un carrito en una sesión desechable y nos detenemos en el botón de pago: nunca entramos en el proceso de pago ni escribimos datos personales o de pago. Objetivo: Ir desde la página de inicio hasta el botón de pago usando solo el teclado.

  1. 01Llegar a la navegación principal

    Superado

    El foco llegó a «Shop» en la navegación tras 21 pulsaciones de Tab.

    Resultado esperado: Al pulsar Tab desde la parte superior de la página de inicio, se llega a los enlaces de la navegación principal.

    • Nota: Un banner de cookies retuvo el foco del teclado hasta que pulsamos Enter en «Accept all».
    Cómo reproducirlo

    https://harborandpine.example/

    1. Abre la página de inicio.
    2. Haz clic en la barra de direcciones del navegador y pulsa Tab varias veces (Mayús+Tab retrocede).

    Orden del foco que observamos

    «Shop»

  2. 02Abrir un producto desde una colección

    Superado

    El foco llegó a «Trail Daypack 22L» tras 9 pulsaciones de Tab, y Enter abrió /products/trail-daypack.

    Resultado esperado: Con Tab se llega a un producto de la cuadrícula de la colección, y Enter abre su página.

    Cómo reproducirlo

    https://harborandpine.example/collections/all

    1. Abre /collections/all.
    2. Pulsa Tab hasta que se resalte un producto de la cuadrícula y, después, pulsa Enter.

    Orden del foco que observamos

    «Harbor & Pine» → «Shop» → «New arrivals» → «Our story» → body > header.site > div.icons > button → «Account» → body > header.site > div.icons > a → «FeaturedPrice, low to highPrice, high to low» → «Trail Daypack 22L»

  3. 03Elegir opciones y cantidad

    Fallido

    3 opciones del producto no pueden recibir el foco del teclado: «S», «M», «L». Responden al ratón, pero un usuario de teclado no puede elegirlas.

    Resultado esperado: Se puede llegar con Tab a todas las opciones del producto (talla, color, variante) y al campo de cantidad.

    2.1.1 Teclado · Confianza: alta

    Elegir opciones y cantidad: el elemento que falla, marcado
    Elegir opciones y cantidad: el elemento que falla, marcado
    Cómo reproducirlo

    https://harborandpine.example/products/trail-daypack

    1. Abre /products/trail-daypack.
    2. Pulsa Tab desde la parte superior de la página y anota qué controles reciben el foco antes de «Añadir al carrito».

    Orden del foco que observamos

    «Harbor & Pine» → «Shop» → «New arrivals» → «Our story» → … 5 más … → body > header.site > div.icons > a → div.page.product > div.gallery > div.thumbs > button → div.page.product > div.gallery > div.thumbs > button → div.page.product > div.gallery > div.thumbs > button → div.page.product > div > div.swatches > button → div.page.product > div > div.swatches > button → div.page.product > div > div.swatches > button → «1» → «Add to cart»

    Elemento
    <div class="size-option" data-fr="opt-1">S</div>
  4. 04Añadir al carrito con el teclado

    Requiere revisión

    Enter en «Añadir al carrito» funcionó (cambió el contador del carrito en el encabezado, apareció un mensaje de «añadido al carrito»), pero no encontramos ningún mensaje de estado ni cuadro de diálogo con el foco, así que es posible que los usuarios de lectores de pantalla no oigan que se ha añadido el artículo.

    Resultado esperado: Al pulsar Enter en «Añadir al carrito», se añade el artículo y se anuncia la confirmación: un mensaje de estado, un cuadro de diálogo que recibe el foco o la página del carrito.

    4.1.3 Mensajes de estado · Confianza: media

    Añadir al carrito con el teclado: la página en este paso
    Añadir al carrito con el teclado: la página en este paso
    Cómo reproducirlo

    https://harborandpine.example/products/trail-daypack

    1. Abre /products/trail-daypack.
    2. Pulsa Tab hasta que «Añadir al carrito» tenga el foco y, después, pulsa Enter.
    3. Escucha con un lector de pantalla (VoiceOver: Cmd+F5) si se anuncia una confirmación.
  5. 05Modificar el carrito y llegar al pago

    Superado

    Se llegó a los 4 controles del carrito y al botón de pago («Check out») con 12 pulsaciones de Tab. No lo pulsamos.

    Resultado esperado: Se puede llegar con Tab a los campos de cantidad, a los botones para eliminar y al botón de pago.

    Cómo reproducirlo

    https://harborandpine.example/cart

    1. Añade cualquier producto al carrito y abre la página del carrito.
    2. Pulsa Tab y comprueba que los campos de cantidad, los botones para eliminar y el botón de pago reciben el foco.

    Orden del foco que observamos

    «Harbor & Pine» → «Shop» → «New arrivals» → «Our story» → body > header.site > div.icons > button → «Account» → body > header.site > div.icons > a → «1» → tbody > tr > td > button.remove → «2» → tbody > tr > td > button.remove → «Check out»

  6. 06Finalizar compra

    No probado

    Nos detenemos en el botón de pago: nunca entramos en la finalización de compra, creamos pedidos ni escribimos datos de pago. En Shopify, las páginas de finalización de compra las gestiona Shopify, no tu tema. Revisa la finalización de compra a mano (consulta las comprobaciones manuales).

Mapa de alegaciones de la carta

Cada alegación de la carta, contrastada con las evidencias del análisis. Es una comparación de hechos, no asesoramiento legal.

  • “Images lack alternative text, so product photos are not described.”

    Imágenes sin texto alternativo. 10 casos en 3 de las 5 páginas probadas.

    image-alt

    Reproducido
  • “Text has insufficient color contrast against its background, including sale badges and prices.”

    Bajo contraste de color. 16 casos en 5 de las 5 páginas probadas.

    color-contrast

    Reproducido
  • “The website cannot be navigated using a keyboard alone.”

    Acceso con teclado y foco. El foco del teclado se queda atascado en el banner de cookies.

    Reproducido
  • “Form fields do not have labels, including the newsletter sign-up and the quantity fields in the cart.”

    Campos de formulario sin etiqueta. 4 casos en 3 de las 5 páginas probadas.

    select-name, label

    Reproducido
  • “Product videos do not have captions.”

    Subtítulos de vídeo y audio. Los análisis automatizados no pueden evaluar los subtítulos. Comprueba que todos los vídeos de productos o de marca tienen subtítulos precisos y una transcripción.

    Revisión manual
  • “Our client is legally blind and uses screen reader software.”

    Otros problemas. Es una afirmación general. Prueba los flujos clave (búsqueda, página de producto, añadir al carrito, pago) con un lector de pantalla como VoiceOver o NVDA.

    Revisión manual

Plan de corrección

Problemas por orden de prioridad, con responsables y fechas objetivo
PrioridadProblemaEstadoWCAGCasosResponsableFecha objetivo
P1El foco del teclado queda atrapado en el banner de cookiesVerificado2.1.21proveedor de la app2026-10-08
P1Las opciones del producto no se pueden elegir con el tecladoVerificado2.1.11desarrollador del tema2026-10-08
P1Los botones deben tener texto discernibleVerificado4.1.241desarrollador del tema2026-10-08
P1Las imágenes deben tener texto alternativoVerificado1.1.122editor de contenido2026-10-08
P1Los elementos de formulario deben tener etiquetasVerificado4.1.27desarrollador del tema2026-10-08
P1El elemento select debe tener un nombre accesibleVerificado4.1.21desarrollador del tema2026-10-08
P1Los enlaces deben tener texto discernibleVerificado2.4.4, 4.1.236desarrollador del tema2026-10-08
P1Los elementos deben tener un contraste de colores suficienteVerificado1.4.322propietario de la tienda (ajustes del panel de administración)2026-10-08
P3Todo el contenido de la página debe estar incluido en puntos de referenciaVerificadoBuena práctica18desarrollador del tema2026-11-23
P3El nivel de encabezados solo debería incrementarse en 1VerificadoBuena práctica7desarrollador del tema2026-11-23

Cómo corregir cada problema

P1CríticoFallo verificadoWCAG 2.1.2

El foco del teclado queda atrapado en el banner de cookies

esfuerzo: moderado · responsable: proveedor de la app · 2.1.2 Sin trampas para el foco del teclado

Cuando un usuario de teclado pulsa Tab, el foco recorre en bucle unos pocos elementos y nunca llega al resto de la página.

Las personas que solo usan el teclado y los usuarios de lectores de pantalla no pueden comprar en absoluto si el foco queda atrapado (WCAG 2.1.2 Sin trampas para el foco del teclado).

Evidencias

Detectado por
Prueba con teclado (Tab a lo largo de la página de inicio)
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
1 caso en 1 página

Esperado: Al pulsar Tab, el foco recorre todos los elementos interactivos y continúa por el resto de la página.

Observado: Tras 40 pulsaciones de Tab, el foco seguía recorriendo en bucle: Settings, Accept all.

Cómo reproducirlo
  1. Abre la página de inicio.
  2. Haz clic en la barra de direcciones y pulsa Tab varias veces.
  3. El foco vuelve una y otra vez a los mismos pocos elementos.
Elementos que fallan (se muestran 6)
button#cc-settings
Settings
button#cc-accept.primary
Accept all
button#cc-settings
Settings
button#cc-accept.primary
Accept all
button#cc-settings
Settings
button#cc-accept.primary
Accept all
Páginas afectadas (1)
  • https://harborandpine.example/

Cómo corregirlo

Orientación general
  1. Busca en los ajustes de la app de tu banner de cookies o de consentimiento una opción de accesibilidad o de trampa de foco, o pide al proveedor que lo corrija.
  2. Una ventana modal solo puede retener el foco mientras está abierta, y debe cerrarse con la tecla Escape y devolver el foco al lugar de donde venía.
Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: El foco del teclado queda atrapado en el banner de cookies (WCAG 2.1.2).
Dónde: 1 caso en 1 página, por ejemplo /.

Un elemento que falla, tal como lo mostró el navegador:
```html
Settings
```

Por qué es importante: Las personas que solo usan el teclado y los usuarios de lectores de pantalla no pueden comprar en absoluto si el foco queda atrapado (WCAG 2.1.2 Sin trampas para el foco del teclado).

Qué hay que cambiar:
- Busca en los ajustes de la app de tu banner de cookies o de consentimiento una opción de accesibilidad o de trampa de foco, o pide al proveedor que lo corrija.
- Una ventana modal solo puede retener el foco mientras está abierta, y debe cerrarse con la tecla Escape y devolver el foco al lugar de donde venía.

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Carga la página de inicio, pulsa Tab varias veces y confirma que el foco llega a la navegación principal y al contenido.

Detectado por una prueba automatizada con teclado; confírmalo a mano.

P1CríticoFallo verificadoWCAG 2.1.1

Las opciones del producto no se pueden elegir con el teclado

esfuerzo: moderado · responsable: desarrollador del tema · 2.1.1 Teclado

Las opciones de talla, color o variante responden al ratón, pero no pueden recibir el foco del teclado, así que los usuarios de teclado no pueden elegir una variante.

Los compradores que solo usan el teclado, entre ellos muchos usuarios de lectores de pantalla, no pueden pasar de este paso (WCAG 2.1.1).

Evidencias

Detectado por
Recorrido con teclado
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
1 caso en 1 página

Esperado: Se puede llegar con Tab a todas las opciones del producto (talla, color, variante) y al campo de cantidad.

Observado: 3 opciones del producto no pueden recibir el foco del teclado: «S», «M», «L». Responden al ratón, pero un usuario de teclado no puede elegirlas.

Las opciones del producto no se pueden elegir con el teclado: el elemento marcado
Las opciones del producto no se pueden elegir con el teclado: el elemento marcado
Cómo reproducirlo
  1. Abre /products/trail-daypack.
  2. Pulsa Tab desde la parte superior de la página y anota qué controles reciben el foco antes de «Añadir al carrito».
Elementos que fallan (se muestran 1)
(consulta la captura de pantalla)
<div class="size-option" data-fr="opt-1">S</div>
Páginas afectadas (1)
  • https://harborandpine.example/products/trail-daypack

Cómo corregirlo

Orientación general
  1. Crea los selectores de opciones con botones de opción nativos (o un <select>) con etiquetas visibles; da a la etiqueta el estilo de la muestra.
  2. Si mantienes elementos personalizados, cada opción necesita tabindex="0", role="radio" con aria-checked dentro de un role="radiogroup", y gestión de las teclas de flecha y de la barra espaciadora. Los botones de opción nativos te dan todo esto sin esfuerzo.

Código

Ejemplos de implementación para tu desarrollador. No tenemos el código fuente de tu tema, así que las ubicaciones de los archivos son orientativas, no rutas exactas.

Antes · lo que encontramos · El formulario de producto de tu tema (selector de variantes)
<div class="size-option" data-fr="opt-1">S</div>
Después · ejemplo para adaptar
<fieldset class="variant-picker">
  <legend>Size</legend>
  <input type="radio" id="size-s" name="Size" value="S" class="visually-hidden">
  <label for="size-s" class="size-option">S</label>
  <input type="radio" id="size-m" name="Size" value="M" class="visually-hidden">
  <label for="size-m" class="size-option">M</label>
</fieldset>

Cada opción es un botón de opción real, accesible con Tab y que se cambia con las teclas de flecha; la etiqueta conserva el estilo de tu muestra. Usa los nombres y los valores de tus opciones.

Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: Las opciones del producto no se pueden elegir con el teclado (WCAG 2.1.1).
Dónde: 1 caso en 1 página, por ejemplo /products/trail-daypack.

Un elemento que falla, tal como lo mostró el navegador:
```html
<div class="size-option" data-fr="opt-1">S</div>
```

Por qué es importante: Los compradores que solo usan el teclado, entre ellos muchos usuarios de lectores de pantalla, no pueden pasar de este paso (WCAG 2.1.1).

Qué hay que cambiar:
- Crea los selectores de opciones con botones de opción nativos (o un <select>) con etiquetas visibles; da a la etiqueta el estilo de la muestra.
- Si mantienes elementos personalizados, cada opción necesita tabindex="0", role="radio" con aria-checked dentro de un role="radiogroup", y gestión de las teclas de flecha y de la barra espaciadora. Los botones de opción nativos te dan todo esto sin esfuerzo.

Un cambio sugerido (El formulario de producto de tu tema (selector de variantes)):
```html
<fieldset class="variant-picker">
  <legend>Size</legend>
  <input type="radio" id="size-s" name="Size" value="S" class="visually-hidden">
  <label for="size-s" class="size-option">S</label>
  <input type="radio" id="size-m" name="Size" value="M" class="visually-hidden">
  <label for="size-m" class="size-option">M</label>
</fieldset>
```

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Repite los pasos para reproducirlo usando solo el teclado.
  • Solicita una reevaluación desde este informe: el recorrido se vuelve a ejecutar.
P1CríticoFallo verificadoWCAG 4.1.2

Los botones deben tener texto discernible

esfuerzo: bajo · responsable: desarrollador del tema · 4.1.2 Nombre, función, valor

Algunos botones no tienen nombre accesible, así que los usuarios de lectores de pantalla solo oyen «botón».

WCAG 4.1.2 exige que cada control tenga un nombre. Entre los botones sin nombre suelen estar los selectores de cantidad, los botones de cerrar y las flechas de los carruseles.

Evidencias

Detectado por
Regla automatizada de axe-core
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
41 casos en 9 páginas

Esperado: Los botones deben tener texto discernible

Observado: El elemento no tiene texto interno visible para lectores de pantalla. El atributo aria-label no existe o está vacío. El atributo aria-labelledby no existe, hace referencia a elementos inexistentes o hace referencia a elementos vacíos. El elemento no tiene atributo title. El elemento de formulario no tiene un <label> implícito ('envuelto'). El elemento de formulario no tiene un <label> explícito. La semántica predeterminada del elemento no se anuló mediante role="none" o role="presentation".

Los botones deben tener texto discernible: el elemento marcado en /
Los botones deben tener texto discernible: el elemento marcado en /
Los botones deben tener texto discernible: el elemento marcado en /collections/all
Los botones deben tener texto discernible: el elemento marcado en /collections/all
Cómo reproducirlo
  1. Abre https://harborandpine.example/ en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, pulsa Ctrl+F (Cmd+F en Mac) y busca: .icons > button[type="button"]
  3. En el panel Accesibilidad de DevTools, el nombre calculado (Name) del elemento está vacío.
  4. O ejecuta en la página la extensión gratuita axe DevTools para el navegador: lo indica como «button-name».
Elementos que fallan (se muestran 4)
.icons > button[type="button"]
<button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></button>
.thumbs > button:nth-child(1)
<button type="button"><img src="/img/daypack.svg"></button>
.thumbs > button:nth-child(2)
<button type="button"><img src="/img/jacket.svg"></button>
.thumbs > button:nth-child(3)
<button type="button"><img src="/img/bottle.svg"></button>
Páginas afectadas (9)
  • https://harborandpine.example/
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/cart
  • https://harborandpine.example/pages/about
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Cómo corregirlo

Código creado a partir del marcado de tu página
  1. Busca los botones en los ejemplos de abajo.
  2. Añade texto visible, texto visualmente oculto o un aria-label que diga qué hace el botón (por ejemplo, aria-label="Close" o aria-label="Increase quantity").

Código

Ejemplos de implementación para tu desarrollador. No tenemos el código fuente de tu tema, así que las ubicaciones de los archivos son orientativas, no rutas exactas.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<button type="button">…</button>
Después · creado a partir del elemento que falla
<button type="button" aria-label="[What this button does]">…</button>

Sustituye el texto entre corchetes por lo que hace el botón. También sirve texto visible o texto visualmente oculto dentro del botón.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<button type="button"><img src="/img/daypack.svg"></button>
Después · creado a partir del elemento que falla
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/daypack.svg"></button>

Sustituye el texto entre corchetes por lo que hace el botón. También sirve texto visible o texto visualmente oculto dentro del botón.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<button type="button"><img src="/img/jacket.svg"></button>
Después · creado a partir del elemento que falla
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/jacket.svg"></button>

Sustituye el texto entre corchetes por lo que hace el botón. También sirve texto visible o texto visualmente oculto dentro del botón.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<button type="button"><img src="/img/bottle.svg"></button>
Después · creado a partir del elemento que falla
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/bottle.svg"></button>

Sustituye el texto entre corchetes por lo que hace el botón. También sirve texto visible o texto visualmente oculto dentro del botón.

Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: Los botones deben tener texto discernible (WCAG 4.1.2).
Dónde: 41 casos en 9 páginas, por ejemplo /, /collections/all, /products/trail-daypack, /cart.

Un elemento que falla, tal como lo mostró el navegador:
```html
<button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></button>
```

Por qué es importante: WCAG 4.1.2 exige que cada control tenga un nombre. Entre los botones sin nombre suelen estar los selectores de cantidad, los botones de cerrar y las flechas de los carruseles.

Qué hay que cambiar:
- Busca los botones en los ejemplos de abajo.
- Añade texto visible, texto visualmente oculto o un aria-label que diga qué hace el botón (por ejemplo, aria-label="Close" o aria-label="Increase quantity").

Un cambio sugerido (El código de tu tema (busca en él el marcado que se muestra)):
```html
<button type="button" aria-label="[What this button does]">…</button>
```

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Vuelve a analizar las páginas afectadas.
  • Comprueba los botones con un lector de pantalla.

Guía detallada: https://dequeuniversity.com/rules/axe/4.13/button-name?application=playwright

P1CríticoFallo verificadoWCAG 1.1.1

Las imágenes deben tener texto alternativo

esfuerzo: moderado · responsable: editor de contenido · 1.1.1 Contenido no textual

Hay imágenes sin texto alternativo, así que los usuarios de lectores de pantalla no saben qué muestran.

WCAG 1.1.1 exige un texto alternativo para las imágenes con significado. Sin él, un usuario de lector de pantalla no puede saber qué producto muestra una foto.

Evidencias

Detectado por
Regla automatizada de axe-core
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
22 casos en 7 páginas

Esperado: Las imágenes deben tener texto alternativo

Observado: El elemento no tiene un atributo alt. El atributo aria-label no existe o está vacío. El atributo aria-labelledby no existe, hace referencia a elementos inexistentes o hace referencia a elementos vacíos. El elemento no tiene atributo title. La semántica predeterminada del elemento no se anuló mediante role="none" o role="presentation".

Las imágenes deben tener texto alternativo: el elemento marcado en /
Las imágenes deben tener texto alternativo: el elemento marcado en /
Las imágenes deben tener texto alternativo: el elemento marcado en /collections/all
Las imágenes deben tener texto alternativo: el elemento marcado en /collections/all
Cómo reproducirlo
  1. Abre https://harborandpine.example/ en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, pulsa Ctrl+F (Cmd+F en Mac) y busca: img[src$="hero-photo.jpg"]
  3. En el panel Accesibilidad de DevTools, el nombre calculado (Name) del elemento está vacío.
  4. O ejecuta en la página la extensión gratuita axe DevTools para el navegador: lo indica como «image-alt».
Elementos que fallan (se muestran 4)
img[src$="hero-photo.jpg"]
<img src="/img/hero-photo.jpg" loading="lazy">
img[src$="mug.svg"]
<img src="/img/mug.svg">
img[src$="beanie.svg"]
<img src="/img/beanie.svg">
img[src$="jacket.svg"]
<img src="/img/jacket.svg">
Páginas afectadas (7)
  • https://harborandpine.example/
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Cómo corregirlo

Código creado a partir del marcado de tu página
  1. En el panel de administración de Shopify, abre Productos > [producto] > Multimedia, haz clic en cada imagen y rellena «Texto alternativo». Para las imágenes de las secciones, abre Tienda online > Temas > Personalizar y define el texto alternativo de la imagen en la configuración de la sección.
  2. Describe lo que le importa a un comprador: el nombre del producto, el color y el ángulo que se ve (por ejemplo, «Bolso tote de lona en verde oliva, vista frontal»).
  3. Las imágenes decorativas deben tener un atributo alt vacío (alt="") para que los lectores de pantalla las omitan.

Código

Ejemplos de implementación para tu desarrollador. No tenemos el código fuente de tu tema, así que las ubicaciones de los archivos son orientativas, no rutas exactas.

Antes · lo que encontramos · Fotos de producto: panel de administración de Shopify › Productos › Multimedia › Texto alternativo. Otras imágenes: el código de tu tema
<img src="/img/hero-photo.jpg" loading="lazy">
Después · creado a partir del elemento que falla
<img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">

Describe lo que muestra la imagen (en una foto de producto: el producto, el color y el ángulo). Si la imagen es puramente decorativa, usa alt="" en su lugar para que los lectores de pantalla la omitan.

Antes · lo que encontramos · Fotos de producto: panel de administración de Shopify › Productos › Multimedia › Texto alternativo. Otras imágenes: el código de tu tema
<img src="/img/mug.svg">
Después · creado a partir del elemento que falla
<img src="/img/mug.svg" alt="[Describe the image for a shopper]">

Describe lo que muestra la imagen (en una foto de producto: el producto, el color y el ángulo). Si la imagen es puramente decorativa, usa alt="" en su lugar para que los lectores de pantalla la omitan.

Antes · lo que encontramos · Fotos de producto: panel de administración de Shopify › Productos › Multimedia › Texto alternativo. Otras imágenes: el código de tu tema
<img src="/img/beanie.svg">
Después · creado a partir del elemento que falla
<img src="/img/beanie.svg" alt="[Describe the image for a shopper]">

Describe lo que muestra la imagen (en una foto de producto: el producto, el color y el ángulo). Si la imagen es puramente decorativa, usa alt="" en su lugar para que los lectores de pantalla la omitan.

Antes · lo que encontramos · Fotos de producto: panel de administración de Shopify › Productos › Multimedia › Texto alternativo. Otras imágenes: el código de tu tema
<img src="/img/jacket.svg">
Después · creado a partir del elemento que falla
<img src="/img/jacket.svg" alt="[Describe the image for a shopper]">

Describe lo que muestra la imagen (en una foto de producto: el producto, el color y el ángulo). Si la imagen es puramente decorativa, usa alt="" en su lugar para que los lectores de pantalla la omitan.

Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: Las imágenes deben tener texto alternativo (WCAG 1.1.1).
Dónde: 22 casos en 7 páginas, por ejemplo /, /collections/all, /products/trail-daypack, /products/pine-wool-beanie.

Un elemento que falla, tal como lo mostró el navegador:
```html
<img src="/img/hero-photo.jpg" loading="lazy">
```

Por qué es importante: WCAG 1.1.1 exige un texto alternativo para las imágenes con significado. Sin él, un usuario de lector de pantalla no puede saber qué producto muestra una foto.

Qué hay que cambiar:
- En el panel de administración de Shopify, abre Productos > [producto] > Multimedia, haz clic en cada imagen y rellena «Texto alternativo». Para las imágenes de las secciones, abre Tienda online > Temas > Personalizar y define el texto alternativo de la imagen en la configuración de la sección.
- Describe lo que le importa a un comprador: el nombre del producto, el color y el ángulo que se ve (por ejemplo, «Bolso tote de lona en verde oliva, vista frontal»).
- Las imágenes decorativas deben tener un atributo alt vacío (alt="") para que los lectores de pantalla las omitan.

Un cambio sugerido (Fotos de producto: panel de administración de Shopify › Productos › Multimedia › Texto alternativo. Otras imágenes: el código de tu tema):
```html
<img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">
```

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Vuelve a analizar las páginas afectadas.
  • Usa un lector de pantalla (VoiceOver: Cmd+F5 en Mac) para oír cómo se anuncian las imágenes de los productos.

Guía detallada: https://dequeuniversity.com/rules/axe/4.13/image-alt?application=playwright

P1CríticoFallo verificadoWCAG 4.1.2

Los elementos de formulario deben tener etiquetas

esfuerzo: bajo · responsable: desarrollador del tema · 4.1.2 Nombre, función, valor

Algunos campos de formulario no tienen etiqueta, así que los usuarios de lectores de pantalla no saben qué deben introducir.

WCAG 1.3.1, 3.3.2 y 4.1.2 exigen que los campos de formulario tengan etiquetas. Los campos de suscripción a la newsletter y de búsqueda son los que más suelen fallar.

Evidencias

Detectado por
Regla automatizada de axe-core
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
7 casos en 6 páginas

Esperado: Los elementos de formulario deben tener etiquetas

Observado: El elemento de formulario no tiene un <label> implícito ('envuelto'). El elemento de formulario no tiene un <label> explícito. El atributo aria-label no existe o está vacío. El atributo aria-labelledby no existe, hace referencia a elementos inexistentes o hace referencia a elementos vacíos. El elemento no tiene atributo title. El elemento no tiene atributo placeholder. La semántica predeterminada del elemento no se anuló mediante role="none" o role="presentation".

Los elementos de formulario deben tener etiquetas: el elemento marcado en /products/trail-daypack
Los elementos de formulario deben tener etiquetas: el elemento marcado en /products/trail-daypack
Los elementos de formulario deben tener etiquetas: el elemento marcado en /cart
Los elementos de formulario deben tener etiquetas: el elemento marcado en /cart
Cómo reproducirlo
  1. Abre https://harborandpine.example/products/trail-daypack en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, pulsa Ctrl+F (Cmd+F en Mac) y busca: input
  3. En el panel Accesibilidad de DevTools, el nombre calculado (Name) del elemento está vacío.
  4. O ejecuta en la página la extensión gratuita axe DevTools para el navegador: lo indica como «label».
Elementos que fallan (se muestran 2)
input
<input type="number" value="1" min="1">
input[value="2"]
<input type="number" value="2" min="1">
Páginas afectadas (6)
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/cart
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Cómo corregirlo

Código creado a partir del marcado de tu página
  1. Dale a cada campo un elemento <label for="field-id"> o, como mínimo, un aria-label.
  2. El texto del marcador de posición (placeholder) por sí solo no cuenta como etiqueta.

Código

Ejemplos de implementación para tu desarrollador. No tenemos el código fuente de tu tema, así que las ubicaciones de los archivos son orientativas, no rutas exactas.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<input type="number" value="1" min="1">
Después · creado a partir del elemento que falla
<input type="number" value="1" min="1" aria-label="Quantity">

El campo no tiene id, así que la corrección más rápida es un aria-label. Un <label> visible es mejor para todo el mundo. El texto de la etiqueta «Quantity» se ha deducido del campo; ajústalo si hace falta.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<input type="number" value="2" min="1">
Después · creado a partir del elemento que falla
<input type="number" value="2" min="1" aria-label="Quantity">

El campo no tiene id, así que la corrección más rápida es un aria-label. Un <label> visible es mejor para todo el mundo. El texto de la etiqueta «Quantity» se ha deducido del campo; ajústalo si hace falta.

Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: Los elementos de formulario deben tener etiquetas (WCAG 4.1.2).
Dónde: 7 casos en 6 páginas, por ejemplo /products/trail-daypack, /cart, /products/pine-wool-beanie, /products/enamel-camp-mug.

Un elemento que falla, tal como lo mostró el navegador:
```html
<input type="number" value="1" min="1">
```

Por qué es importante: WCAG 1.3.1, 3.3.2 y 4.1.2 exigen que los campos de formulario tengan etiquetas. Los campos de suscripción a la newsletter y de búsqueda son los que más suelen fallar.

Qué hay que cambiar:
- Dale a cada campo un elemento <label for="field-id"> o, como mínimo, un aria-label.
- El texto del marcador de posición (placeholder) por sí solo no cuenta como etiqueta.

Un cambio sugerido (El código de tu tema (busca en él el marcado que se muestra)):
```html
<input type="number" value="1" min="1" aria-label="Quantity">
```

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Vuelve a analizar y confirma que la regla label ya no falla.
  • Haz clic en cada etiqueta y comprueba que lleva el foco a su campo.

Guía detallada: https://dequeuniversity.com/rules/axe/4.13/label?application=playwright

P1CríticoFallo verificadoWCAG 4.1.2

El elemento select debe tener un nombre accesible

esfuerzo: bajo · responsable: desarrollador del tema · 4.1.2 Nombre, función, valor

Un menú desplegable (a menudo un selector de orden o de variante) no tiene etiqueta.

WCAG 4.1.2 exige que los menús de selección tengan un nombre accesible.

Evidencias

Detectado por
Regla automatizada de axe-core
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
1 caso en 1 página

Esperado: El elemento select debe tener un nombre accesible

Observado: El elemento de formulario no tiene un <label> implícito ('envuelto'). El elemento de formulario no tiene un <label> explícito. El atributo aria-label no existe o está vacío. El atributo aria-labelledby no existe, hace referencia a elementos inexistentes o hace referencia a elementos vacíos. El elemento no tiene atributo title. La semántica predeterminada del elemento no se anuló mediante role="none" o role="presentation".

El elemento select debe tener un nombre accesible: el elemento marcado en /collections/all
El elemento select debe tener un nombre accesible: el elemento marcado en /collections/all
Cómo reproducirlo
  1. Abre https://harborandpine.example/collections/all en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, pulsa Ctrl+F (Cmd+F en Mac) y busca: select
  3. En el panel Accesibilidad de DevTools, el nombre calculado (Name) del elemento está vacío.
  4. O ejecuta en la página la extensión gratuita axe DevTools para el navegador: lo indica como «select-name».
Elementos que fallan (se muestran 1)
select
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
Páginas afectadas (1)
  • https://harborandpine.example/collections/all

Cómo corregirlo

Código creado a partir del marcado de tu página
  1. Añade un <label> vinculado al select, o un aria-label como aria-label="Sort by".

Código

Ejemplos de implementación para tu desarrollador. No tenemos el código fuente de tu tema, así que las ubicaciones de los archivos son orientativas, no rutas exactas.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
Después · creado a partir del elemento que falla
<select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>

El campo no tiene id, así que la corrección más rápida es un aria-label. Un <label> visible es mejor para todo el mundo. Sustituye el texto entre corchetes por la etiqueta del campo.

Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: El elemento select debe tener un nombre accesible (WCAG 4.1.2).
Dónde: 1 caso en 1 página, por ejemplo /collections/all.

Un elemento que falla, tal como lo mostró el navegador:
```html
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
```

Por qué es importante: WCAG 4.1.2 exige que los menús de selección tengan un nombre accesible.

Qué hay que cambiar:
- Añade un <label> vinculado al select, o un aria-label como aria-label="Sort by".

Un cambio sugerido (El código de tu tema (busca en él el marcado que se muestra)):
```html
<select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
```

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Vuelve a analizar las páginas de colección y de producto.

Guía detallada: https://dequeuniversity.com/rules/axe/4.13/select-name?application=playwright

P1GraveFallo verificadoWCAG 1.4.3

Los elementos deben tener un contraste de colores suficiente

esfuerzo: bajo · responsable: propietario de la tienda (ajustes del panel de administración) · 1.4.3 Contraste (mínimo)

Hay texto que no destaca lo suficiente sobre su fondo como para que lo lean las personas con baja visión.

WCAG 1.4.3 exige una relación de contraste de al menos 4.5:1 para el texto normal y de 3:1 para el texto grande. Los precios, las etiquetas y los banners con colores tenues son difíciles de leer para las personas con baja visión y, con luz intensa, para todo el mundo.

Evidencias

Detectado por
Regla automatizada de axe-core
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
22 casos en 9 páginas

Esperado: Los elementos deben tener un contraste de colores suficiente

Observado: El elemento tiene un contraste de color insuficiente de 3.09 (color de primer plano: #ffffff, color de fondo: #e76f51, tamaño de fuente: 9.8pt (13px), grosor de fuente: normal). Ratio de contraste esperado: 4.5:1.

Los elementos deben tener un contraste de colores suficiente: el elemento marcado en /
Los elementos deben tener un contraste de colores suficiente: el elemento marcado en /
Los elementos deben tener un contraste de colores suficiente: el elemento marcado en /collections/all
Los elementos deben tener un contraste de colores suficiente: el elemento marcado en /collections/all
Cómo reproducirlo
  1. Abre https://harborandpine.example/ en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, pulsa Ctrl+F (Cmd+F en Mac) y busca: .announce
  3. Haz clic en la muestra de color que hay junto al color del elemento en el panel Estilos para ver la relación de contraste medida.
  4. O ejecuta en la página la extensión gratuita axe DevTools para el navegador: lo indica como «color-contrast».
Elementos que fallan (se muestran 4)
.announce
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
article:nth-child(3) > .badge
<span class="badge">Sale</span>
article:nth-child(3) > .price > .compare
<span class="compare">$72</span>
article:nth-child(4) > .price > .compare
<span class="compare">$40</span>
Páginas afectadas (9)
  • https://harborandpine.example/
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/cart
  • https://harborandpine.example/pages/about
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Cómo corregirlo

Código creado a partir del marcado de tu página
  1. Abre los elementos que fallan que se enumeran abajo y anota los colores de primer plano y de fondo que aparecen en el resumen del fallo.
  2. En Tienda online > Temas > Personalizar > Configuración del tema > Colores, oscurece el color del texto o aclara el fondo del esquema de color afectado hasta que la relación sea de al menos 4.5:1.
  3. Presta especial atención a las etiquetas de oferta, al texto de los marcadores de posición, a los enlaces del pie de página y a los botones sobre imágenes.

Código

Ejemplos de implementación para tu desarrollador. No tenemos el código fuente de tu tema, así que las ubicaciones de los archivos son orientativas, no rutas exactas.

Antes · lo que encontramos · Configuración del tema › Colores, o el archivo CSS de tu tema
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
Después · creado a partir del elemento que falla
.announce {
  background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}

Medido: 3,09:1 para texto de 13px; WCAG 1.4.3 exige 4,5:1. #b95941 mantiene el mismo tono y supera la prueba. El selector es el que usó nuestra prueba; puede que tu tema use una clase más amplia para el mismo estilo.

Antes · lo que encontramos · Configuración del tema › Colores, o el archivo CSS de tu tema
<span class="badge">Sale</span>
Después · creado a partir del elemento que falla
.badge {
  background-color: #9f693f; /* was #f4a261: 2.06:1, now 4.59:1 */
}

Medido: 2,06:1 para texto en negrita de 12px; WCAG 1.4.3 exige 4,5:1. #9f693f mantiene el mismo tono y supera la prueba. El selector es el que usó nuestra prueba; puede que tu tema use una clase más amplia para el mismo estilo.

Antes · lo que encontramos · Configuración del tema › Colores, o el archivo CSS de tu tema
<span class="compare">$72</span>
Después · creado a partir del elemento que falla
.compare {
  color: #78736c; /* was #b0a99f: 2.29:1, now 4.62:1 */
}

Medido: 2,29:1 para texto de 14px; WCAG 1.4.3 exige 4,5:1. #78736c mantiene el mismo tono y supera la prueba. El selector es el que usó nuestra prueba; puede que tu tema use una clase más amplia para el mismo estilo.

Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: Los elementos deben tener un contraste de colores suficiente (WCAG 1.4.3).
Dónde: 22 casos en 9 páginas, por ejemplo /, /collections/all, /products/trail-daypack, /cart.

Un elemento que falla, tal como lo mostró el navegador:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Por qué es importante: WCAG 1.4.3 exige una relación de contraste de al menos 4.5:1 para el texto normal y de 3:1 para el texto grande. Los precios, las etiquetas y los banners con colores tenues son difíciles de leer para las personas con baja visión y, con luz intensa, para todo el mundo.

Qué hay que cambiar:
- Abre los elementos que fallan que se enumeran abajo y anota los colores de primer plano y de fondo que aparecen en el resumen del fallo.
- En Tienda online > Temas > Personalizar > Configuración del tema > Colores, oscurece el color del texto o aclara el fondo del esquema de color afectado hasta que la relación sea de al menos 4.5:1.
- Presta especial atención a las etiquetas de oferta, al texto de los marcadores de posición, a los enlaces del pie de página y a los botones sobre imágenes.

Un cambio sugerido (Configuración del tema › Colores, o el archivo CSS de tu tema):
```css
.announce {
  background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}
```

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Vuelve a ejecutar el análisis y confirma que color-contrast ya no aparece.
  • Haz una comprobación puntual de los colores exactos con un comprobador de contraste.

Guía detallada: https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright

P3ModeradoFallo verificado

Todo el contenido de la página debe estar incluido en puntos de referencia

esfuerzo: moderado · responsable: desarrollador del tema

Hay contenido que no está dentro de una región (landmark) de la página (header, nav, main o footer).

Las regiones permiten a los usuarios de lectores de pantalla saltar de una parte a otra de la página. Es una buena práctica que contribuye a cumplir WCAG 1.3.1 y 2.4.1.

Evidencias

Detectado por
Regla automatizada de axe-core
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
18 casos en 9 páginas

Esperado: Todo el contenido de la página debe estar incluido en puntos de referencia

Observado: La página tiene contenido no incluido en puntos de referencia.

Todo el contenido de la página debe estar incluido en puntos de referencia: el elemento marcado en /
Todo el contenido de la página debe estar incluido en puntos de referencia: el elemento marcado en /
Todo el contenido de la página debe estar incluido en puntos de referencia: el elemento marcado en /cart
Todo el contenido de la página debe estar incluido en puntos de referencia: el elemento marcado en /cart
Cómo reproducirlo
  1. Abre https://harborandpine.example/ en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, pulsa Ctrl+F (Cmd+F en Mac) y busca: .announce
  3. O ejecuta en la página la extensión gratuita axe DevTools para el navegador: lo indica como «region».
Elementos que fallan (se muestran 2)
.announce
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
#cookie-banner > p
<p>We use cookies to improve your experience and measure traffic.</p>
Páginas afectadas (9)
  • https://harborandpine.example/
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/cart
  • https://harborandpine.example/pages/about
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Cómo corregirlo

Orientación general
  1. Envuelve el contenido suelto (barras de anuncios, ventanas emergentes, widgets de chat) en la región adecuada o colócalo dentro de <main>.
Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: Todo el contenido de la página debe estar incluido en puntos de referencia.
Dónde: 18 casos en 9 páginas, por ejemplo /, /collections/all, /products/trail-daypack, /cart.

Un elemento que falla, tal como lo mostró el navegador:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Por qué es importante: Las regiones permiten a los usuarios de lectores de pantalla saltar de una parte a otra de la página. Es una buena práctica que contribuye a cumplir WCAG 1.3.1 y 2.4.1.

Qué hay que cambiar:
- Envuelve el contenido suelto (barras de anuncios, ventanas emergentes, widgets de chat) en la región adecuada o colócalo dentro de <main>.

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Vuelve a analizar las páginas afectadas.

Guía detallada: https://dequeuniversity.com/rules/axe/4.13/region?application=playwright

P3ModeradoFallo verificado

El nivel de encabezados solo debería incrementarse en 1

esfuerzo: moderado · responsable: desarrollador del tema

Los niveles de encabezado se saltan niveles (por ejemplo, de H2 a H4), lo que hace que la estructura de la página resulte confusa para los usuarios de lectores de pantalla.

Los usuarios de lectores de pantalla navegan por los encabezados. Es una buena práctica que contribuye a cumplir WCAG 1.3.1.

Evidencias

Detectado por
Regla automatizada de axe-core
Estado · confianza
Fallo verificado · alta
Detectado
24 sept 2026 (UTC)
Dónde
7 casos en 7 páginas

Esperado: El nivel de encabezados solo debería incrementarse en 1

Observado: Orden de encabezados no válido.

El nivel de encabezados solo debería incrementarse en 1: el elemento marcado en /collections/all
El nivel de encabezados solo debería incrementarse en 1: el elemento marcado en /collections/all
El nivel de encabezados solo debería incrementarse en 1: el elemento marcado en /products/trail-daypack
El nivel de encabezados solo debería incrementarse en 1: el elemento marcado en /products/trail-daypack
Cómo reproducirlo
  1. Abre https://harborandpine.example/collections/all en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, pulsa Ctrl+F (Cmd+F en Mac) y busca: article:nth-child(1) > a[href$="trail-daypack"] > h3
  3. O ejecuta en la página la extensión gratuita axe DevTools para el navegador: lo indica como «heading-order».
Elementos que fallan (se muestran 3)
article:nth-child(1) > a[href$="trail-daypack"] > h3
<h3>Trail Daypack 22L</h3>
h3
<h3>Reviews</h3>
h3:nth-child(3)
<h3>Started on the trail</h3>
Páginas afectadas (7)
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/pages/about
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Cómo corregirlo

Orientación general
  1. Ajusta los niveles de encabezado de las secciones afectadas para que sigan un orden sin saltarse niveles.
  2. Cambia solo la etiqueta, no el estilo visual (usa clases CSS para el tamaño).

Código

Ejemplos de implementación para tu desarrollador. No tenemos el código fuente de tu tema, así que las ubicaciones de los archivos son orientativas, no rutas exactas.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<h3>Trail Daypack 22L</h3>
Después · ejemplo para adaptar
<h2 class="h3">Trail Daypack 22L</h2>

Usa el nivel siguiente al del encabezado anterior de la página (a menudo, un nivel más arriba) y conserva el aspecto con una clase. Revisa el esquema de la página antes de cambiarlo.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<h3>Reviews</h3>
Después · ejemplo para adaptar
<h2 class="h3">Reviews</h2>

Usa el nivel siguiente al del encabezado anterior de la página (a menudo, un nivel más arriba) y conserva el aspecto con una clase. Revisa el esquema de la página antes de cambiarlo.

Antes · lo que encontramos · El código de tu tema (busca en él el marcado que se muestra)
<h3>Started on the trail</h3>
Después · ejemplo para adaptar
<h2 class="h3">Started on the trail</h2>

Usa el nivel siguiente al del encabezado anterior de la página (a menudo, un nivel más arriba) y conserva el aspecto con una clase. Revisa el esquema de la página antes de cambiarlo.

Corrige con IAMostrar el prompt

Pégalo en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Gestiono una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad ha encontrado este problema y quiero corregirlo en mi tema.

Problema: El nivel de encabezados solo debería incrementarse en 1.
Dónde: 7 casos en 7 páginas, por ejemplo /collections/all, /products/trail-daypack, /pages/about, /products/pine-wool-beanie.

Un elemento que falla, tal como lo mostró el navegador:
```html
<h3>Trail Daypack 22L</h3>
```

Por qué es importante: Los usuarios de lectores de pantalla navegan por los encabezados. Es una buena práctica que contribuye a cumplir WCAG 1.3.1.

Qué hay que cambiar:
- Ajusta los niveles de encabezado de las secciones afectadas para que sigan un orden sin saltarse niveles.
- Cambia solo la etiqueta, no el estilo visual (usa clases CSS para el tamaño).

Un cambio sugerido (El código de tu tema (busca en él el marcado que se muestra)):
```html
<h2 class="h3">Trail Daypack 22L</h2>
```

Reglas para tu respuesta:
- Muestra el cambio exacto como antes y después, e indica el archivo o el ajuste donde va. Si necesitas ver primero mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento actual.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda rellenar.
- Termina explicando cómo puedo comprobar la corrección por mi cuenta.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

  • Vuelve a analizar y revisa el esquema de encabezados con una extensión del navegador como HeadingsMap.

Guía detallada: https://dequeuniversity.com/rules/axe/4.13/heading-order?application=playwright

Requiere revisión manual

Las pruebas automatizadas señalaron estos elementos, pero no pudieron decidir, por ejemplo texto sobre una imagen o contenido que puede no caber en la pantalla de un móvil. No se cuentan como fallos. Pide a tu desarrollador que revise cada uno.

  • Requiere revisiónWCAG 4.1.3

    Recorrido con teclado: Añadir al carrito con el teclado

    Enter en «Añadir al carrito» funcionó (cambió el contador del carrito en el encabezado, apareció un mensaje de «añadido al carrito»), pero no encontramos ningún mensaje de estado ni cuadro de diálogo con el foco, así que es posible que los usuarios de lectores de pantalla no oigan que se ha añadido el artículo.

    1 caso en 1 página · Cómo comprobarlo

  • Requiere revisiónWCAG 1.4.10

    Puede que la página de producto no quepa en una pantalla estrecha sin desplazarse en horizontal

    A 320 píxeles CSS de ancho (lo mismo que un zoom del 400%), la página es 200px más ancha que la pantalla. Las tablas de datos y los mapas pueden desplazarse; el texto y los controles no deberían.

    2 casos en 1 página · Cómo comprobarlo

    Elementos que revisar (se muestran 2)
    div.icons
    <div class="icons"> <button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></bu
    div
    <div> <p style="color:#6a6a60;font-size:14px">Harbor &amp; Pine</p> <h1>Trail Daypack 22L</h1> <p class="price" style="font-size:22px">$128<span class="compare">$150</span></p> <p class="opt-label">Si
  • Requiere revisiónWCAG 1.4.10

    Puede que la página de inicio no quepa en una pantalla estrecha sin desplazarse en horizontal

    A 320 píxeles CSS de ancho (lo mismo que un zoom del 400%), la página es 55px más ancha que la pantalla. Las tablas de datos y los mapas pueden desplazarse; el texto y los controles no deberían.

    3 casos en 1 página · Cómo comprobarlo

    Elementos que revisar (se muestran 3)
    div.icons
    <div class="icons"> <button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></bu
    article.card
    <article class="card"><span class="badge">Sale</span><a href="/products/trail-daypack"><img src="/img/beanie.svg"><h3>Pine Wool Beanie</h3></a><p class="price">$32<span class="compare">$40</span></p><
    button.btn.light
    <button class="btn light" type="submit">Subscribe</button>
  • Requiere revisiónWCAG 1.4.3

    Los elementos deben tener un contraste de colores suficiente

    El color de fondo del elemento no se pudo determinar porque el elemento contiene un nodo de imagen.

    1 caso en 1 página · Cómo comprobarlo

    Elementos que revisar (se muestran 1)
    h1
    <h1>Gear for the long way home</h1>

Reevalúa tus correcciones

Cuando tu desarrollador haya hecho los cambios, haz una reevaluación. Volvemos a ejecutar las mismas comprobaciones automatizadas en las mismas páginas, la prueba con teclado y el recorrido con teclado, y te mostramos qué problemas ya no podemos reproducir. Incluye 5 reevaluaciones.

Las reevaluaciones están disponibles en los informes de pago.

Comprobaciones manuales

Las herramientas automatizadas no pueden evaluar esto. Hazlo antes de dar el trabajo por terminado.

  • Completa la compra usando solo el teclado: nuestro recorrido automatizado se detiene en el botón de pago y nunca entra en el proceso de pago.
  • Repítelo con un lector de pantalla (VoiceOver en Mac: Cmd+F5; NVDA en Windows) y confirma que se anuncian los precios, las variantes y los errores.
  • Amplía el navegador al 200% y confirma que nada se superpone ni desaparece.
  • Comprueba que los vídeos de productos y de marca tienen subtítulos precisos.
  • Envía formularios con errores (newsletter, contacto, pago) y confirma que los errores se describen con texto.
  • Comprueba que los carruseles y las ventanas emergentes se pueden pausar o cerrar, también con la tecla Escape.

Borrador de declaración de accesibilidad

Edita las partes entre corchetes y publícalo en una página enlazada desde el pie de página.

Declaración de accesibilidad de harborandpine.example

Queremos que todo el mundo pueda comprar en harborandpine.example, incluidas las personas que usan lectores de pantalla, navegación con teclado, ampliación u otras tecnologías de apoyo. Nuestro objetivo es cumplir las Pautas de Accesibilidad para el Contenido Web (WCAG) 2.2 en el nivel AA.

Qué hacemos
- Probamos nuestra tienda con herramientas automatizadas de accesibilidad y corregimos los problemas que encuentran.
- Probamos los pasos clave de la compra (navegación, páginas de producto, carrito y finalización de compra) con un teclado y un lector de pantalla.
- Revisamos la accesibilidad de las apps y los widgets de terceros antes de añadirlos.

Limitaciones conocidas (a fecha de 24 de septiembre de 2026)
- Acceso con teclado y foco (WCAG 2.1.1). Tenemos previsto corregirlo antes del 2026-10-08.
- Enlaces y botones sin nombre (WCAG 2.4.4, 4.1.2). Tenemos previsto corregirlo antes del 2026-10-08.
- Imágenes sin texto alternativo (WCAG 1.1.1). Tenemos previsto corregirlo antes del 2026-10-08.
- Campos de formulario sin etiqueta (WCAG 4.1.2). Tenemos previsto corregirlo antes del 2026-10-08.
- Bajo contraste de color (WCAG 1.4.3). Tenemos previsto corregirlo antes del 2026-10-08.

Observaciones y ayuda
Si tienes problemas para usar alguna parte de nuestra tienda, ponte en contacto con nosotros en [tu email] o en el [tu número de teléfono]. Indícanos la página y el problema, y te ayudaremos a completar tu compra y te responderemos en un plazo de 5 días hábiles.

Esta declaración se preparó el 24 de septiembre de 2026 y se revisará al menos una vez al año.

Registro de evidencias

Cada página se cargó en Chromium y se probó con axe-core 4.13.0. El hash SHA-256 identifica los resultados en bruto de cada página.

Páginas probadas, con marcas de tiempo y hashes de los resultados
PáginaProbada (UTC)HTTPProblemasSHA-256
Página de iniciohttps://harborandpine.example/2026-09-24 14:05:0020015da1e5470a57859a864332912dd1e4f62b4c4f64487ba144865b74879519599a3
Página de colecciónhttps://harborandpine.example/collections/all2026-09-24 14:05:092002028d8dfcf5ca953af353264a930a351bea3cf23f98a303874b32e5da355a4c8b0
Página de productohttps://harborandpine.example/products/trail-daypack2026-09-24 14:05:182002068a173ddfd16eeeef5e36d6c0fa9d426769f0d96e358c5e35b67608dd84139b4
Carritohttps://harborandpine.example/cart2026-09-24 14:05:27200125b7945c2cdf779dcef2bd8975d96eb8f42d8dedbf10e767ec80199dd22ce257c
Página de contenidohttps://harborandpine.example/pages/about2026-09-24 14:05:362009daf61ae856358a574e63f9357db0bfd9ae6079065acf3aebd5b3c5a7f460e53f
Página adicionalhttps://harborandpine.example/products/pine-wool-beanie2026-09-24 14:08:0020020f708ccd7de34dfb65d59d3716580b6ec15a6420020c8387fa4da4e2ff5bd52d3
Página adicionalhttps://harborandpine.example/products/enamel-camp-mug2026-09-24 14:08:0720019c619bcd29e89d06099d174b9fc19305a42f2fa9bdddb600a750c867fc7477022
Página adicionalhttps://harborandpine.example/products/harbor-lantern2026-09-24 14:08:14200205720b7433b75050ba413ac74c2bd726b0620aaa68f7918083052383257d5c418
Página adicionalhttps://harborandpine.example/products/insulated-bottle2026-09-24 14:08:21200196f1972c22e477c9a63e2dfde1123ed759718f6a75e1606b23f208848691510fd

Alcance y método

Qué probamos

  • 9 páginas (página de inicio, página de colección, página de producto, carrito, página de contenido, página adicional) cargadas en Chromium a 1366×900.
  • Reglas de axe-core 4.13.0 para WCAG 2.0, 2.1 y 2.2, niveles A y AA, además de reglas de buenas prácticas (mostradas como P3).
  • Una prueba con teclado: 40 pulsaciones de Tab en la página de inicio, en busca de trampas y de indicadores de foco ausentes.
  • Un recorrido de compra solo con teclado desde la página de inicio hasta el botón de pago (ver arriba).
  • Una comprobación de reajuste (reflow) a 320 píxeles CSS de ancho (WCAG 1.4.10) en: página de inicio y página de producto.

Qué no probamos

  • Las páginas de finalización de compra y de pago, el envío de formularios y las páginas de cuenta o con sesión iniciada.
  • Lo que anuncia realmente un lector de pantalla, más allá de las reglas automatizadas.
  • Los subtítulos y la audiodescripción de los vídeos, los documentos PDF y el contenido dentro de marcos de terceros.
  • El lenguaje claro, la accesibilidad cognitiva y todo lo demás que requiera criterio humano (consulta Comprobaciones manuales).

Cómo interpretar los resultados

Fallo verificado
Una prueba automatizada o el recorrido con teclado falló; se muestran las evidencias.
Requiere revisión
Una prueba señaló algo que no pudo decidir; una persona debería revisarlo.
Superado
La regla automatizada no encontró fallos en las páginas probadas.
No probado
Fuera de lo que las pruebas automatizadas pueden cubrir aquí; consulta Comprobaciones manuales.

Consigue este informe para tu sitio web.

Empieza con el análisis gratis para ver tus problemas y cómo encajan con tu carta. El Informe de Accesibilidad cuesta $249, en un pago único, y está listo en unos 10 minutos.

Analiza tu sitio web gratis

Este informe describe los resultados de pruebas automatizadas y ofrece orientaciones para corregir los problemas. No constituye asesoramiento legal ni certifica el cumplimiento de la ADA, de la Ley Europea de Accesibilidad ni de ninguna otra ley.