Report Accessibilità di esempio. Harbor & Pine è un negozio fittizio che abbiamo creato con difetti di accessibilità comuni e poi testato con lo stesso motore che analizza il tuo sito web.

Analizza il tuo sito gratis

Report Accessibilità di esempio

harborandpine.example

Piattaforma:
Shopify
Generato il:
24 set 2026
Pagine testate:
9
Motore:
axe-core 4.13.0

Riepilogo

I test automatici trovano una parte dei problemi di accessibilità di un sito, non tutti. Questo report descrive ciò che i nostri test hanno trovato e come correggerlo. Non costituisce consulenza legale e non certifica la conformità all’ADA, all’European Accessibility Act o a qualsiasi legge.

Panoramica

P1 · Da correggere subitoBlocca i visitatori nelle pagine chiave
8
P2 · Da correggere dopoBarriere gravi o moderate
0
P3 · Da migliorareProblemi lievi e buone pratiche
2

Occorrenze per gravità

Critico
73
Grave
58
Moderato
25
Lieve
0
Errori verificatiTipi di problema che non hanno superato un test automatico
10
Da verificareSegnalati, ma serve una persona per decidere
4
Controlli superatiRegole automatiche senza errori
32
Non testatoPassaggi del percorso e verifiche manuali
7

Abbiamo testato 9 pagine, di cui 4 scelte a campione dalla tua sitemap. Le date obiettivo sono suggerimenti basati sulla gravità; concorda le date definitive con il tuo sviluppatore.

Panoramica del sito web

Rilevato dalle prove pubbliche presenti nelle pagine testate. Un’etichetta può essere sbagliata; serve solo a decidere quali controlli aggiuntivi eseguire.

Tipo di sito web

  • Negozio onlineAffidabilità alta
    • Realizzato con Shopify, una piattaforma per negozi online
    • Link a un carrello
    • Link a prodotti o al negozio
  • Landing pageAffidabilità media
    • Solo 6 pagine interne collegate

Tecnologie rilevate

  • ShopifyAffidabilità alta

    Risorse o script Shopify nella pagina

Controlli per questo sito

  • Controlli universali: accessibilità, SEO, velocità, sicurezza ed email
  • Modulo e-commerce: pagine di collezione, prodotto e carrello, e un percorso d’acquisto da tastiera fino al pulsante del checkout
  • Note per Shopify: passaggi di correzione per il tema e l’admin; header e cookie gestiti dalla piattaforma mostrati a titolo informativo

Percorso d’acquisto da tastiera

Abbiamo provato a fare acquisti usando solo la tastiera (Tab, Maiusc+Tab, Invio, Spazio, Esc), come fanno le persone che non possono usare un mouse. Aggiungiamo un articolo al carrello in una sessione usa e getta e ci fermiamo al pulsante del checkout: non entriamo mai nel checkout e non digitiamo dati personali o di pagamento. Obiettivo: Arrivare dalla home page al pulsante del checkout usando solo la tastiera.

  1. 01Raggiungere la navigazione principale

    Superato

    Il focus ha raggiunto «Shop» nella navigazione dopo 21 pressioni di Tab.

    Atteso: Premendo Tab dall’inizio della home page si raggiungono i link della navigazione principale.

    • Nota: Un banner dei cookie ha trattenuto il focus della tastiera finché non abbiamo premuto Invio su «Accept all».
    Come riprodurlo

    https://harborandpine.example/

    1. Apri la home page.
    2. Fai clic sulla barra degli indirizzi del browser, poi premi Tab più volte (Maiusc+Tab torna indietro).

    Ordine del focus che abbiamo osservato

    «Shop»

  2. 02Aprire un prodotto da una collezione

    Superato

    Il focus ha raggiunto «Trail Daypack 22L» dopo 9 pressioni di Tab, e Invio ha aperto /products/trail-daypack.

    Atteso: Tab raggiunge un prodotto nella griglia della collezione, e Invio ne apre la pagina.

    Come riprodurlo

    https://harborandpine.example/collections/all

    1. Apri /collections/all.
    2. Premi Tab finché un prodotto della griglia non viene evidenziato, poi premi Invio.

    Ordine del focus che abbiamo osservato

    «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. 03Scegliere opzioni e quantità

    Non superato

    3 opzioni del prodotto non possono ricevere il focus della tastiera: «S», «M», «L». Rispondono al mouse, ma chi usa la tastiera non può sceglierle.

    Atteso: Ogni opzione del prodotto (taglia, colore, variante) e il campo della quantità sono raggiungibili con Tab.

    2.1.1 Keyboard · Affidabilità: alta

    Scegliere opzioni e quantità: l’elemento non conforme, evidenziato
    Scegliere opzioni e quantità: l’elemento non conforme, evidenziato
    Come riprodurlo

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

    1. Apri /products/trail-daypack.
    2. Premi Tab dall’inizio della pagina e annota quali controlli ricevono il focus prima di Aggiungi al carrello.

    Ordine del focus che abbiamo osservato

    «Harbor & Pine» → «Shop» → «New arrivals» → «Our story» → … altri 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. 04Aggiungere al carrello con la tastiera

    Da verificare

    Invio su Aggiungi al carrello ha funzionato (il contatore del carrello nell’header è cambiato, è comparso un messaggio «aggiunto al carrello»), ma non abbiamo trovato alcun messaggio di stato né una finestra di dialogo con il focus, quindi gli utenti di screen reader potrebbero non sapere che l’articolo è stato aggiunto.

    Atteso: Invio su Aggiungi al carrello aggiunge l’articolo e la conferma viene annunciata: un messaggio di stato, una finestra di dialogo che riceve il focus, o la pagina del carrello.

    4.1.3 Status Messages · Affidabilità: media

    Aggiungere al carrello con la tastiera: la pagina in questo passaggio
    Aggiungere al carrello con la tastiera: la pagina in questo passaggio
    Come riprodurlo

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

    1. Apri /products/trail-daypack.
    2. Premi Tab finché Aggiungi al carrello non riceve il focus, poi premi Invio.
    3. Ascolta con uno screen reader (VoiceOver: Cmd+F5) se viene annunciata una conferma.
  5. 05Modificare il carrello e raggiungere il checkout

    Superato

    Raggiunti tutti i 4 controlli del carrello e il pulsante del checkout («Check out») con 12 pressioni di Tab. Non lo abbiamo premuto.

    Atteso: Campi della quantità, pulsanti di rimozione e pulsante del checkout sono tutti raggiungibili con Tab.

    Come riprodurlo

    https://harborandpine.example/cart

    1. Aggiungi un prodotto qualsiasi al carrello e apri la pagina del carrello.
    2. Premi Tab e verifica che campi della quantità, pulsanti di rimozione e pulsante del checkout ricevano tutti il focus.

    Ordine del focus che abbiamo osservato

    «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

    Non testato

    Ci fermiamo al pulsante del checkout: non entriamo mai nel checkout, non creiamo ordini e non digitiamo dati di pagamento. Su Shopify le pagine del checkout sono gestite da Shopify, non dal tuo tema. Verifica il checkout a mano (vedi Verifiche manuali).

Mappa delle contestazioni della lettera

