Reporte de Accesibilidad de ejemplo. Harbor & Pine es una tienda ficticia que creamos con defectos de accesibilidad comunes y luego probamos con el mismo motor que analiza tu sitio web.

Analiza tu sitio web gratis

Reporte de Accesibilidad de ejemplo

harborandpine.example

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

Resumen

Las pruebas automatizadas encuentran una parte de los problemas de accesibilidad de un sitio, no todos. Este reporte describe lo que encontraron nuestras pruebas y cómo corregirlo. No es asesoría legal y no certifica el cumplimiento de la ADA, de la Ley Europea de Accesibilidad ni de ninguna ley.

Panorama general

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

Casos por gravedad

Crítico
73
Grave
58
Moderado
25
Menor
0
Fallas verificadasTipos de problema en los que falló una prueba automatizada
10
Requiere revisiónSeñalados, pero una persona debe decidir
4
Revisiones aprobadasReglas automatizadas sin fallas
32
No probadoPasos del recorrido y revisiones manuales
7

Probamos 9 páginas, 4 de ellas tomadas de tu sitemap. Las fechas objetivo son sugerencias según la gravedad; acuerda las fechas finales con tu desarrollador.

Panorama del sitio web

Detectado a partir de evidencia pública en las páginas probadas. Una clasificación puede ser incorrecta; solo decide qué revisiones adicionales se ejecutan.

Tipo de sitio web

  • Tienda en líneaConfianza alta
    • Funciona con Shopify, una plataforma de tiendas en línea
    • Enlace a un carrito
    • Enlaces de productos o de tienda
  • Landing pageConfianza media
    • Solo 6 páginas internas enlazadas

Tecnologías detectadas

  • ShopifyConfianza alta

    Recursos o scripts de Shopify en la página

Revisiones para este sitio

  • Revisiones universales: 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; los encabezados y las cookies que gestiona la plataforma se muestran como referencia

Recorrido de compra con teclado

Intentamos comprar solo con el teclado (Tab, Shift+Tab, Enter, Space, Escape), como lo hacen las personas que no pueden usar un mouse. Agregamos un artículo a un carrito en una sesión desechable y nos detenemos en el botón de pago: nunca entramos al checkout ni escribimos datos personales o de pago. Objetivo: Ir de la página de inicio al botón de pago usando solo el teclado.

  1. 01Llegar a la navegación principal

    Aprobado

    El foco llegó a “Shop” en la navegación después de 21 pulsaciones de Tab.

    Esperado: Al presionar 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 presionamos 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 luego presiona Tab varias veces (Shift+Tab retrocede).

    Orden de foco que observamos

    “Shop”

  2. 02Abrir un producto desde una colección

    Aprobado

    El foco llegó a “Trail Daypack 22L” después de 9 pulsaciones de Tab, y Enter abrió /products/trail-daypack.

    Esperado: Tab 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. Presiona Tab hasta que se resalte un producto de la cuadrícula y luego presiona Enter.

    Orden de 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 de producto no pueden recibir el foco del teclado: “S”, “M”, “L”. Responden al mouse, pero quien usa el teclado no puede elegirlas.

    Esperado: Se puede llegar con Tab a cada opción del producto (talla, color, variante) y al campo de cantidad.

    2.1.1 Teclado · Confianza: alta

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

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

    1. Abre /products/trail-daypack.
    2. Presiona Tab desde la parte superior de la página y anota qué controles reciben el foco antes de Agregar al carrito.

    Orden de 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. 04Agregar al carrito con el teclado

    Requiere revisión

    Enter en Agregar al carrito funcionó (cambió el contador del carrito en el encabezado, apareció un mensaje de “agregado al carrito”), pero no encontramos ningún mensaje de estado ni diálogo con foco, así que es posible que quienes usan lectores de pantalla no escuchen que se agregó el artículo.

    Esperado: Enter en Agregar al carrito agrega el artículo y la confirmación se anuncia: un mensaje de estado, un diálogo que toma el foco o la página del carrito.

    4.1.3 Mensajes de estado · Confianza: media

    Agregar al carrito con el teclado: la página en este paso
    Agregar 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. Presiona Tab hasta que Agregar al carrito tenga el foco y luego presiona Enter.
    3. Escucha con un lector de pantalla (VoiceOver: Cmd+F5) si se anuncia una confirmación.
  5. 05Modificar el carrito y llegar al checkout

    Aprobado

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

    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. Agrega cualquier producto al carrito y abre la página del carrito.
    2. Presiona Tab y revisa que los campos de cantidad, los botones para eliminar y el botón de pago reciban el foco.

    Orden de 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 al checkout, no creamos pedidos ni escribimos datos de pago. En Shopify, las páginas de checkout las gestiona Shopify, no tu tema. Revisa el checkout a mano (consulta Revisiones manuales).

