Relatório de Acessibilidade de exemplo. A Harbor & Pine é uma loja fictícia que criamos com problemas comuns de acessibilidade e depois testamos com o mesmo mecanismo que analisa o seu site.

Analise seu site grátis

Relatório de Acessibilidade de exemplo

harborandpine.example

Plataforma:
Shopify
Gerado em:
24 de set. de 2026
Páginas testadas:
9
Mecanismo:
axe-core 4.13.0

Resumo

Testes automatizados encontram parte dos problemas de acessibilidade de um site, não todos. Este relatório descreve o que nossos testes encontraram e como corrigir. Ele não é aconselhamento jurídico e não certifica conformidade com a ADA, a Lei Europeia de Acessibilidade ou qualquer lei.

Visão geral

P1 · Corrigir primeiroBloqueia visitantes em páginas-chave
8
P2 · Corrigir em seguidaBarreiras graves ou moderadas
0
P3 · MelhorarProblemas leves e boas práticas
2

Ocorrências por gravidade

Crítico
73
Grave
58
Moderado
25
Leve
0
Falhas verificadasTipos de problema em que um teste automatizado falhou
10
Requer revisãoSinalizados, mas uma pessoa precisa decidir
4
Verificações aprovadasRegras automatizadas sem falhas
32
Não testadoEtapas do percurso e verificações manuais
7

Testamos 9 páginas, 4 delas escolhidas do seu sitemap. As datas-alvo são sugestões com base na gravidade; combine as datas finais com seu desenvolvedor.

Visão geral do site

Detectado a partir de evidências públicas nas páginas testadas. Uma classificação pode estar errada; ela só define quais verificações extras são executadas.

Tipo de site

  • Loja virtualConfiança alta
    • Usa Shopify, uma plataforma de lojas virtuais
    • Link para um carrinho
    • Links de produtos ou da loja
  • Landing pageConfiança média
    • Só 6 páginas internas com link

Tecnologias detectadas

  • ShopifyConfiança alta

    Arquivos ou scripts de Shopify na página

Verificações para este site

  • Verificações universais: acessibilidade, SEO, velocidade, segurança e e-mail
  • Módulo de e-commerce: páginas de coleção, produto e carrinho, e um percurso de compra pelo teclado até o botão de finalizar compra
  • Notas sobre a Shopify: passos de correção no tema e no admin; cabeçalhos e cookies gerenciados pela plataforma mostrados como referência

Percurso de compra pelo teclado

Tentamos comprar usando só o teclado (Tab, Shift+Tab, Enter, Espaço, Escape), como fazem as pessoas que não conseguem usar um mouse. Adicionamos um item ao carrinho em uma sessão descartável e paramos no botão de finalizar compra: nunca entramos no checkout nem digitamos dados pessoais ou de pagamento. Objetivo: Ir da página inicial até o botão de finalizar compra usando só o teclado.

  1. 01Chegar à navegação principal

    Aprovado

    O foco chegou a “Shop” na navegação depois de pressionar Tab 21 vezes.

    Esperado: Pressionando Tab a partir do topo da página inicial, o foco chega aos links da navegação principal.

    • Observação: Um banner de cookies prendeu o foco do teclado até pressionarmos Enter em “Accept all”.
    Como reproduzir

    https://harborandpine.example/

    1. Abra a página inicial.
    2. Clique na barra de endereços do navegador e pressione Tab várias vezes (Shift+Tab volta).

    Ordem de foco que observamos

    “Shop”

  2. 02Abrir um produto a partir de uma coleção

    Aprovado

    O foco chegou a “Trail Daypack 22L” depois de pressionar Tab 9 vezes, e o Enter abriu /products/trail-daypack.

    Esperado: O Tab chega a um produto na grade da coleção, e o Enter abre a página dele.

    Como reproduzir

    https://harborandpine.example/collections/all

    1. Abra /collections/all.
    2. Pressione Tab até que um produto da grade fique destacado e depois pressione Enter.

    Ordem 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. 03Escolher opções e quantidade

    Com falha

    3 opções de produto não conseguem receber o foco do teclado: “S”, “M”, “L”. Elas respondem ao mouse, mas quem usa o teclado não consegue escolhê-las.

    Esperado: Todas as opções do produto (tamanho, cor, variante) e o campo de quantidade podem ser alcançados com Tab.

    2.1.1 Teclado · Confiança: alta

    Escolher opções e quantidade: o elemento com falha, contornado
    Escolher opções e quantidade: o elemento com falha, contornado
    Como reproduzir

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

    1. Abra /products/trail-daypack.
    2. Pressione Tab a partir do topo da página e anote quais controles recebem o foco antes de Adicionar ao carrinho.

    Ordem de foco que observamos

    “Harbor & Pine” → “Shop” → “New arrivals” → “Our story” → … mais 5 … → 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. 04Adicionar ao carrinho com o teclado

    Requer revisão

    Pressionar Enter em Adicionar ao carrinho funcionou (o contador do carrinho no cabeçalho mudou, apareceu uma mensagem de “adicionado ao carrinho”), mas não encontramos nenhuma mensagem de status nem caixa de diálogo com foco; por isso, usuários de leitores de tela podem não ouvir que o item foi adicionado.

    Esperado: Pressionar Enter em Adicionar ao carrinho adiciona o item, e a confirmação é anunciada: uma mensagem de status, uma caixa de diálogo que recebe o foco ou a página do carrinho.

    4.1.3 Mensagens de Status · Confiança: média

    Adicionar ao carrinho com o teclado: a página nesta etapa
    Adicionar ao carrinho com o teclado: a página nesta etapa
    Como reproduzir

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

    1. Abra /products/trail-daypack.
    2. Pressione Tab até que Adicionar ao carrinho fique em foco e depois pressione Enter.
    3. Com um leitor de tela (VoiceOver: Cmd+F5), ouça se há uma confirmação.
  5. 05Alterar o carrinho e chegar ao checkout

    Aprovado

    O foco chegou a todos os 4 controles do carrinho e ao botão de finalizar compra (“Check out”) com 12 pressionamentos de Tab. Não pressionamos o botão.

    Esperado: Os campos de quantidade, os botões de remover e o botão de finalizar compra podem ser alcançados com Tab.

    Como reproduzir

    https://harborandpine.example/cart

    1. Adicione qualquer produto ao carrinho e abra a página do carrinho.
    2. Pressione Tab e confira se os campos de quantidade, os botões de remover e o botão de finalizar compra recebem o foco.

    Ordem 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. 06Checkout

    Não testado

    Paramos no botão de finalizar compra: nunca entramos no checkout, criamos um pedido nem digitamos dados de pagamento. Na Shopify, as páginas de checkout são gerenciadas pela própria Shopify, não pelo seu tema. Verifique o checkout manualmente (veja Verificações manuais).