Ogni contestazione della lettera, confrontata con le prove della scansione. Un confronto dei fatti, non una consulenza legale.

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

    Immagini senza alternativa testuale. 10 occorrenze in 3 delle 5 pagine testate.

    image-alt

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

    Contrasto dei colori insufficiente. 16 occorrenze in 5 delle 5 pagine testate.

    color-contrast

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

    Accesso da tastiera e focus. Il focus della tastiera resta bloccato nel banner dei cookie.

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

    Campi dei moduli senza etichetta. 4 occorrenze in 3 delle 5 pagine testate.

    select-name, label

    Riprodotto
  • “Product videos do not have captions.”

    Sottotitoli di video e audio. Le scansioni automatiche non possono valutare i sottotitoli. Controlla che ogni video di prodotto o del brand abbia sottotitoli accurati e una trascrizione.

    Verifica manuale
  • “Our client is legally blind and uses screen reader software.”

    Altri problemi. Questa è un’affermazione generica. Testa i flussi chiave (ricerca, pagina prodotto, aggiunta al carrello, checkout) con uno screen reader come VoiceOver o NVDA.

    Verifica manuale

Piano di correzione

Problemi in ordine di priorità con responsabili e date obiettivo
PrioritàProblemaStatoWCAGOccorrenzeResponsabileData obiettivo
P1Il focus della tastiera resta intrappolato nel banner dei cookieVerificato2.1.21fornitore dell’app2026-10-08
P1Le opzioni del prodotto non si possono scegliere con la tastieraVerificato2.1.11sviluppatore del tema2026-10-08
P1I pulsanti devono avere un testo distinguibileVerificato4.1.241sviluppatore del tema2026-10-08
P1Le immagini devono avere un testo alternativoVerificato1.1.122redattore dei contenuti2026-10-08
P1Gli elementi del modulo devono avere etichetteVerificato4.1.27sviluppatore del tema2026-10-08
P1L'elemento select deve avere un nome accessibileVerificato4.1.21sviluppatore del tema2026-10-08
P1I collegamenti devono avere un testo distinguibileVerificato2.4.4, 4.1.236sviluppatore del tema2026-10-08
P1Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di coloreVerificato1.4.322titolare del negozio (impostazioni admin)2026-10-08
P3Tutti i contenuti della pagina dovrebbero essere contenuti nei landmarkVerificatoBuona pratica18sviluppatore del tema2026-11-23
P3I livelli delle intestazioni possono aumentare solo di unoVerificatoBuona pratica7sviluppatore del tema2026-11-23

Come correggere ogni problema

P1CriticoErrore verificatoWCAG 2.1.2

Il focus della tastiera resta intrappolato nel banner dei cookie

impegno: moderato · responsabile: fornitore dell’app · 2.1.2 No Keyboard Trap

Quando chi usa la tastiera preme Tab, il focus gira tra pochi elementi e non raggiunge mai il resto della pagina.

Se il focus resta intrappolato, chi usa solo la tastiera o uno screen reader non può fare acquisti (WCAG 2.1.2 No Keyboard Trap).

Prove

Rilevato da
Test da tastiera (Tab attraverso la home page)
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
1 occorrenza in 1 pagina

Atteso: Premendo Tab il focus attraversa ogni elemento interattivo della pagina e prosegue nel resto della pagina.

Osservato: Dopo 40 pressioni di Tab, il focus continuava a girare tra: Settings, Accept all.

Come riprodurlo
  1. Apri la home page.
  2. Fai clic sulla barra degli indirizzi, poi premi Tab più volte.
  3. Il focus continua a tornare sugli stessi pochi elementi.
Elementi non conformi (mostrati: 6)
button#cc-settings
Settings
button#cc-accept.primary
Accept all
button#cc-settings
Settings
button#cc-accept.primary
Accept all
button#cc-settings
Settings
button#cc-accept.primary
Accept all
Pagine interessate (1)
  • https://harborandpine.example/

Come correggerlo

Indicazioni generali
  1. Cerca nelle impostazioni dell’app del banner dei cookie o del consenso un’opzione per l’accessibilità o per la trappola del focus, oppure chiedi al fornitore di correggerlo.
  2. Una finestra modale può trattenere il focus solo mentre è aperta, e deve chiudersi con il tasto Esc e riportare il focus al punto di partenza.
Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: Il focus della tastiera resta intrappolato nel banner dei cookie (WCAG 2.1.2).
Dove: 1 occorrenza in 1 pagina, ad esempio /.

Un elemento non conforme, così come l’ha reso il browser:
```html
Settings
```

Perché è importante: Se il focus resta intrappolato, chi usa solo la tastiera o uno screen reader non può fare acquisti (WCAG 2.1.2 No Keyboard Trap).

Cosa va modificato:
- Cerca nelle impostazioni dell’app del banner dei cookie o del consenso un’opzione per l’accessibilità o per la trappola del focus, oppure chiedi al fornitore di correggerlo.
- Una finestra modale può trattenere il focus solo mentre è aperta, e deve chiudersi con il tasto Esc e riportare il focus al punto di partenza.

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Carica la home page, premi Tab più volte e verifica che il focus raggiunga la navigazione principale e il contenuto.

Rilevato da un test automatico da tastiera; verificalo a mano.

P1CriticoErrore verificatoWCAG 2.1.1

Le opzioni del prodotto non si possono scegliere con la tastiera

impegno: moderato · responsabile: sviluppatore del tema · 2.1.1 Keyboard

Le opzioni di taglia, colore o variante rispondono al mouse ma non possono ricevere il focus della tastiera, quindi chi usa la tastiera non può scegliere una variante.

I clienti che usano solo la tastiera, compresi molti utenti di screen reader, non riescono a superare questo passaggio (WCAG 2.1.1).

Prove

Rilevato da
Percorso da tastiera
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
1 occorrenza in 1 pagina

Atteso: Ogni opzione del prodotto (taglia, colore, variante) e il campo della quantità sono raggiungibili con Tab.

Osservato: 3 opzioni del prodotto non possono ricevere il focus della tastiera: «S», «M», «L». Rispondono al mouse, ma chi usa la tastiera non può sceglierle.

Le opzioni del prodotto non si possono scegliere con la tastiera: l’elemento evidenziato
Le opzioni del prodotto non si possono scegliere con la tastiera: l’elemento evidenziato
Come riprodurlo
  1. Apri /products/trail-daypack.
  2. Premi Tab dall’inizio della pagina e annota quali controlli ricevono il focus prima di Aggiungi al carrello.
Elementi non conformi (mostrati: 1)
(vedi screenshot)
<div class="size-option" data-fr="opt-1">S</div>
Pagine interessate (1)
  • https://harborandpine.example/products/trail-daypack

Come correggerlo

Indicazioni generali
  1. Costruisci i selettori delle opzioni con radio button nativi (o un <select>) con etichette visibili; dai all’etichetta lo stile del campione.
  2. Se mantieni elementi personalizzati, ogni opzione ha bisogno di tabindex="0", role="radio" con aria-checked all’interno di un role="radiogroup", e della gestione dei tasti freccia e della barra spaziatrice. I radio button nativi ti offrono tutto questo senza sforzo.

Codice

Esempi di implementazione per il tuo sviluppatore. Non abbiamo il codice sorgente del tuo tema, quindi le posizioni dei file sono suggerimenti, non percorsi esatti.

Prima · cosa abbiamo trovato · Il modulo prodotto del tuo tema (selettore delle varianti)
<div class="size-option" data-fr="opt-1">S</div>
Dopo · esempio da adattare
<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>