Mapa de reclamos de la carta

Cada reclamo de la carta, comparado con la evidencia del análisis. Es una comparación de hechos, no asesoría legal.

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

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

    image-alt

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

    Contraste de color insuficiente. 16 casos en 5 de 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 atrapado 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 5 páginas probadas.

    select-name, label

    Reproducido
  • “Product videos do not have captions.”

    Subtítulos de video y audio. Los análisis automatizados no pueden evaluar los subtítulos. Revisa que cada video de producto o de marca tenga 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, agregar al carrito, checkout) 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.322dueño de la tienda (configuración 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íticoFalla verificadaWCAG 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 una persona que usa el teclado presiona Tab, el foco da vueltas entre unos pocos elementos y nunca llega al resto de la página.

Si el foco queda atrapado, quienes usan solo el teclado o un lector de pantalla no pueden comprar en absoluto (WCAG 2.1.2 Sin trampas para el foco del teclado).

Evidencia

Detectado por
Prueba con teclado (recorrer la página de inicio con Tab)
Estado · confianza
Falla verificada · alta
Detectado
24 sept 2026 (UTC)
Dónde
1 caso en 1 página

Esperado: Al presionar Tab, el foco pasa por cada elemento interactivo y continúa al resto de la página.

Observado: Después de 40 pulsaciones de Tab, el foco siguió dando vueltas entre: Settings, Accept all.

Cómo reproducirlo
  1. Abre la página de inicio.
  2. Haz clic en la barra de direcciones y luego presiona Tab varias veces.
  3. El foco vuelve una y otra vez a los mismos pocos elementos.
Elementos que fallan (6 mostrados)
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 la configuración de la app de tu banner de cookies o de consentimiento una opción de accesibilidad o de trampa de foco, o pídele al proveedor que lo corrija.
  2. Un modal puede retener el foco solo mientras está abierto, y debe cerrarse con la tecla Escape y devolver el foco a donde estaba.
Corrige con IAMostrar el prompt

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó el navegador:
```html
Settings
```

Por qué es importante: Si el foco queda atrapado, quienes usan solo el teclado o un lector de pantalla no pueden comprar en absoluto (WCAG 2.1.2 Sin trampas para el foco del teclado).

Qué hay que cambiar:
- Busca en la configuración de la app de tu banner de cookies o de consentimiento una opción de accesibilidad o de trampa de foco, o pídele al proveedor que lo corrija.
- Un modal puede retener el foco solo mientras está abierto, y debe cerrarse con la tecla Escape y devolver el foco a donde estaba.

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

Comprueba tu corrección

  • Carga la página de inicio, presiona 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íticoFalla verificadaWCAG 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 mouse pero no pueden recibir el foco del teclado, así que quienes usan el teclado no pueden elegir una variante.

Los compradores que usan solo el teclado, incluidas muchas personas que usan lectores de pantalla, no pueden pasar de este paso (WCAG 2.1.1).

Evidencia

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

Esperado: Se puede llegar con Tab a cada opción del producto (talla, color, variante) y al campo de cantidad.

Observado: 3 opciones de producto no pueden recibir el foco del teclado: “S”, “M”, “L”. Responden al mouse, pero quien usa el teclado no puede elegirlas.

Las opciones del producto no se pueden elegir con el teclado: el elemento resaltado
Las opciones del producto no se pueden elegir con el teclado: el elemento resaltado
Cómo reproducirlo
  1. Abre /products/trail-daypack.
  2. Presiona Tab desde la parte superior de la página y anota qué controles reciben el foco antes de Agregar al carrito.
Elementos que fallan (1 mostrados)
(ver 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; dale a la etiqueta el estilo de la muestra.
  2. Si conservas elementos personalizados, cada opción necesita tabindex="0", role="radio" con aria-checked dentro de un role="radiogroup", y manejo de las teclas de flecha y de Space. 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, al que se llega con Tab y que se cambia con las teclas de flecha; la etiqueta conserva el estilo de tu muestra. Usa los nombres y valores de tus opciones.

Corrige con IAMostrar el prompt

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó el navegador:
```html
<div class="size-option" data-fr="opt-1">S</div>
```

Por qué es importante: Los compradores que usan solo el teclado, incluidas muchas personas que usan 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; dale a la etiqueta el estilo de la muestra.
- Si conservas elementos personalizados, cada opción necesita tabindex="0", role="radio" con aria-checked dentro de un role="radiogroup", y manejo de las teclas de flecha y de Space. 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 la configuración donde va. Si primero necesitas ver mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento existente.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda completar.
- Termina explicando cómo puedo comprobar la corrección yo mismo.
- 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.
  • Pide una reevaluación desde este reporte: el recorrido se vuelve a ejecutar.
P1CríticoFalla verificadaWCAG 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 quienes usan lectores de pantalla solo escuchan '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.

Evidencia

Detectado por
Regla automatizada de axe-core
Estado · confianza
Falla verificada · 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 resaltado en /
Los botones deben tener texto discernible: el elemento resaltado en /
Los botones deben tener texto discernible: el elemento resaltado en /collections/all
Los botones deben tener texto discernible: el elemento resaltado en /collections/all
Cómo reproducirlo
  1. Abre https://harborandpine.example/ en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, presiona 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 reporta como "button-name".
Elementos que fallan (4 mostrados)
.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. Agrega texto visible, texto visualmente oculto o un aria-label que diga lo que 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>

Reemplaza el texto entre corchetes por lo que hace el botón. También funciona un texto visible o 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>

Reemplaza el texto entre corchetes por lo que hace el botón. También funciona un texto visible o 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>

Reemplaza el texto entre corchetes por lo que hace el botón. También funciona un texto visible o 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>

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

Corrige con IAMostrar el prompt

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó 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.
- Agrega texto visible, texto visualmente oculto o un aria-label que diga lo que 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 la configuración donde va. Si primero necesitas ver mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento existente.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda completar.
- Termina explicando cómo puedo comprobar la corrección yo mismo.
- Incluye cómo confirmarlo con el teclado y con un lector de pantalla.

Comprueba tu corrección

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

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

P1CríticoFalla verificadaWCAG 1.1.1

Las imágenes deben tener texto alternativo

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

A algunas imágenes les falta un texto alternativo, así que quienes usan lectores de pantalla no saben qué muestran.

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

Evidencia

Detectado por
Regla automatizada de axe-core
Estado · confianza
Falla verificada · 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 resaltado en /
Las imágenes deben tener texto alternativo: el elemento resaltado en /
Las imágenes deben tener texto alternativo: el elemento resaltado en /collections/all
Las imágenes deben tener texto alternativo: el elemento resaltado en /collections/all
Cómo reproducirlo
  1. Abre https://harborandpine.example/ en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, presiona 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 reporta como "image-alt".
Elementos que fallan (4 mostrados)
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 completa '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 muestra (por ejemplo, 'Bolso de lona 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: producto, color, ángulo). Si la imagen es solo decorativa, usa alt="" 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: producto, color, ángulo). Si la imagen es solo decorativa, usa alt="" 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: producto, color, ángulo). Si la imagen es solo decorativa, usa alt="" 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: producto, color, ángulo). Si la imagen es solo decorativa, usa alt="" para que los lectores de pantalla la omitan.