Mapa de alegações da notificação

Cada alegação da notificação, comparada com as evidências da análise. Uma comparação factual, não aconselhamento jurídico.

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

    Imagens sem alternativa em texto. 10 ocorrências em 3 de 5 páginas testadas.

    image-alt

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

    Baixo contraste de cores. 16 ocorrências em 5 de 5 páginas testadas.

    color-contrast

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

    Acesso pelo teclado e foco. O foco do teclado fica preso no banner de cookies.

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

    Campos de formulário sem rótulo. 4 ocorrências em 3 de 5 páginas testadas.

    select-name, label

    Reproduzido
  • “Product videos do not have captions.”

    Legendas de vídeo e áudio. Análises automatizadas não conseguem avaliar legendas. Confira se cada vídeo de produto ou da marca tem legendas precisas e uma transcrição.

    Verificação manual
  • “Our client is legally blind and uses screen reader software.”

    Outros problemas. Esta é uma alegação genérica. Teste os fluxos principais (busca, página de produto, adicionar ao carrinho, checkout) com um leitor de tela como VoiceOver ou NVDA.

    Verificação manual

Plano de correção

Problemas em ordem de prioridade, com responsáveis e datas-alvo
PrioridadeProblemaStatusWCAGOcorrênciasResponsávelData-alvo
P1O foco do teclado fica preso no banner de cookiesVerificado2.1.21fornecedor do app2026-10-08
P1As opções do produto não podem ser escolhidas pelo tecladoVerificado2.1.11desenvolvedor do tema2026-10-08
P1Botões devem ter texto discernívelVerificado4.1.241desenvolvedor do tema2026-10-08
P1Imagens devem ter texto alternativoVerificado1.1.122editor de conteúdo2026-10-08
P1Elementos de formulário devem ter rótulosVerificado4.1.27desenvolvedor do tema2026-10-08
P1O elemento 'select' deve ter um nome acessívelVerificado4.1.21desenvolvedor do tema2026-10-08
P1Links devem ter um texto discernívelVerificado2.4.4, 4.1.236desenvolvedor do tema2026-10-08
P1Os elementos devem ter contraste de cor suficienteVerificado1.4.322lojista (configurações do admin)2026-10-08
P3Todo o conteúdo da página deve estar contido em regiões (landmarks)VerificadoBoa prática18desenvolvedor do tema2026-11-23
P3Níveis dos títulos devem aumentar de um em umVerificadoBoa prática7desenvolvedor do tema2026-11-23

Como corrigir cada problema

P1CríticoFalha verificadaWCAG 2.1.2

O foco do teclado fica preso no banner de cookies

esforço: médio · responsável: fornecedor do app · 2.1.2 Sem Bloqueio do Teclado

Quando quem navega pelo teclado pressiona Tab, o foco circula por poucos elementos e nunca chega ao resto da página.

Quem usa só o teclado ou um leitor de tela não consegue comprar nada se o foco fica preso (WCAG 2.1.2 Sem Bloqueio do Teclado).

Evidência

Encontrado por
Teste de teclado (Tab ao longo da página inicial)
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
1 ocorrência em 1 página

Esperado: Pressionar Tab percorre todos os elementos interativos da página e segue para o resto da página.

Observado: Depois de 40 toques na tecla Tab, o foco continuou circulando por: Settings, Accept all.

Como reproduzir
  1. Abra a página inicial.
  2. Clique na barra de endereço e depois pressione Tab várias vezes.
  3. O foco continua voltando para os mesmos poucos elementos.