Ogni opzione è un vero radio button, raggiungibile con Tab e modificabile con i tasti freccia; l’etichetta mantiene lo stile del tuo campione. Usa i nomi e i valori delle tue opzioni.

Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: Le opzioni del prodotto non si possono scegliere con la tastiera (WCAG 2.1.1).
Dove: 1 occorrenza in 1 pagina, ad esempio /products/trail-daypack.

Un elemento non conforme, così come l’ha reso il browser:
```html
<div class="size-option" data-fr="opt-1">S</div>
```

Perché è importante: I clienti che usano solo la tastiera, compresi molti utenti di screen reader, non riescono a superare questo passaggio (WCAG 2.1.1).

Cosa va modificato:
- Costruisci i selettori delle opzioni con radio button nativi (o un <select>) con etichette visibili; dai all’etichetta lo stile del campione.
- Se mantieni elementi personalizzati, ogni opzione ha bisogno di tabindex="0", role="radio" con aria-checked all’interno di un role="radiogroup", e della gestione dei tasti freccia e della barra spaziatrice. I radio button nativi ti offrono tutto questo senza sforzo.

Una modifica suggerita (Il modulo prodotto del tuo tema (selettore delle varianti)):
```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>
```

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Ripeti i passaggi per riprodurlo usando solo la tastiera.
  • Richiedi un nuovo test da questo report: il percorso viene eseguito di nuovo.
P1CriticoErrore verificatoWCAG 4.1.2

I pulsanti devono avere un testo distinguibile

impegno: rapido · responsabile: sviluppatore del tema · 4.1.2 Name, Role, Value

Alcuni pulsanti non hanno un nome accessibile, quindi chi usa uno screen reader sente solo «pulsante».

Il criterio WCAG 4.1.2 richiede che ogni controllo abbia un nome. I pulsanti senza nome sono spesso i selettori di quantità, i pulsanti di chiusura e le frecce degli slider.

Prove

Rilevato da
Regola automatica di axe-core
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
41 occorrenze in 9 pagine

Atteso: I pulsanti devono avere un testo distinguibile

Osservato: L'elemento non ha del testo interno che è visibile agli screen reader. L'attributo aria-label non esiste o è vuoto. L'attributo aria-labelledby non esiste, fa riferimento ad elementi che non esistono o fa riferimento ad elementi che sono vuoti. L'elemento non ha un attributo title. L'elemento del modulo non ha un'etichetta implicita (racchiusa) <label>. L'elemento del modulo non ha un'etichetta esplicita <label>. La semantica predefinita dell'elemento non è stata sostituita da role="none" o role="presentation".

I pulsanti devono avere un testo distinguibile: l’elemento evidenziato in /
I pulsanti devono avere un testo distinguibile: l’elemento evidenziato in /
I pulsanti devono avere un testo distinguibile: l’elemento evidenziato in /collections/all
I pulsanti devono avere un testo distinguibile: l’elemento evidenziato in /collections/all
Come riprodurlo
  1. Apri https://harborandpine.example/ in Chrome o Edge.
  2. Apri DevTools (F12) › Elements, premi Ctrl+F (Cmd+F su Mac) e cerca: .icons > button[type="button"]
  3. Nel riquadro Accessibility di DevTools, il Name calcolato dell’elemento è vuoto.
  4. Oppure esegui sulla pagina l’estensione gratuita per browser axe DevTools: lo segnala come «button-name».