Corrige con IAMostrar el prompt

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó 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, una persona que usa un 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 completa '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 muestra (por ejemplo, 'Bolso de lona 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 la configuración donde va. Si primero necesitas ver mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento existente.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda completar.
- Termina explicando cómo puedo comprobar la corrección yo mismo.
- 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 escuchar cómo se anuncian las imágenes de producto.

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

P1CríticoFalla verificadaWCAG 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 quienes usan lectores de pantalla no saben qué deben escribir.

WCAG 1.3.1, 3.3.2 y 4.1.2 exigen que los campos de formulario tengan etiquetas. Los campos de suscripción al boletín y de búsqueda suelen ser los que fallan.

Evidencia

Detectado por
Regla automatizada de axe-core
Estado · confianza
Falla verificada · 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 resaltado en /products/trail-daypack
Los elementos de formulario deben tener etiquetas: el elemento resaltado en /products/trail-daypack
Los elementos de formulario deben tener etiquetas: el elemento resaltado en /cart
Los elementos de formulario deben tener etiquetas: el elemento resaltado en /cart
Cómo reproducirlo
  1. Abre https://harborandpine.example/products/trail-daypack en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, presiona 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 reporta como "label".
Elementos que fallan (2 mostrados)
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 de 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 todos. El texto de la etiqueta "Quantity" se dedujo 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 todos. El texto de la etiqueta "Quantity" se dedujo del campo; ajústalo si hace falta.