Elementos com falha (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 afetadas (1)
  • https://harborandpine.example/

Como corrigir

Orientação geral
  1. Procure nas configurações do app do seu banner de cookies ou de consentimento uma opção de acessibilidade ou de armadilha de foco, ou peça ao fornecedor que corrija.
  2. Um modal só pode manter o foco dentro dele enquanto estiver aberto, e deve fechar com a tecla Escape e devolver o foco para onde ele estava.
Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: O foco do teclado fica preso no banner de cookies (WCAG 2.1.2).
Onde: 1 ocorrência em 1 página, por exemplo /.

Um elemento com falha, como o navegador o renderizou:
```html
Settings
```

Por que isso importa: Quem usa só o teclado ou um leitor de tela não consegue comprar nada se o foco fica preso (WCAG 2.1.2 Sem Bloqueio do Teclado).

O que precisa mudar:
- Procure nas configurações do app do seu banner de cookies ou de consentimento uma opção de acessibilidade ou de armadilha de foco, ou peça ao fornecedor que corrija.
- Um modal só pode manter o foco dentro dele enquanto estiver aberto, e deve fechar com a tecla Escape e devolver o foco para onde ele estava.

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Carregue a página inicial, pressione Tab várias vezes e confirme que o foco chega à navegação principal e ao conteúdo.

Detectado por um teste automatizado de teclado; confirme manualmente.

P1CríticoFalha verificadaWCAG 2.1.1

As opções do produto não podem ser escolhidas pelo teclado

esforço: médio · responsável: desenvolvedor do tema · 2.1.1 Teclado

As opções de tamanho, cor ou variante respondem ao mouse, mas não podem receber o foco do teclado, então quem navega pelo teclado não consegue escolher uma variante.

Compradores que usam só o teclado, incluindo muitas pessoas que usam leitor de tela, não conseguem passar desta etapa (WCAG 2.1.1).

Evidência

Encontrado por
Percurso pelo teclado
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
1 ocorrência em 1 página

Esperado: Todas as opções do produto (tamanho, cor, variante) e o campo de quantidade podem ser alcançados com Tab.

Observado: 3 opções de produto não conseguem receber o foco do teclado: “S”, “M”, “L”. Elas respondem ao mouse, mas quem usa o teclado não consegue escolhê-las.

As opções do produto não podem ser escolhidas pelo teclado: o elemento contornado
As opções do produto não podem ser escolhidas pelo teclado: o elemento contornado
Como reproduzir
  1. Abra /products/trail-daypack.
  2. Pressione Tab a partir do topo da página e anote quais controles recebem o foco antes de Adicionar ao carrinho.
Elementos com falha (1 mostrados)
(veja a captura de tela)
<div class="size-option" data-fr="opt-1">S</div>
Páginas afetadas (1)
  • https://harborandpine.example/products/trail-daypack

Como corrigir

Orientação geral
  1. Crie os seletores de opção com botões de opção (radio) nativos (ou um <select>) com rótulos visíveis; estilize o rótulo como a amostra.
  2. Se você mantiver elementos personalizados, cada opção precisa de tabindex="0", role="radio" com aria-checked dentro de um role="radiogroup", e de suporte às setas e à barra de espaço. Os radios nativos já oferecem tudo isso.

Código

Exemplos de implementação para o seu desenvolvedor. Não temos o código-fonte do seu tema, então as localizações dos arquivos são indicações, não caminhos exatos.

Antes · o que encontramos · O formulário de produto do seu tema (seletor de variantes)
<div class="size-option" data-fr="opt-1">S</div>
Depois · exemplo 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 opção é um botão de opção (radio) de verdade, alcançável com Tab e alterado com as setas; o rótulo mantém o estilo da sua amostra. Use os nomes e valores das suas opções.

Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: As opções do produto não podem ser escolhidas pelo teclado (WCAG 2.1.1).
Onde: 1 ocorrência em 1 página, por exemplo /products/trail-daypack.

Um elemento com falha, como o navegador o renderizou:
```html
<div class="size-option" data-fr="opt-1">S</div>
```

Por que isso importa: Compradores que usam só o teclado, incluindo muitas pessoas que usam leitor de tela, não conseguem passar desta etapa (WCAG 2.1.1).

O que precisa mudar:
- Crie os seletores de opção com botões de opção (radio) nativos (ou um <select>) com rótulos visíveis; estilize o rótulo como a amostra.
- Se você mantiver elementos personalizados, cada opção precisa de tabindex="0", role="radio" com aria-checked dentro de um role="radiogroup", e de suporte às setas e à barra de espaço. Os radios nativos já oferecem tudo isso.

Uma mudança sugerida (O formulário de produto do seu tema (seletor 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>
```

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Repita os passos de reprodução usando só o teclado.
  • Peça um novo teste a partir deste relatório: o percurso é executado de novo.
P1CríticoFalha verificadaWCAG 4.1.2

Botões devem ter texto discernível

esforço: baixo · responsável: desenvolvedor do tema · 4.1.2 Nome, Função, Valor

Alguns botões não têm nome acessível, então quem usa leitor de tela ouve apenas “botão”.

O critério 4.1.2 da WCAG exige que todo controle tenha um nome. Botões sem nome costumam incluir os de aumentar e diminuir quantidade, botões de fechar e setas de carrossel.

Evidência

Encontrado por
Regra automatizada do axe-core
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
41 ocorrências em 9 páginas

Esperado: Botões devem ter texto discernível

Observado: O elemento não tem texto interno que seja visível aos leitores de tela. O atributo 'aria-label' não existe ou está vazio. O atributo 'aria-labelledby' não existe, referencia elementos que não existem ou são vazios. O elemento não tem um atributo 'title'. O elemento de formulário não tem <label> implícito (envolvido). O elemento de formulário não tem um <label> explícito. A semântica padrão do elemento não foi sobrescrita com role="none" or role="presentation".

Botões devem ter texto discernível: o elemento contornado em /
Botões devem ter texto discernível: o elemento contornado em /
Botões devem ter texto discernível: o elemento contornado em /collections/all
Botões devem ter texto discernível: o elemento contornado em /collections/all
Como reproduzir
  1. Abra https://harborandpine.example/ no Chrome ou no Edge.
  2. Abra o DevTools (F12) › Elementos, pressione Ctrl+F (Cmd+F no Mac) e pesquise: .icons > button[type="button"]
  3. No painel Acessibilidade do DevTools, o Nome calculado do elemento está vazio.
  4. Ou execute na página a extensão gratuita axe DevTools para navegador: ela informa isto como “button-name”.
Elementos com falha (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 afetadas (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

Como corrigir

Código criado a partir do HTML da sua página
  1. Encontre os botões nos exemplos abaixo.
  2. Adicione um texto visível, um texto visualmente oculto ou um aria-label que diga o que o botão faz (por exemplo aria-label="Close" ou aria-label="Increase quantity").

Código

Exemplos de implementação para o seu desenvolvedor. Não temos o código-fonte do seu tema, então as localizações dos arquivos são indicações, não caminhos exatos.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<button type="button">…</button>
Depois · criado a partir do elemento com falha
<button type="button" aria-label="[What this button does]">…</button>

Substitua o texto entre colchetes pelo que o botão faz. Um texto visível ou visualmente oculto dentro do botão também funciona.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<button type="button"><img src="/img/daypack.svg"></button>
Depois · criado a partir do elemento com falha
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/daypack.svg"></button>

Substitua o texto entre colchetes pelo que o botão faz. Um texto visível ou visualmente oculto dentro do botão também funciona.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<button type="button"><img src="/img/jacket.svg"></button>
Depois · criado a partir do elemento com falha
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/jacket.svg"></button>

Substitua o texto entre colchetes pelo que o botão faz. Um texto visível ou visualmente oculto dentro do botão também funciona.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<button type="button"><img src="/img/bottle.svg"></button>
Depois · criado a partir do elemento com falha
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/bottle.svg"></button>

Substitua o texto entre colchetes pelo que o botão faz. Um texto visível ou visualmente oculto dentro do botão também funciona.

Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: Botões devem ter texto discernível (WCAG 4.1.2).
Onde: 41 ocorrências em 9 páginas, por exemplo /, /collections/all, /products/trail-daypack, /cart.

Um elemento com falha, como o navegador o renderizou:
```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 que isso importa: O critério 4.1.2 da WCAG exige que todo controle tenha um nome. Botões sem nome costumam incluir os de aumentar e diminuir quantidade, botões de fechar e setas de carrossel.

O que precisa mudar:
- Encontre os botões nos exemplos abaixo.
- Adicione um texto visível, um texto visualmente oculto ou um aria-label que diga o que o botão faz (por exemplo aria-label="Close" ou aria-label="Increase quantity").

Uma mudança sugerida (O código do seu tema (procure nele o HTML mostrado)):
```html
<button type="button" aria-label="[What this button does]">…</button>
```

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Analise de novo as páginas afetadas.
  • Confira os botões com um leitor de tela.

Orientação detalhada: https://dequeuniversity.com/rules/axe/4.13/button-name?application=playwright

P1CríticoFalha verificadaWCAG 1.1.1

Imagens devem ter texto alternativo

esforço: médio · responsável: editor de conteúdo · 1.1.1 Conteúdo Não Textual

Há imagens sem alternativa em texto, então quem usa leitor de tela não sabe o que elas mostram.

O critério 1.1.1 da WCAG exige uma alternativa em texto para imagens com significado. Sem ela, quem usa leitor de tela não consegue saber qual produto uma foto mostra.

Evidência

Encontrado por
Regra automatizada do axe-core
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
22 ocorrências em 7 páginas

Esperado: Imagens devem ter texto alternativo

Observado: O elemento não tem um atributo 'alt'. O atributo 'aria-label' não existe ou está vazio. O atributo 'aria-labelledby' não existe, referencia elementos que não existem ou são vazios. O elemento não tem um atributo 'title'. A semântica padrão do elemento não foi sobrescrita com role="none" or role="presentation".

Imagens devem ter texto alternativo: o elemento contornado em /
Imagens devem ter texto alternativo: o elemento contornado em /
Imagens devem ter texto alternativo: o elemento contornado em /collections/all
Imagens devem ter texto alternativo: o elemento contornado em /collections/all
Como reproduzir
  1. Abra https://harborandpine.example/ no Chrome ou no Edge.
  2. Abra o DevTools (F12) › Elementos, pressione Ctrl+F (Cmd+F no Mac) e pesquise: img[src$="hero-photo.jpg"]
  3. No painel Acessibilidade do DevTools, o Nome calculado do elemento está vazio.
  4. Ou execute na página a extensão gratuita axe DevTools para navegador: ela informa isto como “image-alt”.
Elementos com falha (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 afetadas (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

Como corrigir

Código criado a partir do HTML da sua página
  1. No admin da Shopify, abra Produtos > [produto] > Mídia, clique em cada imagem e preencha “Texto alternativo”. Para imagens de seções, abra Loja virtual > Temas > Personalizar e defina o texto alternativo da imagem nas configurações da seção.
  2. Descreva o que importa para quem compra: nome do produto, cor e o ângulo mostrado (por exemplo “Bolsa de lona verde-oliva, vista frontal”).
  3. Imagens decorativas devem ter um atributo alt vazio (alt="") para que os leitores de tela as ignorem.

Código

Exemplos de implementação para o seu desenvolvedor. Não temos o código-fonte do seu tema, então as localizações dos arquivos são indicações, não caminhos exatos.

Antes · o que encontramos · Fotos de produto: admin da Shopify › Produtos › Mídia › Texto alternativo. Outras imagens: o código do seu tema
<img src="/img/hero-photo.jpg" loading="lazy">
Depois · criado a partir do elemento com falha
<img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">

Descreva o que a imagem mostra (em uma foto de produto: produto, cor, ângulo). Se a imagem for puramente decorativa, use alt="" para que os leitores de tela a ignorem.

Antes · o que encontramos · Fotos de produto: admin da Shopify › Produtos › Mídia › Texto alternativo. Outras imagens: o código do seu tema
<img src="/img/mug.svg">
Depois · criado a partir do elemento com falha
<img src="/img/mug.svg" alt="[Describe the image for a shopper]">

Descreva o que a imagem mostra (em uma foto de produto: produto, cor, ângulo). Se a imagem for puramente decorativa, use alt="" para que os leitores de tela a ignorem.

Antes · o que encontramos · Fotos de produto: admin da Shopify › Produtos › Mídia › Texto alternativo. Outras imagens: o código do seu tema
<img src="/img/beanie.svg">
Depois · criado a partir do elemento com falha
<img src="/img/beanie.svg" alt="[Describe the image for a shopper]">

Descreva o que a imagem mostra (em uma foto de produto: produto, cor, ângulo). Se a imagem for puramente decorativa, use alt="" para que os leitores de tela a ignorem.

Antes · o que encontramos · Fotos de produto: admin da Shopify › Produtos › Mídia › Texto alternativo. Outras imagens: o código do seu tema
<img src="/img/jacket.svg">
Depois · criado a partir do elemento com falha
<img src="/img/jacket.svg" alt="[Describe the image for a shopper]">

Descreva o que a imagem mostra (em uma foto de produto: produto, cor, ângulo). Se a imagem for puramente decorativa, use alt="" para que os leitores de tela a ignorem.

Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: Imagens devem ter texto alternativo (WCAG 1.1.1).
Onde: 22 ocorrências em 7 páginas, por exemplo /, /collections/all, /products/trail-daypack, /products/pine-wool-beanie.

Um elemento com falha, como o navegador o renderizou:
```html
<img src="/img/hero-photo.jpg" loading="lazy">
```

Por que isso importa: O critério 1.1.1 da WCAG exige uma alternativa em texto para imagens com significado. Sem ela, quem usa leitor de tela não consegue saber qual produto uma foto mostra.

O que precisa mudar:
- No admin da Shopify, abra Produtos > [produto] > Mídia, clique em cada imagem e preencha “Texto alternativo”. Para imagens de seções, abra Loja virtual > Temas > Personalizar e defina o texto alternativo da imagem nas configurações da seção.
- Descreva o que importa para quem compra: nome do produto, cor e o ângulo mostrado (por exemplo “Bolsa de lona verde-oliva, vista frontal”).
- Imagens decorativas devem ter um atributo alt vazio (alt="") para que os leitores de tela as ignorem.

Uma mudança sugerida (Fotos de produto: admin da Shopify › Produtos › Mídia › Texto alternativo. Outras imagens: o código do seu tema):
```html
<img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">
```

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Analise de novo as páginas afetadas.
  • Use um leitor de tela (VoiceOver: Cmd+F5 no Mac) para ouvir como as imagens de produto são anunciadas.

Orientação detalhada: https://dequeuniversity.com/rules/axe/4.13/image-alt?application=playwright

P1CríticoFalha verificadaWCAG 4.1.2

Elementos de formulário devem ter rótulos

esforço: baixo · responsável: desenvolvedor do tema · 4.1.2 Nome, Função, Valor

Alguns campos de formulário não têm rótulo, então quem usa leitor de tela não sabe o que digitar.

Os critérios 1.3.1, 3.3.2 e 4.1.2 da WCAG exigem que os campos de formulário tenham rótulos. Campos de inscrição na newsletter e de busca são os casos mais comuns.

Evidência

Encontrado por
Regra automatizada do axe-core
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
7 ocorrências em 6 páginas

Esperado: Elementos de formulário devem ter rótulos

Observado: O elemento de formulário não tem <label> implícito (envolvido). O elemento de formulário não tem um <label> explícito. O atributo 'aria-label' não existe ou está vazio. O atributo 'aria-labelledby' não existe, referencia elementos que não existem ou são vazios. O elemento não tem um atributo 'title'. O elemento não tem um atributo 'placeholder'. A semântica padrão do elemento não foi sobrescrita com role="none" or role="presentation".

Elementos de formulário devem ter rótulos: o elemento contornado em /products/trail-daypack
Elementos de formulário devem ter rótulos: o elemento contornado em /products/trail-daypack
Elementos de formulário devem ter rótulos: o elemento contornado em /cart
Elementos de formulário devem ter rótulos: o elemento contornado em /cart
Como reproduzir
  1. Abra https://harborandpine.example/products/trail-daypack no Chrome ou no Edge.
  2. Abra o DevTools (F12) › Elementos, pressione Ctrl+F (Cmd+F no Mac) e pesquise: input
  3. No painel Acessibilidade do DevTools, o Nome calculado do elemento está vazio.
  4. Ou execute na página a extensão gratuita axe DevTools para navegador: ela informa isto como “label”.
Elementos com falha (2 mostrados)
input
<input type="number" value="1" min="1">
input[value="2"]
<input type="number" value="2" min="1">
Páginas afetadas (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

Como corrigir

Código criado a partir do HTML da sua página
  1. Dê a cada campo um elemento <label for="field-id"> ou, no mínimo, um aria-label.
  2. Um texto de placeholder sozinho não conta como rótulo.

Código

Exemplos de implementação para o seu desenvolvedor. Não temos o código-fonte do seu tema, então as localizações dos arquivos são indicações, não caminhos exatos.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<input type="number" value="1" min="1">
Depois · criado a partir do elemento com falha
<input type="number" value="1" min="1" aria-label="Quantity">

O campo não tem id, então a correção mais rápida é um aria-label. Um <label> visível é melhor para todos. O texto do rótulo “Quantity” foi deduzido do campo; ajuste se necessário.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<input type="number" value="2" min="1">
Depois · criado a partir do elemento com falha
<input type="number" value="2" min="1" aria-label="Quantity">

O campo não tem id, então a correção mais rápida é um aria-label. Um <label> visível é melhor para todos. O texto do rótulo “Quantity” foi deduzido do campo; ajuste se necessário.

Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: Elementos de formulário devem ter rótulos (WCAG 4.1.2).
Onde: 7 ocorrências em 6 páginas, por exemplo /products/trail-daypack, /cart, /products/pine-wool-beanie, /products/enamel-camp-mug.

Um elemento com falha, como o navegador o renderizou:
```html
<input type="number" value="1" min="1">
```

Por que isso importa: Os critérios 1.3.1, 3.3.2 e 4.1.2 da WCAG exigem que os campos de formulário tenham rótulos. Campos de inscrição na newsletter e de busca são os casos mais comuns.

O que precisa mudar:
- Dê a cada campo um elemento <label for="field-id"> ou, no mínimo, um aria-label.
- Um texto de placeholder sozinho não conta como rótulo.

Uma mudança sugerida (O código do seu tema (procure nele o HTML mostrado)):
```html
<input type="number" value="1" min="1" aria-label="Quantity">
```

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Analise de novo e confirme que a regra label não falha mais.
  • Clique em cada rótulo e confira se ele coloca o foco no campo correspondente.

Orientação detalhada: https://dequeuniversity.com/rules/axe/4.13/label?application=playwright

P1CríticoFalha verificadaWCAG 4.1.2

O elemento 'select' deve ter um nome acessível

esforço: baixo · responsável: desenvolvedor do tema · 4.1.2 Nome, Função, Valor

Um menu suspenso (muitas vezes um seletor de ordenação ou de variante) não tem rótulo.

O critério 4.1.2 da WCAG exige que menus de seleção tenham um nome acessível.

Evidência

Encontrado por
Regra automatizada do axe-core
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
1 ocorrência em 1 página

Esperado: O elemento 'select' deve ter um nome acessível

Observado: O elemento de formulário não tem <label> implícito (envolvido). O elemento de formulário não tem um <label> explícito. O atributo 'aria-label' não existe ou está vazio. O atributo 'aria-labelledby' não existe, referencia elementos que não existem ou são vazios. O elemento não tem um atributo 'title'. A semântica padrão do elemento não foi sobrescrita com role="none" or role="presentation".

O elemento 'select' deve ter um nome acessível: o elemento contornado em /collections/all
O elemento 'select' deve ter um nome acessível: o elemento contornado em /collections/all
Como reproduzir
  1. Abra https://harborandpine.example/collections/all no Chrome ou no Edge.
  2. Abra o DevTools (F12) › Elementos, pressione Ctrl+F (Cmd+F no Mac) e pesquise: select
  3. No painel Acessibilidade do DevTools, o Nome calculado do elemento está vazio.
  4. Ou execute na página a extensão gratuita axe DevTools para navegador: ela informa isto como “select-name”.
Elementos com falha (1 mostrados)
select
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
Páginas afetadas (1)
  • https://harborandpine.example/collections/all

Como corrigir

Código criado a partir do HTML da sua página
  1. Adicione um <label> vinculado ao select, ou um aria-label como aria-label="Sort by".

Código

Exemplos de implementação para o seu desenvolvedor. Não temos o código-fonte do seu tema, então as localizações dos arquivos são indicações, não caminhos exatos.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
Depois · criado a partir do elemento com falha
<select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>

O campo não tem id, então a correção mais rápida é um aria-label. Um <label> visível é melhor para todos. Substitua o texto entre colchetes pelo rótulo do campo.

Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: O elemento 'select' deve ter um nome acessível (WCAG 4.1.2).
Onde: 1 ocorrência em 1 página, por exemplo /collections/all.

Um elemento com falha, como o navegador o renderizou:
```html
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
```

Por que isso importa: O critério 4.1.2 da WCAG exige que menus de seleção tenham um nome acessível.

O que precisa mudar:
- Adicione um <label> vinculado ao select, ou um aria-label como aria-label="Sort by".

Uma mudança sugerida (O código do seu tema (procure nele o HTML mostrado)):
```html
<select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
```

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Analise de novo as páginas de coleção e de produto.

Orientação detalhada: https://dequeuniversity.com/rules/axe/4.13/select-name?application=playwright

P1GraveFalha verificadaWCAG 1.4.3

Os elementos devem ter contraste de cor suficiente

esforço: baixo · responsável: lojista (configurações do admin) · 1.4.3 Contraste (Mínimo)

Alguns textos não se destacam o suficiente do fundo para serem lidos por pessoas com baixa visão.

O critério 1.4.3 da WCAG exige uma razão de contraste de pelo menos 4,5:1 para texto normal e 3:1 para texto grande. Preços, selos e banners apagados são difíceis de ler para pessoas com baixa visão e para qualquer pessoa sob luz forte.

Evidência

Encontrado por
Regra automatizada do axe-core
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
22 ocorrências em 9 páginas

Esperado: Os elementos devem ter contraste de cor suficiente

Observado: O elemento tem contraste insuficiente no valor de 3.09 (cor do primeiro plano: #ffffff, cor de fundo: #e76f51, tamanho da fonte: 9.8pt (13px), normal/negrito: normal). Contraste esperado no valor de 4.5:1.

Os elementos devem ter contraste de cor suficiente: o elemento contornado em /
Os elementos devem ter contraste de cor suficiente: o elemento contornado em /
Os elementos devem ter contraste de cor suficiente: o elemento contornado em /collections/all
Os elementos devem ter contraste de cor suficiente: o elemento contornado em /collections/all
Como reproduzir
  1. Abra https://harborandpine.example/ no Chrome ou no Edge.
  2. Abra o DevTools (F12) › Elementos, pressione Ctrl+F (Cmd+F no Mac) e pesquise: .announce
  3. Clique na amostra de cor ao lado da cor do elemento no painel Estilos para ver a razão de contraste medida.
  4. Ou execute na página a extensão gratuita axe DevTools para navegador: ela informa isto como “color-contrast”.
Elementos com falha (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 afetadas (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

Como corrigir

Código criado a partir do HTML da sua página
  1. Abra os elementos com falha listados abaixo e anote as cores do texto e do fundo no resumo da falha.
  2. Em Loja virtual > Temas > Personalizar > Configurações do tema > Cores, escureça a cor do texto ou clareie o fundo do esquema de cores afetado até a razão chegar a pelo menos 4,5:1.
  3. Preste atenção especial a selos de promoção, textos de placeholder, links do rodapé e botões sobre imagens.

Código

Exemplos de implementação para o seu desenvolvedor. Não temos o código-fonte do seu tema, então as localizações dos arquivos são indicações, não caminhos exatos.

Antes · o que encontramos · Configurações do tema › Cores, ou o arquivo CSS do seu tema
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
Depois · criado a partir do elemento com falha
.announce {
  background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}

Medido 3,09:1 para texto de 13px; o critério 1.4.3 da WCAG exige 4,5:1. #b95941 mantém o mesmo matiz e é aprovada. O seletor é o que o nosso teste usou; seu tema pode usar uma classe mais ampla para o mesmo estilo.

Antes · o que encontramos · Configurações do tema › Cores, ou o arquivo CSS do seu tema
<span class="badge">Sale</span>
Depois · criado a partir do elemento com falha
.badge {
  background-color: #9f693f; /* was #f4a261: 2.06:1, now 4.59:1 */
}

Medido 2,06:1 para texto de 12px em negrito; o critério 1.4.3 da WCAG exige 4,5:1. #9f693f mantém o mesmo matiz e é aprovada. O seletor é o que o nosso teste usou; seu tema pode usar uma classe mais ampla para o mesmo estilo.

Antes · o que encontramos · Configurações do tema › Cores, ou o arquivo CSS do seu tema
<span class="compare">$72</span>
Depois · criado a partir do elemento com falha
.compare {
  color: #78736c; /* was #b0a99f: 2.29:1, now 4.62:1 */
}

Medido 2,29:1 para texto de 14px; o critério 1.4.3 da WCAG exige 4,5:1. #78736c mantém o mesmo matiz e é aprovada. O seletor é o que o nosso teste usou; seu tema pode usar uma classe mais ampla para o mesmo estilo.

Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: Os elementos devem ter contraste de cor suficiente (WCAG 1.4.3).
Onde: 22 ocorrências em 9 páginas, por exemplo /, /collections/all, /products/trail-daypack, /cart.

Um elemento com falha, como o navegador o renderizou:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Por que isso importa: O critério 1.4.3 da WCAG exige uma razão de contraste de pelo menos 4,5:1 para texto normal e 3:1 para texto grande. Preços, selos e banners apagados são difíceis de ler para pessoas com baixa visão e para qualquer pessoa sob luz forte.

O que precisa mudar:
- Abra os elementos com falha listados abaixo e anote as cores do texto e do fundo no resumo da falha.
- Em Loja virtual > Temas > Personalizar > Configurações do tema > Cores, escureça a cor do texto ou clareie o fundo do esquema de cores afetado até a razão chegar a pelo menos 4,5:1.
- Preste atenção especial a selos de promoção, textos de placeholder, links do rodapé e botões sobre imagens.

Uma mudança sugerida (Configurações do tema › Cores, ou o arquivo CSS do seu tema):
```css
.announce {
  background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}
```

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Faça a análise de novo e confirme que color-contrast não aparece mais.
  • Confira por amostragem com um verificador de contraste usando as cores exatas.

Orientação detalhada: https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright

P3ModeradoFalha verificada

Todo o conteúdo da página deve estar contido em regiões (landmarks)

esforço: médio · responsável: desenvolvedor do tema

Parte do conteúdo não está dentro de um landmark da página (header, nav, main ou footer).

Os landmarks permitem que quem usa leitor de tela salte entre as partes da página. É uma boa prática que apoia os critérios 1.3.1 e 2.4.1 da WCAG.

Evidência

Encontrado por
Regra automatizada do axe-core
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
18 ocorrências em 9 páginas

Esperado: Todo o conteúdo da página deve estar contido em regiões (landmarks)

Observado: Algum conteúdo da página não está contido em regiões (landmarks).

Todo o conteúdo da página deve estar contido em regiões (landmarks): o elemento contornado em /
Todo o conteúdo da página deve estar contido em regiões (landmarks): o elemento contornado em /
Todo o conteúdo da página deve estar contido em regiões (landmarks): o elemento contornado em /cart
Todo o conteúdo da página deve estar contido em regiões (landmarks): o elemento contornado em /cart
Como reproduzir
  1. Abra https://harborandpine.example/ no Chrome ou no Edge.
  2. Abra o DevTools (F12) › Elementos, pressione Ctrl+F (Cmd+F no Mac) e pesquise: .announce
  3. Ou execute na página a extensão gratuita axe DevTools para navegador: ela informa isto como “region”.
Elementos com falha (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 afetadas (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

Como corrigir

Orientação geral
  1. Coloque o conteúdo solto (barras de aviso, pop-ups, widgets de chat) dentro do landmark adequado ou dentro de <main>.
Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: Todo o conteúdo da página deve estar contido em regiões (landmarks).
Onde: 18 ocorrências em 9 páginas, por exemplo /, /collections/all, /products/trail-daypack, /cart.

Um elemento com falha, como o navegador o renderizou:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Por que isso importa: Os landmarks permitem que quem usa leitor de tela salte entre as partes da página. É uma boa prática que apoia os critérios 1.3.1 e 2.4.1 da WCAG.

O que precisa mudar:
- Coloque o conteúdo solto (barras de aviso, pop-ups, widgets de chat) dentro do landmark adequado ou dentro de <main>.

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Analise de novo as páginas afetadas.

Orientação detalhada: https://dequeuniversity.com/rules/axe/4.13/region?application=playwright

P3ModeradoFalha verificada

Níveis dos títulos devem aumentar de um em um

esforço: médio · responsável: desenvolvedor do tema

Os níveis de cabeçalho pulam etapas (por exemplo, de H2 para H4), o que deixa a estrutura da página confusa para quem usa leitor de tela.

Quem usa leitor de tela navega pelos cabeçalhos. É uma boa prática que apoia o critério 1.3.1 da WCAG.

Evidência

Encontrado por
Regra automatizada do axe-core
Status · confiança
Falha verificada · alta
Detectado em
24 de set. de 2026 (UTC)
Onde
7 ocorrências em 7 páginas

Esperado: Níveis dos títulos devem aumentar de um em um

Observado: Hierarquia de títulos inválida.

Níveis dos títulos devem aumentar de um em um: o elemento contornado em /collections/all
Níveis dos títulos devem aumentar de um em um: o elemento contornado em /collections/all
Níveis dos títulos devem aumentar de um em um: o elemento contornado em /products/trail-daypack
Níveis dos títulos devem aumentar de um em um: o elemento contornado em /products/trail-daypack
Como reproduzir
  1. Abra https://harborandpine.example/collections/all no Chrome ou no Edge.
  2. Abra o DevTools (F12) › Elementos, pressione Ctrl+F (Cmd+F no Mac) e pesquise: article:nth-child(1) > a[href$="trail-daypack"] > h3
  3. Ou execute na página a extensão gratuita axe DevTools para navegador: ela informa isto como “heading-order”.
Elementos com falha (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 afetadas (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

Como corrigir

Orientação geral
  1. Ajuste os níveis de cabeçalho nas seções afetadas para que sigam em ordem, sem pular níveis.
  2. Mude só a tag, não o estilo visual (use classes CSS para o tamanho).

Código

Exemplos de implementação para o seu desenvolvedor. Não temos o código-fonte do seu tema, então as localizações dos arquivos são indicações, não caminhos exatos.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<h3>Trail Daypack 22L</h3>
Depois · exemplo para adaptar
<h2 class="h3">Trail Daypack 22L</h2>

Use o nível que segue o cabeçalho anterior da página (muitas vezes um nível acima) e mantenha a aparência com uma classe. Confira a estrutura da página antes de alterá-la.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<h3>Reviews</h3>
Depois · exemplo para adaptar
<h2 class="h3">Reviews</h2>

Use o nível que segue o cabeçalho anterior da página (muitas vezes um nível acima) e mantenha a aparência com uma classe. Confira a estrutura da página antes de alterá-la.

Antes · o que encontramos · O código do seu tema (procure nele o HTML mostrado)
<h3>Started on the trail</h3>
Depois · exemplo para adaptar
<h2 class="h3">Started on the trail</h2>

Use o nível que segue o cabeçalho anterior da página (muitas vezes um nível acima) e mantenha a aparência com uma classe. Confira a estrutura da página antes de alterá-la.

Corrija com IAMostrar o prompt

Cole isto no ChatGPT, Claude, Cursor ou Copilot junto com o arquivo do seu tema. Revise a mudança antes de publicá-la.

Administro uma loja Shopify (tema Online Store 2.0, templates Liquid) em harborandpine.example. Um teste de acessibilidade encontrou este problema e quero corrigi-lo no meu tema.

Problema: Níveis dos títulos devem aumentar de um em um.
Onde: 7 ocorrências em 7 páginas, por exemplo /collections/all, /products/trail-daypack, /pages/about, /products/pine-wool-beanie.

Um elemento com falha, como o navegador o renderizou:
```html
<h3>Trail Daypack 22L</h3>
```

Por que isso importa: Quem usa leitor de tela navega pelos cabeçalhos. É uma boa prática que apoia o critério 1.3.1 da WCAG.

O que precisa mudar:
- Ajuste os níveis de cabeçalho nas seções afetadas para que sigam em ordem, sem pular níveis.
- Mude só a tag, não o estilo visual (use classes CSS para o tamanho).

Uma mudança sugerida (O código do seu tema (procure nele o HTML mostrado)):
```html
<h2 class="h3">Trail Daypack 22L</h2>
```

Regras para a sua resposta:
- Mostre a alteração exata como antes e depois, e diga em qual arquivo ou configuração ela entra. Se precisar ver meu arquivo primeiro, peça para eu colá-lo.
- Mantenha o design visual e todo o comportamento existente iguais.
- Não invente nomes de produtos, preços nem textos; use marcadores que eu possa preencher.
- Termine explicando como eu mesmo posso conferir a correção.
- Inclua como confirmar a correção com o teclado e com um leitor de tela.

Confira sua correção

  • Analise de novo e confira a estrutura de cabeçalhos com uma extensão de navegador como a HeadingsMap.

Orientação detalhada: https://dequeuniversity.com/rules/axe/4.13/heading-order?application=playwright

Requer revisão manual

Os testes automatizados sinalizaram estes itens, mas não conseguiram decidir, por exemplo texto sobre uma imagem ou conteúdo que talvez não caiba na tela de um celular. Eles não são contados como falhas. Peça ao seu desenvolvedor para verificar cada um.

  • Requer revisãoWCAG 4.1.3

    Percurso pelo teclado: Adicionar ao carrinho com o teclado

    Pressionar Enter em Adicionar ao carrinho funcionou (o contador do carrinho no cabeçalho mudou, apareceu uma mensagem de “adicionado ao carrinho”), mas não encontramos nenhuma mensagem de status nem caixa de diálogo com foco; por isso, usuários de leitores de tela podem não ouvir que o item foi adicionado.

    1 ocorrência em 1 página · Como verificar

  • Requer revisãoWCAG 1.4.10

    A página de produto pode não caber em uma tela estreita sem rolagem horizontal

    Com 320 pixels CSS de largura (o mesmo que zoom de 400%), a página fica 200px mais larga que a tela. Tabelas de dados e mapas podem rolar; textos e controles não devem.

    2 ocorrências em 1 página · Como verificar

    Elementos a verificar (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
  • Requer revisãoWCAG 1.4.10

    A página inicial pode não caber em uma tela estreita sem rolagem horizontal

    Com 320 pixels CSS de largura (o mesmo que zoom de 400%), a página fica 55px mais larga que a tela. Tabelas de dados e mapas podem rolar; textos e controles não devem.

    3 ocorrências em 1 página · Como verificar

    Elementos a verificar (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>
  • Requer revisãoWCAG 1.4.3

    Os elementos devem ter contraste de cor suficiente

    A cor de fundo do elemento não pôde ser determinada porque o elemento contém um nó de imagem.

    1 ocorrência em 1 página · Como verificar

    Elementos a verificar (1 mostrados)
    h1
    <h1>Gear for the long way home</h1>

Teste suas correções de novo

Quando o seu desenvolvedor tiver feito as mudanças, teste de novo. Executamos outra vez as mesmas verificações automatizadas nas mesmas páginas, o teste de teclado e o percurso pelo teclado, e mostramos quais problemas não conseguimos mais reproduzir. 5 novos testes estão incluídos.

Os novos testes são executados em relatórios pagos.

Verificações manuais

Ferramentas automatizadas não conseguem avaliar estes itens. Faça essas verificações antes de considerar o trabalho concluído.

  • Conclua o checkout usando só o teclado: nosso percurso automatizado para no botão de finalizar compra e nunca entra no checkout.
  • Repita com um leitor de tela (VoiceOver no Mac: Cmd+F5; NVDA no Windows) e confirme que preços, variantes e erros são anunciados.
  • Aplique zoom de 200% no navegador e confirme que nada se sobrepõe nem desaparece.
  • Confira se os vídeos de produto e da marca têm legendas precisas.
  • Envie formulários com erros (newsletter, contato, checkout) e confirme que os erros são descritos em texto.
  • Confira se carrosséis e pop-ups podem ser pausados ou fechados, inclusive com a tecla Escape.

Rascunho de declaração de acessibilidade

Edite as partes entre colchetes e publique o texto em uma página com link no seu rodapé.

Declaração de acessibilidade de harborandpine.example

Queremos que todas as pessoas possam comprar em harborandpine.example, incluindo quem usa leitores de tela, navegação pelo teclado, ampliação ou outras tecnologias assistivas. Buscamos atender às Diretrizes de Acessibilidade para Conteúdo Web (WCAG) 2.2 no nível AA.

O que fazemos
- Testamos nossa loja com ferramentas automatizadas de acessibilidade e corrigimos os problemas que elas encontram.
- Testamos as principais etapas de compra (navegação pela loja, páginas de produto, carrinho e checkout) com teclado e leitor de tela.
- Avaliamos a acessibilidade de apps e widgets de terceiros antes de adicioná-los.

Limitações conhecidas (em 24 de setembro de 2026)
- Acesso pelo teclado e foco (WCAG 2.1.1). Planejamos corrigir isso até 2026-10-08.
- Links e botões sem nome (WCAG 2.4.4, 4.1.2). Planejamos corrigir isso até 2026-10-08.
- Imagens sem alternativa em texto (WCAG 1.1.1). Planejamos corrigir isso até 2026-10-08.
- Campos de formulário sem rótulo (WCAG 4.1.2). Planejamos corrigir isso até 2026-10-08.
- Baixo contraste de cores (WCAG 1.4.3). Planejamos corrigir isso até 2026-10-08.

Feedback e ajuda
Se você tiver dificuldade para usar qualquer parte da nossa loja, entre em contato pelo [seu e-mail] ou pelo [seu telefone]. Informe a página e o problema, e vamos ajudar você a concluir sua compra e responder em até 5 dias úteis.

Esta declaração foi preparada em 24 de setembro de 2026 e será revisada pelo menos uma vez por ano.

Registro de evidências

Cada página foi carregada no Chromium e testada com o axe-core 4.13.0. O hash SHA-256 identifica os resultados brutos de cada página.

Páginas testadas, com data e hora e hashes dos resultados
PáginaTestada em (UTC)HTTPProblemasSHA-256
Página inicialhttps://harborandpine.example/2026-09-24 14:05:0020015da1e5470a57859a864332912dd1e4f62b4c4f64487ba144865b74879519599a3
Página de coleçãohttps://harborandpine.example/collections/all2026-09-24 14:05:092002028d8dfcf5ca953af353264a930a351bea3cf23f98a303874b32e5da355a4c8b0
Página de produtohttps://harborandpine.example/products/trail-daypack2026-09-24 14:05:182002068a173ddfd16eeeef5e36d6c0fa9d426769f0d96e358c5e35b67608dd84139b4
Carrinhohttps://harborandpine.example/cart2026-09-24 14:05:27200125b7945c2cdf779dcef2bd8975d96eb8f42d8dedbf10e767ec80199dd22ce257c
Página de conteúdohttps://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

Escopo e método

O que testamos

  • 9 páginas (página inicial, página de coleção, página de produto, carrinho, página de conteúdo, página adicional) carregadas no Chromium em 1366×900.
  • Regras do axe-core 4.13.0 para os níveis A e AA da WCAG 2.0, 2.1 e 2.2, mais regras de boas práticas (mostradas como P3).
  • Um teste de teclado: 40 toques na tecla Tab na página inicial, em busca de armadilhas e de indicadores de foco ausentes.
  • Um percurso de compra só com o teclado da página inicial até o botão de finalizar compra (veja acima).
  • Uma verificação de refluxo com 320 pixels CSS de largura em página inicial e página de produto (WCAG 1.4.10).

O que não testamos

  • Páginas de checkout e de pagamento, envio de formulários, páginas de conta e páginas que exigem login.
  • O que um leitor de tela realmente anuncia, além das regras automatizadas.
  • Legendas de vídeo e audiodescrição, documentos PDF e conteúdo dentro de frames de terceiros.
  • Linguagem simples, acessibilidade cognitiva e tudo o mais que exige julgamento humano (veja Verificações manuais).

Como interpretar os resultados

Falha verificada
Um teste automatizado ou o percurso pelo teclado falhou, com a evidência mostrada.
Requer revisão
Um teste sinalizou algo que não conseguiu decidir; uma pessoa deve verificar.
Aprovado
A regra automatizada não encontrou falhas nas páginas testadas.
Não testado
Fora do que os testes automatizados conseguem cobrir aqui; veja Verificações manuais.

Receba este relatório para o seu site.

Comece pela análise gratuita para ver seus problemas e como eles se relacionam com a sua notificação. O Relatório de Acessibilidade custa $249, em pagamento único, e fica pronto em cerca de 10 minutos.

Analise seu site grátis

Este relatório descreve os resultados de testes automatizados e traz orientações de correção. Ele não é aconselhamento jurídico e não certifica conformidade com a ADA, a Lei Europeia de Acessibilidade ou qualquer outra lei.