Elementi non conformi (mostrati: 4)
.icons > button[type="button"]
<button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></button>
.thumbs > button:nth-child(1)
<button type="button"><img src="/img/daypack.svg"></button>
.thumbs > button:nth-child(2)
<button type="button"><img src="/img/jacket.svg"></button>
.thumbs > button:nth-child(3)
<button type="button"><img src="/img/bottle.svg"></button>
Pagine interessate (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

Come correggerlo

Codice costruito dal markup della tua pagina
  1. Trova i pulsanti negli esempi qui sotto.
  2. Aggiungi un testo visibile, un testo visivamente nascosto o un aria-label che dica cosa fa il pulsante (ad esempio aria-label="Close" o aria-label="Increase quantity").

Codice

Esempi di implementazione per il tuo sviluppatore. Non abbiamo il codice sorgente del tuo tema, quindi le posizioni dei file sono suggerimenti, non percorsi esatti.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<button type="button">…</button>
Dopo · costruito dall’elemento non conforme
<button type="button" aria-label="[What this button does]">…</button>

Sostituisci il testo tra parentesi quadre con ciò che fa il pulsante. Va bene anche un testo visibile o visivamente nascosto all’interno del pulsante.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<button type="button"><img src="/img/daypack.svg"></button>
Dopo · costruito dall’elemento non conforme
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/daypack.svg"></button>

Sostituisci il testo tra parentesi quadre con ciò che fa il pulsante. Va bene anche un testo visibile o visivamente nascosto all’interno del pulsante.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<button type="button"><img src="/img/jacket.svg"></button>
Dopo · costruito dall’elemento non conforme
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/jacket.svg"></button>

Sostituisci il testo tra parentesi quadre con ciò che fa il pulsante. Va bene anche un testo visibile o visivamente nascosto all’interno del pulsante.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<button type="button"><img src="/img/bottle.svg"></button>
Dopo · costruito dall’elemento non conforme
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/bottle.svg"></button>

Sostituisci il testo tra parentesi quadre con ciò che fa il pulsante. Va bene anche un testo visibile o visivamente nascosto all’interno del pulsante.

Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: I pulsanti devono avere un testo distinguibile (WCAG 4.1.2).
Dove: 41 occorrenze in 9 pagine, ad esempio /, /collections/all, /products/trail-daypack, /cart.

Un elemento non conforme, così come l’ha reso il browser:
```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>
```

Perché è importante: Il criterio WCAG 4.1.2 richiede che ogni controllo abbia un nome. I pulsanti senza nome sono spesso i selettori di quantità, i pulsanti di chiusura e le frecce degli slider.

Cosa va modificato:
- Trova i pulsanti negli esempi qui sotto.
- Aggiungi un testo visibile, un testo visivamente nascosto o un aria-label che dica cosa fa il pulsante (ad esempio aria-label="Close" o aria-label="Increase quantity").

Una modifica suggerita (Il codice del tuo tema (cercaci il markup mostrato)):
```html
<button type="button" aria-label="[What this button does]">…</button>
```

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Esegui di nuovo la scansione delle pagine interessate.
  • Controlla i pulsanti con uno screen reader.

Guida dettagliata: https://dequeuniversity.com/rules/axe/4.13/button-name?application=playwright

P1CriticoErrore verificatoWCAG 1.1.1

Le immagini devono avere un testo alternativo

impegno: moderato · responsabile: redattore dei contenuti · 1.1.1 Non-text Content

Alle immagini manca un’alternativa testuale, quindi chi usa uno screen reader non sa cosa mostrano.

Il criterio WCAG 1.1.1 richiede un’alternativa testuale per le immagini significative. Senza di essa, chi usa uno screen reader non può capire quale prodotto mostra una foto.

Prove

Rilevato da
Regola automatica di axe-core
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
22 occorrenze in 7 pagine

Atteso: Le immagini devono avere un testo alternativo

Osservato: L'elemento non ha un attributo alt. L'attributo aria-label non esiste o è vuoto. L'attributo aria-labelledby non esiste, fa riferimento ad elementi che non esistono o fa riferimento ad elementi che sono vuoti. L'elemento non ha un attributo title. La semantica predefinita dell'elemento non è stata sostituita da role="none" o role="presentation".

Le immagini devono avere un testo alternativo: l’elemento evidenziato in /
Le immagini devono avere un testo alternativo: l’elemento evidenziato in /
Le immagini devono avere un testo alternativo: l’elemento evidenziato in /collections/all
Le immagini devono avere un testo alternativo: l’elemento evidenziato in /collections/all
Come riprodurlo
  1. Apri https://harborandpine.example/ in Chrome o Edge.
  2. Apri DevTools (F12) › Elements, premi Ctrl+F (Cmd+F su Mac) e cerca: img[src$="hero-photo.jpg"]
  3. Nel riquadro Accessibility di DevTools, il Name calcolato dell’elemento è vuoto.
  4. Oppure esegui sulla pagina l’estensione gratuita per browser axe DevTools: lo segnala come «image-alt».
Elementi non conformi (mostrati: 4)
img[src$="hero-photo.jpg"]
<img src="/img/hero-photo.jpg" loading="lazy">
img[src$="mug.svg"]
<img src="/img/mug.svg">
img[src$="beanie.svg"]
<img src="/img/beanie.svg">
img[src$="jacket.svg"]
<img src="/img/jacket.svg">
Pagine interessate (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

Come correggerlo

Codice costruito dal markup della tua pagina
  1. Nell’admin di Shopify apri Prodotti > [prodotto] > Contenuti multimediali, fai clic su ogni immagine e compila «Testo alternativo». Per le immagini delle sezioni, apri Negozio online > Temi > Personalizza e imposta il testo alternativo dell’immagine nelle impostazioni della sezione.
  2. Descrivi ciò che conta per un cliente: nome del prodotto, colore e angolazione mostrata (ad esempio «Borsa tote in tela verde oliva, vista frontale»).
  3. Le immagini decorative devono avere un attributo alt vuoto (alt=""), così gli screen reader le saltano.

Codice

Esempi di implementazione per il tuo sviluppatore. Non abbiamo il codice sorgente del tuo tema, quindi le posizioni dei file sono suggerimenti, non percorsi esatti.

Prima · cosa abbiamo trovato · Foto dei prodotti: admin di Shopify › Prodotti › Contenuti multimediali › Testo alternativo. Altre immagini: il codice del tuo tema
<img src="/img/hero-photo.jpg" loading="lazy">
Dopo · costruito dall’elemento non conforme
<img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">

Descrivi cosa mostra l’immagine (per una foto di prodotto: prodotto, colore, angolazione). Se l’immagine è puramente decorativa, usa invece alt="", così gli screen reader la saltano.

Prima · cosa abbiamo trovato · Foto dei prodotti: admin di Shopify › Prodotti › Contenuti multimediali › Testo alternativo. Altre immagini: il codice del tuo tema
<img src="/img/mug.svg">
Dopo · costruito dall’elemento non conforme
<img src="/img/mug.svg" alt="[Describe the image for a shopper]">

Descrivi cosa mostra l’immagine (per una foto di prodotto: prodotto, colore, angolazione). Se l’immagine è puramente decorativa, usa invece alt="", così gli screen reader la saltano.

Prima · cosa abbiamo trovato · Foto dei prodotti: admin di Shopify › Prodotti › Contenuti multimediali › Testo alternativo. Altre immagini: il codice del tuo tema
<img src="/img/beanie.svg">
Dopo · costruito dall’elemento non conforme
<img src="/img/beanie.svg" alt="[Describe the image for a shopper]">

Descrivi cosa mostra l’immagine (per una foto di prodotto: prodotto, colore, angolazione). Se l’immagine è puramente decorativa, usa invece alt="", così gli screen reader la saltano.

Prima · cosa abbiamo trovato · Foto dei prodotti: admin di Shopify › Prodotti › Contenuti multimediali › Testo alternativo. Altre immagini: il codice del tuo tema
<img src="/img/jacket.svg">
Dopo · costruito dall’elemento non conforme
<img src="/img/jacket.svg" alt="[Describe the image for a shopper]">

Descrivi cosa mostra l’immagine (per una foto di prodotto: prodotto, colore, angolazione). Se l’immagine è puramente decorativa, usa invece alt="", così gli screen reader la saltano.

Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: Le immagini devono avere un testo alternativo (WCAG 1.1.1).
Dove: 22 occorrenze in 7 pagine, ad esempio /, /collections/all, /products/trail-daypack, /products/pine-wool-beanie.

Un elemento non conforme, così come l’ha reso il browser:
```html
<img src="/img/hero-photo.jpg" loading="lazy">
```

Perché è importante: Il criterio WCAG 1.1.1 richiede un’alternativa testuale per le immagini significative. Senza di essa, chi usa uno screen reader non può capire quale prodotto mostra una foto.

Cosa va modificato:
- Nell’admin di Shopify apri Prodotti > [prodotto] > Contenuti multimediali, fai clic su ogni immagine e compila «Testo alternativo». Per le immagini delle sezioni, apri Negozio online > Temi > Personalizza e imposta il testo alternativo dell’immagine nelle impostazioni della sezione.
- Descrivi ciò che conta per un cliente: nome del prodotto, colore e angolazione mostrata (ad esempio «Borsa tote in tela verde oliva, vista frontale»).
- Le immagini decorative devono avere un attributo alt vuoto (alt=""), così gli screen reader le saltano.

Una modifica suggerita (Foto dei prodotti: admin di Shopify › Prodotti › Contenuti multimediali › Testo alternativo. Altre immagini: il codice del tuo tema):
```html
<img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">
```

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Esegui di nuovo la scansione delle pagine interessate.
  • Usa uno screen reader (VoiceOver: Cmd+F5 su Mac) per ascoltare come vengono annunciate le immagini dei prodotti.

Guida dettagliata: https://dequeuniversity.com/rules/axe/4.13/image-alt?application=playwright

P1CriticoErrore verificatoWCAG 4.1.2

Gli elementi del modulo devono avere etichette

impegno: rapido · responsabile: sviluppatore del tema · 4.1.2 Name, Role, Value

Alcuni campi dei moduli non hanno un’etichetta, quindi chi usa uno screen reader non sa cosa inserire.

I criteri WCAG 1.3.1, 3.3.2 e 4.1.2 richiedono che i campi dei moduli abbiano un’etichetta. Le iscrizioni alla newsletter e i campi di ricerca sono i colpevoli più frequenti.

Prove

Rilevato da
Regola automatica di axe-core
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
7 occorrenze in 6 pagine

Atteso: Gli elementi del modulo devono avere etichette

Osservato: L'elemento del modulo non ha un'etichetta implicita (racchiusa) <label>. L'elemento del modulo non ha un'etichetta esplicita <label>. L'attributo aria-label non esiste o è vuoto. L'attributo aria-labelledby non esiste, fa riferimento ad elementi che non esistono o fa riferimento ad elementi che sono vuoti. L'elemento non ha un attributo title. L'elemento non ha un attributo placeholder. La semantica predefinita dell'elemento non è stata sostituita da role="none" o role="presentation".

Gli elementi del modulo devono avere etichette: l’elemento evidenziato in /products/trail-daypack
Gli elementi del modulo devono avere etichette: l’elemento evidenziato in /products/trail-daypack
Gli elementi del modulo devono avere etichette: l’elemento evidenziato in /cart
Gli elementi del modulo devono avere etichette: l’elemento evidenziato in /cart
Come riprodurlo
  1. Apri https://harborandpine.example/products/trail-daypack in Chrome o Edge.
  2. Apri DevTools (F12) › Elements, premi Ctrl+F (Cmd+F su Mac) e cerca: input
  3. Nel riquadro Accessibility di DevTools, il Name calcolato dell’elemento è vuoto.
  4. Oppure esegui sulla pagina l’estensione gratuita per browser axe DevTools: lo segnala come «label».
Elementi non conformi (mostrati: 2)
input
<input type="number" value="1" min="1">
input[value="2"]
<input type="number" value="2" min="1">
Pagine interessate (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

Come correggerlo

Codice costruito dal markup della tua pagina
  1. Dai a ogni campo un elemento <label for="field-id">, o almeno un aria-label.
  2. Il solo testo segnaposto non vale come etichetta.

Codice

Esempi di implementazione per il tuo sviluppatore. Non abbiamo il codice sorgente del tuo tema, quindi le posizioni dei file sono suggerimenti, non percorsi esatti.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<input type="number" value="1" min="1">
Dopo · costruito dall’elemento non conforme
<input type="number" value="1" min="1" aria-label="Quantity">

Il campo non ha un id, quindi la correzione più rapida è un aria-label. Un <label> visibile è meglio per tutti. Il testo dell’etichetta «Quantity» è dedotto dal campo; modificalo se serve.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<input type="number" value="2" min="1">
Dopo · costruito dall’elemento non conforme
<input type="number" value="2" min="1" aria-label="Quantity">

Il campo non ha un id, quindi la correzione più rapida è un aria-label. Un <label> visibile è meglio per tutti. Il testo dell’etichetta «Quantity» è dedotto dal campo; modificalo se serve.

Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: Gli elementi del modulo devono avere etichette (WCAG 4.1.2).
Dove: 7 occorrenze in 6 pagine, ad esempio /products/trail-daypack, /cart, /products/pine-wool-beanie, /products/enamel-camp-mug.

Un elemento non conforme, così come l’ha reso il browser:
```html
<input type="number" value="1" min="1">
```

Perché è importante: I criteri WCAG 1.3.1, 3.3.2 e 4.1.2 richiedono che i campi dei moduli abbiano un’etichetta. Le iscrizioni alla newsletter e i campi di ricerca sono i colpevoli più frequenti.

Cosa va modificato:
- Dai a ogni campo un elemento <label for="field-id">, o almeno un aria-label.
- Il solo testo segnaposto non vale come etichetta.

Una modifica suggerita (Il codice del tuo tema (cercaci il markup mostrato)):
```html
<input type="number" value="1" min="1" aria-label="Quantity">
```

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Esegui di nuovo la scansione e verifica che la regola label non fallisca più.
  • Fai clic su ogni etichetta e verifica che porti il focus sul suo campo.

Guida dettagliata: https://dequeuniversity.com/rules/axe/4.13/label?application=playwright

P1CriticoErrore verificatoWCAG 4.1.2

L'elemento select deve avere un nome accessibile

impegno: rapido · responsabile: sviluppatore del tema · 4.1.2 Name, Role, Value

Un menu a discesa (spesso un selettore di ordinamento o di variante) non ha un’etichetta.

Il criterio WCAG 4.1.2 richiede che i menu select abbiano un nome accessibile.

Prove

Rilevato da
Regola automatica di axe-core
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
1 occorrenza in 1 pagina

Atteso: L'elemento select deve avere un nome accessibile

Osservato: L'elemento del modulo non ha un'etichetta implicita (racchiusa) <label>. L'elemento del modulo non ha un'etichetta esplicita <label>. L'attributo aria-label non esiste o è vuoto. L'attributo aria-labelledby non esiste, fa riferimento ad elementi che non esistono o fa riferimento ad elementi che sono vuoti. L'elemento non ha un attributo title. La semantica predefinita dell'elemento non è stata sostituita da role="none" o role="presentation".

L'elemento select deve avere un nome accessibile: l’elemento evidenziato in /collections/all
L'elemento select deve avere un nome accessibile: l’elemento evidenziato in /collections/all
Come riprodurlo
  1. Apri https://harborandpine.example/collections/all in Chrome o Edge.
  2. Apri DevTools (F12) › Elements, premi Ctrl+F (Cmd+F su Mac) e cerca: select
  3. Nel riquadro Accessibility di DevTools, il Name calcolato dell’elemento è vuoto.
  4. Oppure esegui sulla pagina l’estensione gratuita per browser axe DevTools: lo segnala come «select-name».
Elementi non conformi (mostrati: 1)
select
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
Pagine interessate (1)
  • https://harborandpine.example/collections/all

Come correggerlo

Codice costruito dal markup della tua pagina
  1. Aggiungi un <label> collegato al select, oppure un aria-label come aria-label="Sort by".

Codice

Esempi di implementazione per il tuo sviluppatore. Non abbiamo il codice sorgente del tuo tema, quindi le posizioni dei file sono suggerimenti, non percorsi esatti.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
Dopo · costruito dall’elemento non conforme
<select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>

Il campo non ha un id, quindi la correzione più rapida è un aria-label. Un <label> visibile è meglio per tutti. Sostituisci il testo tra parentesi quadre con l’etichetta del campo.

Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: L'elemento select deve avere un nome accessibile (WCAG 4.1.2).
Dove: 1 occorrenza in 1 pagina, ad esempio /collections/all.

Un elemento non conforme, così come l’ha reso il browser:
```html
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
```

Perché è importante: Il criterio WCAG 4.1.2 richiede che i menu select abbiano un nome accessibile.

Cosa va modificato:
- Aggiungi un <label> collegato al select, oppure un aria-label come aria-label="Sort by".

Una modifica suggerita (Il codice del tuo tema (cercaci il markup mostrato)):
```html
<select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
```

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Esegui di nuovo la scansione delle pagine di collezione e prodotto.

Guida dettagliata: https://dequeuniversity.com/rules/axe/4.13/select-name?application=playwright

P1GraveErrore verificatoWCAG 1.4.3

Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore

impegno: rapido · responsabile: titolare del negozio (impostazioni admin) · 1.4.3 Contrast (Minimum)

Alcuni testi non si distinguono abbastanza dallo sfondo per essere letti dalle persone ipovedenti.

Il criterio WCAG 1.4.3 richiede un rapporto di contrasto di almeno 4,5:1 per il testo normale e 3:1 per il testo grande. Prezzi, badge e banner sbiaditi sono difficili da leggere per le persone ipovedenti, e per tutti in piena luce.

Prove

Rilevato da
Regola automatica di axe-core
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
22 occorrenze in 9 pagine

Atteso: Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore

Osservato: L'elemento ha un contrasto di colore insufficiente di 3.09 (colore in primo piano: #ffffff, colore di sfondo: #e76f51, dimensione del font: 9.8pt (13px), peso del font: normal). Contrasto atteso di 4.5:1.

Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore: l’elemento evidenziato in /
Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore: l’elemento evidenziato in /
Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore: l’elemento evidenziato in /collections/all
Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore: l’elemento evidenziato in /collections/all
Come riprodurlo
  1. Apri https://harborandpine.example/ in Chrome o Edge.
  2. Apri DevTools (F12) › Elements, premi Ctrl+F (Cmd+F su Mac) e cerca: .announce
  3. Fai clic sul campione di colore accanto al colore dell’elemento nel riquadro Styles per vedere il rapporto di contrasto misurato.
  4. Oppure esegui sulla pagina l’estensione gratuita per browser axe DevTools: lo segnala come «color-contrast».
Elementi non conformi (mostrati: 4)
.announce
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
article:nth-child(3) > .badge
<span class="badge">Sale</span>
article:nth-child(3) > .price > .compare
<span class="compare">$72</span>
article:nth-child(4) > .price > .compare
<span class="compare">$40</span>
Pagine interessate (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

Come correggerlo

Codice costruito dal markup della tua pagina
  1. Apri gli elementi non conformi elencati qui sotto e annota i colori di primo piano e di sfondo indicati nel riepilogo dell’errore.
  2. In Negozio online > Temi > Personalizza > Impostazioni del tema > Colori, scurisci il colore del testo o schiarisci lo sfondo della combinazione di colori interessata finché il rapporto non è almeno 4,5:1.
  3. Presta particolare attenzione ai badge dei saldi, al testo segnaposto, ai link del footer e ai pulsanti sopra le immagini.

Codice

Esempi di implementazione per il tuo sviluppatore. Non abbiamo il codice sorgente del tuo tema, quindi le posizioni dei file sono suggerimenti, non percorsi esatti.

Prima · cosa abbiamo trovato · Impostazioni del tema › Colori, oppure il file CSS del tuo tema
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
Dopo · costruito dall’elemento non conforme
.announce {
  background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}

Misurato 3,09:1 per un testo da 13px; il criterio WCAG 1.4.3 richiede 4,5:1. #b95941 mantiene la stessa tonalità e supera il controllo. Il selettore è quello usato dal nostro test; il tuo tema potrebbe usare una classe più ampia per lo stesso stile.

Prima · cosa abbiamo trovato · Impostazioni del tema › Colori, oppure il file CSS del tuo tema
<span class="badge">Sale</span>
Dopo · costruito dall’elemento non conforme
.badge {
  background-color: #9f693f; /* was #f4a261: 2.06:1, now 4.59:1 */
}

Misurato 2,06:1 per un testo in grassetto da 12px; il criterio WCAG 1.4.3 richiede 4,5:1. #9f693f mantiene la stessa tonalità e supera il controllo. Il selettore è quello usato dal nostro test; il tuo tema potrebbe usare una classe più ampia per lo stesso stile.

Prima · cosa abbiamo trovato · Impostazioni del tema › Colori, oppure il file CSS del tuo tema
<span class="compare">$72</span>
Dopo · costruito dall’elemento non conforme
.compare {
  color: #78736c; /* was #b0a99f: 2.29:1, now 4.62:1 */
}

Misurato 2,29:1 per un testo da 14px; il criterio WCAG 1.4.3 richiede 4,5:1. #78736c mantiene la stessa tonalità e supera il controllo. Il selettore è quello usato dal nostro test; il tuo tema potrebbe usare una classe più ampia per lo stesso stile.

Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore (WCAG 1.4.3).
Dove: 22 occorrenze in 9 pagine, ad esempio /, /collections/all, /products/trail-daypack, /cart.

Un elemento non conforme, così come l’ha reso il browser:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Perché è importante: Il criterio WCAG 1.4.3 richiede un rapporto di contrasto di almeno 4,5:1 per il testo normale e 3:1 per il testo grande. Prezzi, badge e banner sbiaditi sono difficili da leggere per le persone ipovedenti, e per tutti in piena luce.

Cosa va modificato:
- Apri gli elementi non conformi elencati qui sotto e annota i colori di primo piano e di sfondo indicati nel riepilogo dell’errore.
- In Negozio online > Temi > Personalizza > Impostazioni del tema > Colori, scurisci il colore del testo o schiarisci lo sfondo della combinazione di colori interessata finché il rapporto non è almeno 4,5:1.
- Presta particolare attenzione ai badge dei saldi, al testo segnaposto, ai link del footer e ai pulsanti sopra le immagini.

Una modifica suggerita (Impostazioni del tema › Colori, oppure il file CSS del tuo tema):
```css
.announce {
  background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}
```

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Esegui di nuovo la scansione e verifica che color-contrast non compaia più.
  • Fai una verifica a campione con uno strumento di controllo del contrasto sui colori esatti.

Guida dettagliata: https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright

P3ModeratoErrore verificato

Tutti i contenuti della pagina dovrebbero essere contenuti nei landmark

impegno: moderato · responsabile: sviluppatore del tema

Alcuni contenuti non si trovano all’interno di un landmark della pagina (header, nav, main o footer).

I landmark permettono a chi usa uno screen reader di spostarsi rapidamente nella pagina. È una buona pratica a supporto dei criteri WCAG 1.3.1 e 2.4.1.

Prove

Rilevato da
Regola automatica di axe-core
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
18 occorrenze in 9 pagine

Atteso: Tutti i contenuti della pagina dovrebbero essere contenuti nei landmark

Osservato: Alcuni contenuti della pagina non sono contenuti in landmark.

Tutti i contenuti della pagina dovrebbero essere contenuti nei landmark: l’elemento evidenziato in /
Tutti i contenuti della pagina dovrebbero essere contenuti nei landmark: l’elemento evidenziato in /
Tutti i contenuti della pagina dovrebbero essere contenuti nei landmark: l’elemento evidenziato in /cart
Tutti i contenuti della pagina dovrebbero essere contenuti nei landmark: l’elemento evidenziato in /cart
Come riprodurlo
  1. Apri https://harborandpine.example/ in Chrome o Edge.
  2. Apri DevTools (F12) › Elements, premi Ctrl+F (Cmd+F su Mac) e cerca: .announce
  3. Oppure esegui sulla pagina l’estensione gratuita per browser axe DevTools: lo segnala come «region».
Elementi non conformi (mostrati: 2)
.announce
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
#cookie-banner > p
<p>We use cookies to improve your experience and measure traffic.</p>
Pagine interessate (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

Come correggerlo

Indicazioni generali
  1. Racchiudi i contenuti sparsi (barre degli annunci, pop-up, widget di chat) nel landmark appropriato o inseriscili all’interno di <main>.
Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: Tutti i contenuti della pagina dovrebbero essere contenuti nei landmark.
Dove: 18 occorrenze in 9 pagine, ad esempio /, /collections/all, /products/trail-daypack, /cart.

Un elemento non conforme, così come l’ha reso il browser:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Perché è importante: I landmark permettono a chi usa uno screen reader di spostarsi rapidamente nella pagina. È una buona pratica a supporto dei criteri WCAG 1.3.1 e 2.4.1.

Cosa va modificato:
- Racchiudi i contenuti sparsi (barre degli annunci, pop-up, widget di chat) nel landmark appropriato o inseriscili all’interno di <main>.

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Esegui di nuovo la scansione delle pagine interessate.

Guida dettagliata: https://dequeuniversity.com/rules/axe/4.13/region?application=playwright

P3ModeratoErrore verificato

I livelli delle intestazioni possono aumentare solo di uno

impegno: moderato · responsabile: sviluppatore del tema

I livelli delle intestazioni saltano (ad esempio da H2 a H4), il che rende confusa la struttura della pagina per chi usa uno screen reader.

Chi usa uno screen reader naviga per intestazioni. È una buona pratica a supporto del criterio WCAG 1.3.1.

Prove

Rilevato da
Regola automatica di axe-core
Stato · affidabilità
Errore verificato · alta
Rilevato il
24 set 2026 (UTC)
Dove
7 occorrenze in 7 pagine

Atteso: I livelli delle intestazioni possono aumentare solo di uno

Osservato: L'ordine delle intestazioni non è valido.

I livelli delle intestazioni possono aumentare solo di uno: l’elemento evidenziato in /collections/all
I livelli delle intestazioni possono aumentare solo di uno: l’elemento evidenziato in /collections/all
I livelli delle intestazioni possono aumentare solo di uno: l’elemento evidenziato in /products/trail-daypack
I livelli delle intestazioni possono aumentare solo di uno: l’elemento evidenziato in /products/trail-daypack
Come riprodurlo
  1. Apri https://harborandpine.example/collections/all in Chrome o Edge.
  2. Apri DevTools (F12) › Elements, premi Ctrl+F (Cmd+F su Mac) e cerca: article:nth-child(1) > a[href$="trail-daypack"] > h3
  3. Oppure esegui sulla pagina l’estensione gratuita per browser axe DevTools: lo segnala come «heading-order».
Elementi non conformi (mostrati: 3)
article:nth-child(1) > a[href$="trail-daypack"] > h3
<h3>Trail Daypack 22L</h3>
h3
<h3>Reviews</h3>
h3:nth-child(3)
<h3>Started on the trail</h3>
Pagine interessate (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

Come correggerlo

Indicazioni generali
  1. Modifica i livelli delle intestazioni nelle sezioni interessate in modo che seguano l’ordine senza saltare livelli.
  2. Cambia solo il tag, non lo stile visivo (usa le classi CSS per la dimensione).

Codice

Esempi di implementazione per il tuo sviluppatore. Non abbiamo il codice sorgente del tuo tema, quindi le posizioni dei file sono suggerimenti, non percorsi esatti.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<h3>Trail Daypack 22L</h3>
Dopo · esempio da adattare
<h2 class="h3">Trail Daypack 22L</h2>

Usa il livello che segue l’intestazione precedente nella pagina (spesso un livello più in alto) e mantieni l’aspetto con una classe. Controlla la struttura della pagina prima di modificarla.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<h3>Reviews</h3>
Dopo · esempio da adattare
<h2 class="h3">Reviews</h2>

Usa il livello che segue l’intestazione precedente nella pagina (spesso un livello più in alto) e mantieni l’aspetto con una classe. Controlla la struttura della pagina prima di modificarla.

Prima · cosa abbiamo trovato · Il codice del tuo tema (cercaci il markup mostrato)
<h3>Started on the trail</h3>
Dopo · esempio da adattare
<h2 class="h3">Started on the trail</h2>

Usa il livello che segue l’intestazione precedente nella pagina (spesso un livello più in alto) e mantieni l’aspetto con una classe. Controlla la struttura della pagina prima di modificarla.

Correggi con l’IAMostra il prompt

Incollalo in ChatGPT, Claude, Cursor o Copilot insieme al file del tuo tema. Controlla la modifica prima di pubblicarla.

Gestisco un negozio Shopify (tema Online Store 2.0, template Liquid) all’indirizzo harborandpine.example. Un test di accessibilità ha trovato questo problema e voglio correggerlo nel mio tema.

Problema: I livelli delle intestazioni possono aumentare solo di uno.
Dove: 7 occorrenze in 7 pagine, ad esempio /collections/all, /products/trail-daypack, /pages/about, /products/pine-wool-beanie.

Un elemento non conforme, così come l’ha reso il browser:
```html
<h3>Trail Daypack 22L</h3>
```

Perché è importante: Chi usa uno screen reader naviga per intestazioni. È una buona pratica a supporto del criterio WCAG 1.3.1.

Cosa va modificato:
- Modifica i livelli delle intestazioni nelle sezioni interessate in modo che seguano l’ordine senza saltare livelli.
- Cambia solo il tag, non lo stile visivo (usa le classi CSS per la dimensione).

Una modifica suggerita (Il codice del tuo tema (cercaci il markup mostrato)):
```html
<h2 class="h3">Trail Daypack 22L</h2>
```

Regole per la tua risposta:
- Mostra la modifica esatta come prima e dopo, e indica il file o l’impostazione in cui va inserita. Se prima hai bisogno di vedere il mio file, chiedimi di incollarlo.
- Mantieni invariati il design visivo e tutto il comportamento esistente.
- Non inventare nomi di prodotti, prezzi o testi; usa dei segnaposto che posso compilare io.
- Concludi spiegando come posso verificare personalmente la correzione.
- Spiega anche come verificarla con la tastiera e uno screen reader.

Verifica la correzione

  • Esegui di nuovo la scansione e controlla la struttura delle intestazioni con un’estensione del browser come HeadingsMap.

Guida dettagliata: https://dequeuniversity.com/rules/axe/4.13/heading-order?application=playwright

Richiede una verifica manuale

I test automatici hanno segnalato questi elementi ma non hanno potuto decidere, ad esempio un testo sopra un’immagine o contenuti che potrebbero non entrare nello schermo di uno smartphone. Non vengono conteggiati come errori. Chiedi al tuo sviluppatore di controllarli uno per uno.

  • Da verificareWCAG 4.1.3

    Percorso da tastiera: Aggiungere al carrello con la tastiera

    Invio su Aggiungi al carrello ha funzionato (il contatore del carrello nell’header è cambiato, è comparso un messaggio «aggiunto al carrello»), ma non abbiamo trovato alcun messaggio di stato né una finestra di dialogo con il focus, quindi gli utenti di screen reader potrebbero non sapere che l’articolo è stato aggiunto.

    1 occorrenza in 1 pagina · Come verificarlo

  • Da verificareWCAG 1.4.10

    La pagina prodotto potrebbe non entrare in uno schermo stretto senza scorrimento orizzontale

    A 320 pixel CSS di larghezza (come con uno zoom al 400%), la pagina è 200px più larga dello schermo. Tabelle di dati e mappe possono scorrere; testo e controlli no.

    2 occorrenze in 1 pagina · Come verificarlo

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

    La home page potrebbe non entrare in uno schermo stretto senza scorrimento orizzontale

    A 320 pixel CSS di larghezza (come con uno zoom al 400%), la pagina è 55px più larga dello schermo. Tabelle di dati e mappe possono scorrere; testo e controlli no.

    3 occorrenze in 1 pagina · Come verificarlo

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

    Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore

    Il colore di sfondo dell'elemento non può essere determinato perché l'elemento contiene un nodo immagine.

    1 occorrenza in 1 pagina · Come verificarlo

    Elementi da controllare (mostrati: 1)
    h1
    <h1>Gear for the long way home</h1>

Esegui un nuovo test delle correzioni

Quando il tuo sviluppatore ha apportato le modifiche, esegui un nuovo test. Eseguiamo di nuovo gli stessi controlli automatici sulle stesse pagine, il test da tastiera e il percorso da tastiera, e mostriamo quali problemi non riusciamo più a riprodurre. Sono inclusi 5 nuovi test.

I nuovi test sono disponibili sui report a pagamento.

Verifiche manuali

Gli strumenti automatici non possono valutare questi controlli. Eseguili prima di considerare concluso il lavoro.

  • Completa il checkout usando solo la tastiera: il nostro percorso automatico si ferma al pulsante del checkout e non entra mai nel checkout.
  • Ripeti con uno screen reader (VoiceOver su Mac: Cmd+F5; NVDA su Windows) e verifica che prezzi, varianti ed errori vengano annunciati.
  • Porta lo zoom del browser al 200% e verifica che nulla si sovrapponga o scompaia.
  • Verifica che i video di prodotto e del brand abbiano sottotitoli accurati.
  • Invia i moduli con degli errori (newsletter, contatti, checkout) e verifica che gli errori siano descritti a parole.
  • Verifica che caroselli e pop-up si possano mettere in pausa o chiudere, anche con il tasto Esc.

Bozza della dichiarazione di accessibilità

Modifica le parti tra parentesi quadre e pubblicala in una pagina collegata dal footer del sito.

Dichiarazione di accessibilità per harborandpine.example

Vogliamo che tutti possano fare acquisti su harborandpine.example, comprese le persone che usano screen reader, navigazione da tastiera, ingrandimento o altre tecnologie assistive. Ci impegniamo a soddisfare le Web Content Accessibility Guidelines (WCAG) 2.2 al livello AA.

Cosa facciamo
- Testiamo il nostro negozio con strumenti automatici di accessibilità e correggiamo i problemi che rilevano.
- Testiamo i passaggi chiave dell’acquisto (navigazione, pagine prodotto, carrello e checkout) con una tastiera e uno screen reader.
- Prima di aggiungere app e widget di terze parti, ne verifichiamo l’accessibilità.

Limiti noti (al 24 settembre 2026)
- Accesso da tastiera e focus (WCAG 2.1.1). Prevediamo di risolvere il problema entro il 2026-10-08.
- Link e pulsanti senza nome (WCAG 2.4.4, 4.1.2). Prevediamo di risolvere il problema entro il 2026-10-08.
- Immagini senza alternativa testuale (WCAG 1.1.1). Prevediamo di risolvere il problema entro il 2026-10-08.
- Campi dei moduli senza etichetta (WCAG 4.1.2). Prevediamo di risolvere il problema entro il 2026-10-08.
- Contrasto dei colori insufficiente (WCAG 1.4.3). Prevediamo di risolvere il problema entro il 2026-10-08.

Feedback e assistenza
Se hai difficoltà a usare una qualsiasi parte del nostro negozio, contattaci a [il tuo indirizzo email] o al numero [il tuo numero di telefono]. Indicaci la pagina e il problema: ti aiuteremo a completare l’acquisto e ti risponderemo entro 5 giorni lavorativi.

Questa dichiarazione è stata preparata il 24 settembre 2026 e sarà rivista almeno una volta all’anno.

Registro delle prove

Ogni pagina è stata caricata in Chromium e testata con axe-core 4.13.0. L’hash SHA-256 identifica i risultati grezzi di ogni pagina.

Pagine testate con data e ora e hash dei risultati
PaginaData del test (UTC)HTTPProblemiSHA-256
Home pagehttps://harborandpine.example/2026-09-24 14:05:0020015da1e5470a57859a864332912dd1e4f62b4c4f64487ba144865b74879519599a3
Pagina di collezionehttps://harborandpine.example/collections/all2026-09-24 14:05:092002028d8dfcf5ca953af353264a930a351bea3cf23f98a303874b32e5da355a4c8b0
Pagina prodottohttps://harborandpine.example/products/trail-daypack2026-09-24 14:05:182002068a173ddfd16eeeef5e36d6c0fa9d426769f0d96e358c5e35b67608dd84139b4
Carrellohttps://harborandpine.example/cart2026-09-24 14:05:27200125b7945c2cdf779dcef2bd8975d96eb8f42d8dedbf10e767ec80199dd22ce257c
Pagina di contenutohttps://harborandpine.example/pages/about2026-09-24 14:05:362009daf61ae856358a574e63f9357db0bfd9ae6079065acf3aebd5b3c5a7f460e53f
Pagina aggiuntivahttps://harborandpine.example/products/pine-wool-beanie2026-09-24 14:08:0020020f708ccd7de34dfb65d59d3716580b6ec15a6420020c8387fa4da4e2ff5bd52d3
Pagina aggiuntivahttps://harborandpine.example/products/enamel-camp-mug2026-09-24 14:08:0720019c619bcd29e89d06099d174b9fc19305a42f2fa9bdddb600a750c867fc7477022
Pagina aggiuntivahttps://harborandpine.example/products/harbor-lantern2026-09-24 14:08:14200205720b7433b75050ba413ac74c2bd726b0620aaa68f7918083052383257d5c418
Pagina aggiuntivahttps://harborandpine.example/products/insulated-bottle2026-09-24 14:08:21200196f1972c22e477c9a63e2dfde1123ed759718f6a75e1606b23f208848691510fd

Ambito e metodo

Cosa abbiamo testato

  • 9 pagine (home page, pagina di collezione, pagina prodotto, carrello, pagina di contenuto, pagina aggiuntiva) caricate in Chromium a 1366×900.
  • Regole di axe-core 4.13.0 per le WCAG 2.0, 2.1 e 2.2 di livello A e AA, più le regole di buona pratica (indicate come P3).
  • Un test da tastiera: 40 pressioni del tasto Tab sulla home page, alla ricerca di trappole e indicatori di focus mancanti.
  • Un percorso d’acquisto solo da tastiera dalla home page al pulsante del checkout (vedi sopra).
  • Un controllo del reflow a 320 pixel CSS di larghezza (WCAG 1.4.10) su queste pagine: home page e pagina prodotto.

Cosa non abbiamo testato

  • Pagine di checkout e pagamento, invio di moduli, pagine dell’account e pagine protette da login.
  • Ciò che uno screen reader annuncia davvero, oltre alle regole automatiche.
  • Sottotitoli dei video e audiodescrizioni, documenti PDF e contenuti all’interno di frame di terze parti.
  • Linguaggio semplice, accessibilità cognitiva e tutto ciò che richiede un giudizio umano (vedi Verifiche manuali).

Come leggere i risultati

Errore verificato
Un test automatico o il percorso da tastiera non è stato superato; le prove sono mostrate.
Da verificare
Un test ha segnalato qualcosa che non è riuscito a decidere; una persona dovrebbe verificarlo.
Superato
La regola automatica non ha trovato errori nelle pagine testate.
Non testato
Fuori da ciò che i test automatici possono coprire qui; vedi Verifiche manuali.

Ottieni questo report per il tuo sito web.

Inizia con la scansione gratuita per vedere i tuoi problemi e come corrispondono alla tua lettera. Il Report Accessibilità costa $249, una tantum, ed è pronto in circa 10 minuti.

Analizza il tuo sito gratis

Questo report descrive i risultati di test automatici e fornisce indicazioni per la correzione. Non costituisce consulenza legale e non certifica la conformità all’ADA, all’European Accessibility Act o a qualsiasi altra legge.