Corrige con IAMostrar el prompt

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó 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 al boletín y de búsqueda suelen ser los que fallan.

Qué hay que cambiar:
- Dale a cada campo un elemento <label for="field-id"> o, como mínimo, un aria-label.
- El texto de 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 la configuración donde va. Si primero necesitas ver mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento existente.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda completar.
- Termina explicando cómo puedo comprobar la corrección yo mismo.
- 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 pone el foco en su campo.

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

P1CríticoFalla verificadaWCAG 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.

Evidencia

Detectado por
Regla automatizada de axe-core
Estado · confianza
Falla verificada · 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 resaltado en /collections/all
El elemento select debe tener un nombre accesible: el elemento resaltado en /collections/all
Cómo reproducirlo
  1. Abre https://harborandpine.example/collections/all en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, presiona 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 reporta como "select-name".
Elementos que fallan (1 mostrados)
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. Agrega 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 todos. Reemplaza el texto entre corchetes por la etiqueta del campo.

Corrige con IAMostrar el prompt

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó 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:
- Agrega 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 la configuración donde va. Si primero necesitas ver mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento existente.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda completar.
- Termina explicando cómo puedo comprobar la corrección yo mismo.
- 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

P1GraveFalla verificadaWCAG 1.4.3

Los elementos deben tener un contraste de colores suficiente

esfuerzo: bajo · responsable: dueño de la tienda (configuración del panel de administración) · 1.4.3 Contraste (mínimo)

Parte del texto no se distingue lo suficiente de su fondo 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 poco visibles son difíciles de leer para las personas con baja visión, y para cualquiera bajo una luz intensa.

Evidencia

Detectado por
Regla automatizada de axe-core
Estado · confianza
Falla verificada · 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 resaltado en /
Los elementos deben tener un contraste de colores suficiente: el elemento resaltado en /
Los elementos deben tener un contraste de colores suficiente: el elemento resaltado en /collections/all
Los elementos deben tener un contraste de colores suficiente: el elemento resaltado en /collections/all
Cómo reproducirlo
  1. Abre https://harborandpine.example/ en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, presiona Ctrl+F (Cmd+F en Mac) y busca: .announce
  3. Haz clic en la muestra de color 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 reporta como "color-contrast".
Elementos que fallan (4 mostrados)
.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 aparecen abajo y anota los colores de primer plano y de fondo del resumen de la falla.
  2. En Tienda online > Temas > Personalizar > Configuración del tema > Colores, oscurece el color del texto o aclara el fondo del esquema de colores 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 marcador de posición (placeholder), 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 */
}

Se midió 3.09:1 para texto de 13px; WCAG 1.4.3 exige 4.5:1. #b95941 mantiene el mismo tono y cumple. El selector es el que usó nuestra prueba; tu tema puede usar una clase más general 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 */
}

Se midió 2.06:1 para texto en negrita de 12px; WCAG 1.4.3 exige 4.5:1. #9f693f mantiene el mismo tono y cumple. El selector es el que usó nuestra prueba; tu tema puede usar una clase más general 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 */
}

Se midió 2.29:1 para texto de 14px; WCAG 1.4.3 exige 4.5:1. #78736c mantiene el mismo tono y cumple. El selector es el que usó nuestra prueba; tu tema puede usar una clase más general para el mismo estilo.

Corrige con IAMostrar el prompt

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó 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 poco visibles son difíciles de leer para las personas con baja visión, y para cualquiera bajo una luz intensa.

Qué hay que cambiar:
- Abre los elementos que fallan que aparecen abajo y anota los colores de primer plano y de fondo del resumen de la falla.
- En Tienda online > Temas > Personalizar > Configuración del tema > Colores, oscurece el color del texto o aclara el fondo del esquema de colores 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 marcador de posición (placeholder), 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 la configuración donde va. Si primero necesitas ver mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento existente.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda completar.
- Termina explicando cómo puedo comprobar la corrección yo mismo.
- 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 con un verificador de contraste usando los colores exactos.

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

P3ModeradoFalla verificada

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

esfuerzo: moderado · responsable: desarrollador del tema

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

Las regiones (landmarks) permiten que quienes usan lectores de pantalla salten de una parte a otra de la página. Es una buena práctica que respalda WCAG 1.3.1 y 2.4.1.

Evidencia

Detectado por
Regla automatizada de axe-core
Estado · confianza
Falla verificada · 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 resaltado en /
Todo el contenido de la página debe estar incluido en puntos de referencia: el elemento resaltado en /
Todo el contenido de la página debe estar incluido en puntos de referencia: el elemento resaltado en /cart
Todo el contenido de la página debe estar incluido en puntos de referencia: el elemento resaltado en /cart
Cómo reproducirlo
  1. Abre https://harborandpine.example/ en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, presiona 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 reporta como "region".
Elementos que fallan (2 mostrados)
.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

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó el navegador:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Por qué es importante: Las regiones (landmarks) permiten que quienes usan lectores de pantalla salten de una parte a otra de la página. Es una buena práctica que respalda 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 la configuración donde va. Si primero necesitas ver mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento existente.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda completar.
- Termina explicando cómo puedo comprobar la corrección yo mismo.
- 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

P3ModeradoFalla verificada

El nivel de encabezados solo debería incrementarse en 1

esfuerzo: moderado · responsable: desarrollador del tema

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

Quienes usan lectores de pantalla navegan por los encabezados. Es una buena práctica que respalda WCAG 1.3.1.

Evidencia

Detectado por
Regla automatizada de axe-core
Estado · confianza
Falla verificada · 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 resaltado en /collections/all
El nivel de encabezados solo debería incrementarse en 1: el elemento resaltado en /collections/all
El nivel de encabezados solo debería incrementarse en 1: el elemento resaltado en /products/trail-daypack
El nivel de encabezados solo debería incrementarse en 1: el elemento resaltado en /products/trail-daypack
Cómo reproducirlo
  1. Abre https://harborandpine.example/collections/all en Chrome o Edge.
  2. Abre DevTools (F12) › Elementos, presiona 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 reporta como "heading-order".
Elementos que fallan (3 mostrados)
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 vayan en 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 que sigue al 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 que sigue al 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 que sigue al 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

Pega esto en ChatGPT, Claude, Cursor o Copilot junto con el archivo de tu tema. Revisa el cambio antes de publicarlo.

Tengo una tienda Shopify (tema Online Store 2.0, plantillas Liquid) en harborandpine.example. Una prueba de accesibilidad encontró 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 renderizó el navegador:
```html
<h3>Trail Daypack 22L</h3>
```

Por qué es importante: Quienes usan lectores de pantalla navegan por los encabezados. Es una buena práctica que respalda WCAG 1.3.1.

Qué hay que cambiar:
- Ajusta los niveles de encabezado de las secciones afectadas para que vayan en 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 la configuración donde va. Si primero necesitas ver mi archivo, pídeme que lo pegue.
- Mantén igual el diseño visual y todo el comportamiento existente.
- No inventes nombres de productos, precios ni textos; usa marcadores de posición que yo pueda completar.
- Termina explicando cómo puedo comprobar la corrección yo mismo.
- 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 un texto sobre una imagen o contenido que quizá no quepa en la pantalla de un celular. No se cuentan como fallas. Pídele a tu desarrollador que revise cada uno.

  • Requiere revisiónWCAG 4.1.3

    Recorrido con teclado: Agregar al carrito con el teclado

    Enter en Agregar al carrito funcionó (cambió el contador del carrito en el encabezado, apareció un mensaje de “agregado al carrito”), pero no encontramos ningún mensaje de estado ni diálogo con foco, así que es posible que quienes usan lectores de pantalla no escuchen que se agregó el artículo.

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

  • Requiere revisiónWCAG 1.4.10

    Es posible que la página de producto no quepa en una pantalla angosta sin desplazamiento 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 revisarlo

    Elementos por revisar (2 mostrados)
    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

    Es posible que la página de inicio no quepa en una pantalla angosta sin desplazamiento 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 revisarlo

    Elementos por revisar (3 mostrados)
    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 revisarlo

    Elementos por revisar (1 mostrados)
    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 revisiones automatizadas en las mismas páginas, la prueba con teclado y el recorrido con teclado, y mostramos qué problemas ya no podemos reproducir. Incluye 5 reevaluaciones.

Las reevaluaciones se ejecutan en los reportes de pago.

Revisiones manuales

Las herramientas automatizadas no pueden evaluar estos puntos. Revísalos antes de dar el trabajo por terminado.

  • Completa el checkout usando solo el teclado: nuestro recorrido automatizado se detiene en el botón de pago y nunca entra al checkout.
  • 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.
  • Aplica un zoom del 200% en el navegador y confirma que nada se superpone ni desaparece.
  • Revisa que los videos de producto y de marca tengan subtítulos precisos.
  • Envía formularios con errores (boletín, contacto, checkout) y confirma que los errores se describen con texto.
  • Revisa que los carruseles y las ventanas emergentes se puedan pausar o cerrar, también con la tecla Escape.

Borrador de declaración de accesibilidad

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

Declaración de accesibilidad de harborandpine.example

Queremos que todas las personas puedan comprar en harborandpine.example, incluidas las que usan lectores de pantalla, navegación con teclado, ampliación u otras tecnologías de asistencia. Buscamos cumplir las Pautas de Accesibilidad para el Contenido Web (WCAG) 2.2 en el nivel AA.

Lo que hacemos
- Probamos nuestra tienda con herramientas automatizadas de accesibilidad y corregimos los problemas que encuentran.
- Probamos los pasos clave de compra (navegación por el catálogo, páginas de producto, carrito y checkout) con un teclado y un lector de pantalla.
- Revisamos la accesibilidad de las apps y los widgets de terceros antes de agregarlos.

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

Comentarios y ayuda
Si tienes problemas para usar cualquier parte de nuestra tienda, contáctanos en [tu correo electrónico] o [tu número de teléfono]. Indícanos la página y el problema, y te ayudaremos a completar tu compra y 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 evidencia

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

Páginas probadas con marcas de tiempo y hashes de 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 de nivel A y AA, más 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 faltantes.
  • Un recorrido de compra solo con teclado de la página de inicio al botón de pago (ver arriba).
  • Una revisión de reajuste del contenido (reflow) a 320 píxeles CSS de ancho en estas páginas: página de inicio y página de producto (WCAG 1.4.10).

Qué no probamos

  • Las páginas del checkout y de pago, el envío de formularios, y las páginas de cuenta o que requieren iniciar sesión.
  • Lo que realmente anuncia un lector de pantalla, más allá de las reglas automatizadas.
  • Subtítulos de video y audiodescripciones, documentos PDF y contenido dentro de marcos (iframes) de terceros.
  • Lenguaje sencillo, accesibilidad cognitiva y todo lo demás que requiera criterio humano (consulta Revisiones manuales).

Cómo interpretar los resultados

Falla verificada
Falló una prueba automatizada o el recorrido con teclado; se muestra la evidencia.
Requiere revisión
Una prueba señaló algo que no pudo decidir; una persona debe revisarlo.
Aprobado
La regla automatizada no encontró fallas en las páginas probadas.
No probado
Fuera de lo que las pruebas automatizadas pueden cubrir aquí; consulta Revisiones manuales.

Obtén este reporte para tu sitio web.

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

Analiza tu sitio web gratis

Este reporte describe los resultados de pruebas automatizadas y ofrece orientación para corregir los problemas. No es asesoría legal y no certifica el cumplimiento de la ADA, de la Ley Europea de Accesibilidad ni de ninguna otra ley.