Exemple de Rapport Accessibilité. Harbor & Pine est une boutique fictive que nous avons créée avec des défauts d’accessibilité courants, puis testée avec le même moteur que celui qui analyse votre site web.
Analyser votre site gratuitementExemple de Rapport Accessibilité
harborandpine.example
- Plateforme :
- Shopify
- Généré le :
- 24 sept. 2026
- Pages testées :
- 9
- Moteur :
- axe-core 4.13.0
Synthèse
- Nous avons testé 9 pages de harborandpine.example (4 via votre sitemap) le 24 sept. 2026 avec axe-core 4.13.0 selon les WCAG 2.2 A et AA, ainsi qu’un parcours d’achat au clavier seul.
- Tests WCAG automatisés en échec : 8 types de problèmes (131 occurrences). Parmi eux, 8 sont classés À corriger en priorité.
- Parcours bloquéUn client qui n’utilise que le clavier reste bloqué : Choisir les options et la quantité.
- À faire vérifier par une personne : 4 points (les tests automatisés les ont signalés sans pouvoir trancher).
- Commencez par : Le focus clavier est piégé dans le bandeau cookies; Les options du produit ne peuvent pas être choisies au clavier; Les boutons doivent avoir un texte perceptible.
Les tests automatisés ne détectent qu’une partie des problèmes d’accessibilité d’un site, pas tous. Ce rapport décrit ce que nos tests ont trouvé et comment le corriger. Il ne constitue pas un avis juridique et ne certifie pas la conformité à l’ADA, à l’Acte européen sur l’accessibilité ni à aucune loi.
Vue d’ensemble
- P1 · À corriger en prioritéBloque les visiteurs sur des pages clés
- 8
- P2 · À corriger ensuiteObstacles graves ou modérés
- 0
- P3 · À améliorerProblèmes mineurs et bonnes pratiques
- 2
Occurrences par gravité
- Critique
- 73
- Grave
- 58
- Modéré
- 25
- Mineur
- 0
- Échecs vérifiésTypes de problèmes en échec à un test automatisé
- 10
- À examinerSignalés, mais une personne doit trancher
- 4
- Vérifications réussiesRègles automatisées sans échec
- 32
- Non testéÉtapes du parcours et vérifications manuelles
- 7
Nous avons testé 9 pages, dont 4 choisies dans votre sitemap. Les dates cibles sont des suggestions fondées sur la gravité ; convenez des dates définitives avec votre développeur.
Présentation du site
Détecté à partir d’indices publics sur les pages testées. Une étiquette peut être erronée ; elle détermine seulement quelles vérifications supplémentaires sont exécutées.
Type de site
- Boutique en ligneConfiance élevée
- Repose sur Shopify, une plateforme de boutique en ligne
- Lien vers un panier
- Liens vers des produits ou une boutique
- Landing pageConfiance moyenne
- Seulement 6 pages internes liées
Technologies détectées
- ShopifyConfiance élevée
Ressources ou scripts Shopify sur la page
Vérifications pour ce site
- Vérifications universelles : accessibilité, SEO, vitesse, sécurité et e-mail
- Module e-commerce : pages de collection, fiches produit et panier, ainsi qu’un parcours d’achat au clavier jusqu’au bouton de paiement
- Notes Shopify : étapes de correction dans le thème et l’administration ; en-têtes et cookies gérés par la plateforme affichés à titre indicatif
Parcours d’achat au clavier
Nous avons essayé d’acheter uniquement au clavier (Tab, Maj+Tab, Entrée, Espace, Échap), comme le font les personnes qui ne peuvent pas utiliser de souris. Nous ajoutons un article au panier dans une session jetable et nous nous arrêtons au bouton de paiement : nous n’entrons jamais dans le tunnel de paiement et ne saisissons aucune donnée personnelle ou de paiement. Objectif : Aller de la page d’accueil jusqu’au bouton de paiement, uniquement au clavier.
01Atteindre la navigation principale
RéussiLe focus a atteint « Shop » dans la navigation après 21 appuis sur Tab.
Attendu : En appuyant sur Tab depuis le haut de la page d’accueil, on atteint les liens de la navigation principale.
- Remarque : Un bandeau cookies retenait le focus clavier jusqu’à ce que nous appuyions sur Entrée sur « Accept all ».
Comment reproduire
https://harborandpine.example/
- Ouvrez la page d’accueil.
- Cliquez dans la barre d’adresse du navigateur, puis appuyez plusieurs fois sur Tab (Maj+Tab pour revenir en arrière).
Ordre du focus observé
« Shop »
02Ouvrir un produit depuis une collection
RéussiLe focus a atteint « Trail Daypack 22L » après 9 appuis sur Tab, et Entrée a ouvert /products/trail-daypack.
Attendu : La touche Tab atteint un produit dans la grille de la collection, et Entrée ouvre sa page.
Comment reproduire
https://harborandpine.example/collections/all
- Ouvrez /collections/all.
- Appuyez sur Tab jusqu’à ce qu’un produit de la grille soit mis en évidence, puis appuyez sur Entrée.
Ordre du focus observé
« 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 »
03Choisir les options et la quantité
En échec3 options du produit ne peuvent pas recevoir le focus clavier : « S », « M », « L ». Elles réagissent à la souris, mais un utilisateur du clavier ne peut pas les choisir.
Attendu : Chaque option du produit (taille, couleur, variante) et le champ de quantité peuvent être atteints avec Tab.
2.1.1 Clavier · Confiance : élevée

Choisir les options et la quantité : l’élément en échec, encadré Comment reproduire
https://harborandpine.example/products/trail-daypack
- Ouvrez /products/trail-daypack.
- Appuyez sur Tab depuis le haut de la page et notez quels contrôles reçoivent le focus avant le bouton Ajouter au panier.
Ordre du focus observé
« Harbor & Pine » → « Shop » → « New arrivals » → « Our story » → … 5 de plus … → 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 »
Élément <div class="size-option" data-fr="opt-1">S</div>04Ajouter au panier avec le clavier
À examinerLa touche Entrée a fonctionné sur le bouton Ajouter au panier (le compteur du panier dans l’en-tête a changé, un message « ajouté au panier » est apparu), mais nous n’avons trouvé ni message d’état ni boîte de dialogue ayant le focus : les utilisateurs de lecteurs d’écran risquent donc de ne pas entendre que l’article a été ajouté.
Attendu : La touche Entrée sur le bouton Ajouter au panier ajoute l’article, et la confirmation est annoncée : un message d’état, une boîte de dialogue qui prend le focus ou la page du panier.
4.1.3 Messages d’état · Confiance : moyenne

Ajouter au panier avec le clavier : la page à cette étape Comment reproduire
https://harborandpine.example/products/trail-daypack
- Ouvrez /products/trail-daypack.
- Appuyez sur Tab jusqu’à ce que le bouton Ajouter au panier ait le focus, puis appuyez sur Entrée.
- Écoutez avec un lecteur d’écran (VoiceOver : Cmd+F5) si une confirmation est annoncée.
05Modifier le panier et atteindre le paiement
RéussiLes 4 contrôles du panier et le bouton de paiement (« Check out ») ont tous été atteints en 12 appuis sur Tab. Nous ne l’avons pas activé.
Attendu : Les champs de quantité, les boutons de suppression et le bouton de paiement peuvent tous être atteints avec Tab.
Comment reproduire
https://harborandpine.example/cart
- Ajoutez un produit quelconque au panier et ouvrez la page du panier.
- Appuyez sur Tab et vérifiez que les champs de quantité, les boutons de suppression et le bouton de paiement reçoivent tous le focus.
Ordre du focus observé
« 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 »
06Commande
Non testéNous nous arrêtons au bouton de paiement : nous n’entrons jamais dans le tunnel de paiement, ne créons aucune commande et ne saisissons aucune donnée de paiement. Sur Shopify, les pages de paiement sont gérées par Shopify, et non par votre thème. Vérifiez le paiement manuellement (voir Vérifications manuelles).
Tableau des allégations de la lettre
Chaque allégation de la lettre, rapprochée des preuves de l’analyse. Une comparaison factuelle, pas un avis juridique.
- Reproduit
“Images lack alternative text, so product photos are not described.”
Images sans alternative textuelle. 10 occurrences sur 3 des 5 pages testées.
image-alt
- Reproduit
“Text has insufficient color contrast against its background, including sale badges and prices.”
Contraste des couleurs insuffisant. 16 occurrences sur 5 des 5 pages testées.
color-contrast
- Reproduit
“The website cannot be navigated using a keyboard alone.”
Accès au clavier et focus. Le focus clavier reste bloqué dans le bandeau cookies.
- Reproduit
“Form fields do not have labels, including the newsletter sign-up and the quantity fields in the cart.”
Champs de formulaire sans étiquette. 4 occurrences sur 3 des 5 pages testées.
select-name, label
- Vérification manuelle
“Product videos do not have captions.”
Sous-titres des vidéos et de l’audio. Les analyses automatisées ne peuvent pas évaluer les sous-titres. Vérifiez que chaque vidéo de produit ou de marque dispose de sous-titres exacts et d’une transcription.
- Vérification manuelle
“Our client is legally blind and uses screen reader software.”
Autres problèmes. Il s’agit d’une affirmation générale. Testez les parcours clés (recherche, fiche produit, ajout au panier, paiement) avec un lecteur d’écran comme VoiceOver ou NVDA.
Plan de correction
| Priorité | Problème | Statut | WCAG | Occurrences | Responsable | Date cible |
|---|---|---|---|---|---|---|
| P1 | Le focus clavier est piégé dans le bandeau cookies | Vérifié | 2.1.2 | 1 | éditeur de l’application | 2026-10-08 |
| P1 | Les options du produit ne peuvent pas être choisies au clavier | Vérifié | 2.1.1 | 1 | développeur du thème | 2026-10-08 |
| P1 | Les boutons doivent avoir un texte perceptible | Vérifié | 4.1.2 | 41 | développeur du thème | 2026-10-08 |
| P1 | Les images doivent avoir une alternative textuelle | Vérifié | 1.1.1 | 22 | rédacteur du contenu | 2026-10-08 |
| P1 | Chaque élément de formulaire doit avoir une étiquette | Vérifié | 4.1.2 | 7 | développeur du thème | 2026-10-08 |
| P1 | L’élément 'select' doit avoir un nom accessible | Vérifié | 4.1.2 | 1 | développeur du thème | 2026-10-08 |
| P1 | Les liens doivent avoir un texte perceptible | Vérifié | 2.4.4, 4.1.2 | 36 | développeur du thème | 2026-10-08 |
| P1 | Les éléments doivent avoir un contraste de couleurs suffisant | Vérifié | 1.4.3 | 22 | propriétaire de la boutique (paramètres d’administration) | 2026-10-08 |
| P3 | Le contenu doit être localisé dans une région | Vérifié | Bonne pratique | 18 | développeur du thème | 2026-11-23 |
| P3 | Les niveaux de titre doivent s’incrémenter d’un seul niveau à la fois | Vérifié | Bonne pratique | 7 | développeur du thème | 2026-11-23 |
Comment corriger chaque problème
Le focus clavier est piégé dans le bandeau cookies
effort : modéré · responsable : éditeur de l’application · 2.1.2 Pas de piège au clavier
Lorsqu’un utilisateur du clavier appuie sur Tab, le focus tourne en boucle sur quelques éléments et n’atteint jamais le reste de la page.
Les personnes qui n’utilisent que le clavier et les utilisateurs de lecteurs d’écran ne peuvent pas acheter du tout si le focus est piégé (WCAG 2.1.2 Pas de piège au clavier).
Preuves
- Détecté par
- Test au clavier (Tab sur la page d’accueil)
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 1 occurrence sur 1 page
Attendu : La touche Tab parcourt chaque élément interactif de la page, puis le reste de la page.
Observé : Après 40 appuis sur Tab, le focus tournait toujours en boucle sur : Settings, Accept all.
Comment reproduire
- Ouvrez la page d’accueil.
- Cliquez dans la barre d’adresse, puis appuyez plusieurs fois sur Tab.
- Le focus revient sans cesse sur les mêmes quelques éléments.
Éléments en échec (affichés : 6)
SettingsAccept allSettingsAccept allSettingsAccept allPages concernées (1)
- https://harborandpine.example/
Comment corriger
Recommandations générales- Cherchez dans les paramètres de votre application de bandeau cookies ou de consentement une option d’accessibilité ou de piège au focus, ou demandez à son éditeur de corriger le problème.
- Une fenêtre modale ne peut retenir le focus que lorsqu’elle est ouverte ; elle doit se fermer avec la touche Échap et rendre le focus à l’élément d’où il venait.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème. Problème : Le focus clavier est piégé dans le bandeau cookies (WCAG 2.1.2). Où : 1 occurrence sur 1 page, par exemple /. Un élément en échec, tel que le navigateur l’a rendu : ```html Settings ``` Pourquoi c’est important : Les personnes qui n’utilisent que le clavier et les utilisateurs de lecteurs d’écran ne peuvent pas acheter du tout si le focus est piégé (WCAG 2.1.2 Pas de piège au clavier). Ce qui doit changer : - Cherchez dans les paramètres de votre application de bandeau cookies ou de consentement une option d’accessibilité ou de piège au focus, ou demandez à son éditeur de corriger le problème. - Une fenêtre modale ne peut retenir le focus que lorsqu’elle est ouverte ; elle doit se fermer avec la touche Échap et rendre le focus à l’élément d’où il venait. Règles pour votre réponse : - Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller. - Conservez à l’identique le design et tous les comportements existants. - N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir. - Terminez en expliquant comment je peux vérifier la correction moi-même. - Indiquez comment la vérifier au clavier et avec un lecteur d’écran.
Vérifier votre correction
- Chargez la page d’accueil, appuyez plusieurs fois sur Tab et vérifiez que le focus atteint la navigation principale et le contenu.
Détecté par un test automatisé au clavier ; confirmez-le manuellement.
Les options du produit ne peuvent pas être choisies au clavier
effort : modéré · responsable : développeur du thème · 2.1.1 Clavier
Les options de taille, de couleur ou de variante réagissent à la souris mais ne peuvent pas recevoir le focus clavier : les utilisateurs du clavier ne peuvent donc pas choisir de variante.
Les clients qui n’utilisent que le clavier, dont de nombreux utilisateurs de lecteurs d’écran, ne peuvent pas franchir cette étape (WCAG 2.1.1).
Preuves
- Détecté par
- Parcours au clavier
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 1 occurrence sur 1 page
Attendu : Chaque option du produit (taille, couleur, variante) et le champ de quantité peuvent être atteints avec Tab.
Observé : 3 options du produit ne peuvent pas recevoir le focus clavier : « S », « M », « L ». Elles réagissent à la souris, mais un utilisateur du clavier ne peut pas les choisir.

Comment reproduire
- Ouvrez /products/trail-daypack.
- Appuyez sur Tab depuis le haut de la page et notez quels contrôles reçoivent le focus avant le bouton Ajouter au panier.
Éléments en échec (affichés : 1)
<div class="size-option" data-fr="opt-1">S</div>Pages concernées (1)
- https://harborandpine.example/products/trail-daypack
Comment corriger
Recommandations générales- Construisez les sélecteurs d’options avec des boutons radio natifs (ou un <select>) et des étiquettes visibles ; donnez à l’étiquette le style de la pastille.
- Si vous conservez des éléments personnalisés, chaque option doit avoir tabindex="0", role="radio" avec aria-checked dans un role="radiogroup", et réagir aux touches fléchées et à la touche Espace. Les boutons radio natifs offrent tout cela d’office.
Code
Des exemples de mise en œuvre pour votre développeur. Nous n’avons pas le code source de votre thème : l’emplacement des fichiers est donc indicatif, et non un chemin exact.
<div class="size-option" data-fr="opt-1">S</div><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>Chaque option est un vrai bouton radio, accessible avec Tab et modifiable avec les touches fléchées ; l’étiquette conserve le style de votre pastille. Utilisez vos propres noms et valeurs d’options.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème. Problème : Les options du produit ne peuvent pas être choisies au clavier (WCAG 2.1.1). Où : 1 occurrence sur 1 page, par exemple /products/trail-daypack. Un élément en échec, tel que le navigateur l’a rendu : ```html <div class="size-option" data-fr="opt-1">S</div> ``` Pourquoi c’est important : Les clients qui n’utilisent que le clavier, dont de nombreux utilisateurs de lecteurs d’écran, ne peuvent pas franchir cette étape (WCAG 2.1.1). Ce qui doit changer : - Construisez les sélecteurs d’options avec des boutons radio natifs (ou un <select>) et des étiquettes visibles ; donnez à l’étiquette le style de la pastille. - Si vous conservez des éléments personnalisés, chaque option doit avoir tabindex="0", role="radio" avec aria-checked dans un role="radiogroup", et réagir aux touches fléchées et à la touche Espace. Les boutons radio natifs offrent tout cela d’office. Une modification suggérée (Le formulaire produit de votre thème (sélecteur 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> ``` Règles pour votre réponse : - Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller. - Conservez à l’identique le design et tous les comportements existants. - N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir. - Terminez en expliquant comment je peux vérifier la correction moi-même. - Indiquez comment la vérifier au clavier et avec un lecteur d’écran.
Vérifier votre correction
- Refaites les étapes de reproduction au clavier seul.
- Demandez un nouveau test depuis ce rapport : le parcours sera exécuté à nouveau.
Les images doivent avoir une alternative textuelle
effort : modéré · responsable : rédacteur du contenu · 1.1.1 Contenu non textuel
Des images n’ont pas d’alternative textuelle : les utilisateurs de lecteurs d’écran ne savent donc pas ce qu’elles montrent.
Le critère WCAG 1.1.1 exige une alternative textuelle pour les images porteuses de sens. Sans elle, un utilisateur de lecteur d’écran ne peut pas savoir quel produit montre une photo.
Preuves
- Détecté par
- Règle automatisée axe-core
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 22 occurrences sur 7 pages
Attendu : Les images doivent avoir une alternative textuelle
Observé : L’élément n’a pas d’attribut alt. L’attribut aria-label n’existe pas ou est vide. L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles. L’élément n’a pas d’attribut title. La sémantique par défaut de l’élément n’a pas été remplacée par role="none" ou role="presentation".


Comment reproduire
- Ouvrez https://harborandpine.example/ dans Chrome ou Edge.
- Ouvrez les outils de développement (F12) › Éléments, appuyez sur Ctrl+F (Cmd+F sur Mac) et recherchez : img[src$="hero-photo.jpg"]
- Dans le volet Accessibilité des outils de développement, le nom calculé (Name) de l’élément est vide.
- Vous pouvez aussi lancer sur la page l’extension de navigateur gratuite axe DevTools : elle signale ce problème sous le nom « image-alt ».
Éléments en échec (affichés : 4)
<img src="/img/hero-photo.jpg" loading="lazy"><img src="/img/mug.svg"><img src="/img/beanie.svg"><img src="/img/jacket.svg">Pages concernées (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
Comment corriger
Code construit à partir du balisage de votre page- Dans l’administration Shopify, ouvrez Produits > [produit] > Media, cliquez sur chaque image et renseignez « Texte alternatif ». Pour les images des sections, ouvrez Boutique en ligne > Thèmes > Personnaliser et définissez le texte alternatif de l’image dans les paramètres de la section.
- Décrivez ce qui compte pour un client : le nom du produit, la couleur et l’angle de vue (par exemple « Sac cabas en toile olive, vue de face »).
- Les images décoratives doivent avoir un attribut alt vide (alt="") pour que les lecteurs d’écran les ignorent.
Code
Des exemples de mise en œuvre pour votre développeur. Nous n’avons pas le code source de votre thème : l’emplacement des fichiers est donc indicatif, et non un chemin exact.
<img src="/img/hero-photo.jpg" loading="lazy"><img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">Décrivez ce que montre l’image (pour une photo produit : produit, couleur, angle de vue). Si l’image est purement décorative, utilisez plutôt alt="" pour que les lecteurs d’écran l’ignorent.
<img src="/img/mug.svg"><img src="/img/mug.svg" alt="[Describe the image for a shopper]">Décrivez ce que montre l’image (pour une photo produit : produit, couleur, angle de vue). Si l’image est purement décorative, utilisez plutôt alt="" pour que les lecteurs d’écran l’ignorent.
<img src="/img/beanie.svg"><img src="/img/beanie.svg" alt="[Describe the image for a shopper]">Décrivez ce que montre l’image (pour une photo produit : produit, couleur, angle de vue). Si l’image est purement décorative, utilisez plutôt alt="" pour que les lecteurs d’écran l’ignorent.
<img src="/img/jacket.svg"><img src="/img/jacket.svg" alt="[Describe the image for a shopper]">Décrivez ce que montre l’image (pour une photo produit : produit, couleur, angle de vue). Si l’image est purement décorative, utilisez plutôt alt="" pour que les lecteurs d’écran l’ignorent.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème. Problème : Les images doivent avoir une alternative textuelle (WCAG 1.1.1). Où : 22 occurrences sur 7 pages, par exemple /, /collections/all, /products/trail-daypack, /products/pine-wool-beanie. Un élément en échec, tel que le navigateur l’a rendu : ```html <img src="/img/hero-photo.jpg" loading="lazy"> ``` Pourquoi c’est important : Le critère WCAG 1.1.1 exige une alternative textuelle pour les images porteuses de sens. Sans elle, un utilisateur de lecteur d’écran ne peut pas savoir quel produit montre une photo. Ce qui doit changer : - Dans l’administration Shopify, ouvrez Produits > [produit] > Media, cliquez sur chaque image et renseignez « Texte alternatif ». Pour les images des sections, ouvrez Boutique en ligne > Thèmes > Personnaliser et définissez le texte alternatif de l’image dans les paramètres de la section. - Décrivez ce qui compte pour un client : le nom du produit, la couleur et l’angle de vue (par exemple « Sac cabas en toile olive, vue de face »). - Les images décoratives doivent avoir un attribut alt vide (alt="") pour que les lecteurs d’écran les ignorent. Une modification suggérée (Photos produit : administration Shopify › Produits › Media › Texte alternatif. Autres images : le code de votre thème) : ```html <img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]"> ``` Règles pour votre réponse : - Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller. - Conservez à l’identique le design et tous les comportements existants. - N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir. - Terminez en expliquant comment je peux vérifier la correction moi-même. - Indiquez comment la vérifier au clavier et avec un lecteur d’écran.
Vérifier votre correction
- Analysez à nouveau les pages concernées.
- Utilisez un lecteur d’écran (VoiceOver : Cmd+F5 sur Mac) pour entendre comment les images produit sont annoncées.
Recommandations détaillées : https://dequeuniversity.com/rules/axe/4.13/image-alt?application=playwright
Chaque élément de formulaire doit avoir une étiquette
effort : rapide · responsable : développeur du thème · 4.1.2 Nom, rôle et valeur
Certains champs de formulaire n’ont pas d’étiquette : les utilisateurs de lecteurs d’écran ne savent donc pas quoi saisir.
Les critères WCAG 1.3.1, 3.3.2 et 4.1.2 exigent que les champs de formulaire aient une étiquette. Les champs d’inscription à la newsletter et de recherche sont souvent en cause.
Preuves
- Détecté par
- Règle automatisée axe-core
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 7 occurrences sur 6 pages
Attendu : Chaque élément de formulaire doit avoir une étiquette
Observé : L’élément de formulaire n’a pas de <label> implicite (imbriqué). L’élément de formulaire n’a pas de <label> explicite. L’attribut aria-label n’existe pas ou est vide. L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles. L’élément n’a pas d’attribut title. L’élément n’a pas d’attribut placeholder. La sémantique par défaut de l’élément n’a pas été remplacée par role="none" ou role="presentation".


Comment reproduire
- Ouvrez https://harborandpine.example/products/trail-daypack dans Chrome ou Edge.
- Ouvrez les outils de développement (F12) › Éléments, appuyez sur Ctrl+F (Cmd+F sur Mac) et recherchez : input
- Dans le volet Accessibilité des outils de développement, le nom calculé (Name) de l’élément est vide.
- Vous pouvez aussi lancer sur la page l’extension de navigateur gratuite axe DevTools : elle signale ce problème sous le nom « label ».
Éléments en échec (affichés : 2)
<input type="number" value="1" min="1"><input type="number" value="2" min="1">Pages concernées (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
Comment corriger
Code construit à partir du balisage de votre page- Donnez à chaque champ un élément <label for="field-id">, ou au minimum un aria-label.
- Un texte indicatif (placeholder) seul ne compte pas comme une étiquette.
Code
Des exemples de mise en œuvre pour votre développeur. Nous n’avons pas le code source de votre thème : l’emplacement des fichiers est donc indicatif, et non un chemin exact.
<input type="number" value="1" min="1"><input type="number" value="1" min="1" aria-label="Quantity">Le champ n’a pas d’id : la correction la plus rapide est donc un aria-label. Un élément <label> visible est préférable pour tout le monde. Le texte d’étiquette « Quantity » est déduit du champ ; ajustez-le si nécessaire.
<input type="number" value="2" min="1"><input type="number" value="2" min="1" aria-label="Quantity">Le champ n’a pas d’id : la correction la plus rapide est donc un aria-label. Un élément <label> visible est préférable pour tout le monde. Le texte d’étiquette « Quantity » est déduit du champ ; ajustez-le si nécessaire.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème. Problème : Chaque élément de formulaire doit avoir une étiquette (WCAG 4.1.2). Où : 7 occurrences sur 6 pages, par exemple /products/trail-daypack, /cart, /products/pine-wool-beanie, /products/enamel-camp-mug. Un élément en échec, tel que le navigateur l’a rendu : ```html <input type="number" value="1" min="1"> ``` Pourquoi c’est important : Les critères WCAG 1.3.1, 3.3.2 et 4.1.2 exigent que les champs de formulaire aient une étiquette. Les champs d’inscription à la newsletter et de recherche sont souvent en cause. Ce qui doit changer : - Donnez à chaque champ un élément <label for="field-id">, ou au minimum un aria-label. - Un texte indicatif (placeholder) seul ne compte pas comme une étiquette. Une modification suggérée (Le code de votre thème (recherchez-y le balisage affiché)) : ```html <input type="number" value="1" min="1" aria-label="Quantity"> ``` Règles pour votre réponse : - Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller. - Conservez à l’identique le design et tous les comportements existants. - N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir. - Terminez en expliquant comment je peux vérifier la correction moi-même. - Indiquez comment la vérifier au clavier et avec un lecteur d’écran.
Vérifier votre correction
- Analysez à nouveau et vérifiez que la règle label n’échoue plus.
- Cliquez sur chaque étiquette et vérifiez qu’elle donne le focus à son champ.
Recommandations détaillées : https://dequeuniversity.com/rules/axe/4.13/label?application=playwright
L’élément 'select' doit avoir un nom accessible
effort : rapide · responsable : développeur du thème · 4.1.2 Nom, rôle et valeur
Une liste déroulante (souvent un sélecteur de tri ou de variante) n’a pas d’étiquette.
Le critère WCAG 4.1.2 exige que les listes déroulantes aient un nom accessible.
Preuves
- Détecté par
- Règle automatisée axe-core
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 1 occurrence sur 1 page
Attendu : L’élément 'select' doit avoir un nom accessible
Observé : L’élément de formulaire n’a pas de <label> implicite (imbriqué). L’élément de formulaire n’a pas de <label> explicite. L’attribut aria-label n’existe pas ou est vide. L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles. L’élément n’a pas d’attribut title. La sémantique par défaut de l’élément n’a pas été remplacée par role="none" ou role="presentation".

Comment reproduire
- Ouvrez https://harborandpine.example/collections/all dans Chrome ou Edge.
- Ouvrez les outils de développement (F12) › Éléments, appuyez sur Ctrl+F (Cmd+F sur Mac) et recherchez : select
- Dans le volet Accessibilité des outils de développement, le nom calculé (Name) de l’élément est vide.
- Vous pouvez aussi lancer sur la page l’extension de navigateur gratuite axe DevTools : elle signale ce problème sous le nom « select-name ».
Éléments en échec (affichés : 1)
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>Pages concernées (1)
- https://harborandpine.example/collections/all
Comment corriger
Code construit à partir du balisage de votre page- Ajoutez un élément <label> associé à la liste, ou un aria-label comme aria-label="Sort by".
Code
Des exemples de mise en œuvre pour votre développeur. Nous n’avons pas le code source de votre thème : l’emplacement des fichiers est donc indicatif, et non un chemin exact.
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select><select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>Le champ n’a pas d’id : la correction la plus rapide est donc un aria-label. Un élément <label> visible est préférable pour tout le monde. Remplacez le texte entre crochets par l’étiquette du champ.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème. Problème : L’élément 'select' doit avoir un nom accessible (WCAG 4.1.2). Où : 1 occurrence sur 1 page, par exemple /collections/all. Un élément en échec, tel que le navigateur l’a rendu : ```html <select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select> ``` Pourquoi c’est important : Le critère WCAG 4.1.2 exige que les listes déroulantes aient un nom accessible. Ce qui doit changer : - Ajoutez un élément <label> associé à la liste, ou un aria-label comme aria-label="Sort by". Une modification suggérée (Le code de votre thème (recherchez-y le balisage affiché)) : ```html <select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select> ``` Règles pour votre réponse : - Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller. - Conservez à l’identique le design et tous les comportements existants. - N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir. - Terminez en expliquant comment je peux vérifier la correction moi-même. - Indiquez comment la vérifier au clavier et avec un lecteur d’écran.
Vérifier votre correction
- Analysez à nouveau les pages de collection et les fiches produit.
Recommandations détaillées : https://dequeuniversity.com/rules/axe/4.13/select-name?application=playwright
Les liens doivent avoir un texte perceptible
effort : rapide · responsable : développeur du thème · 2.4.4 Fonction du lien (selon le contexte), 4.1.2 Nom, rôle et valeur
Certains liens n’ont aucun texte qu’un lecteur d’écran puisse annoncer ; ce sont souvent des liens composés uniquement d’une icône, comme les icônes des réseaux sociaux ou celle du panier.
Les critères WCAG 2.4.4 et 4.1.2 exigent que les liens aient un nom accessible qui décrit leur fonction.
Preuves
- Détecté par
- Règle automatisée axe-core
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 36 occurrences sur 9 pages
Attendu : Les liens doivent avoir un texte perceptible
Observé : L’élément est dans l’ordre de tabulation et n’a pas d’intitulé accessible. Également : L’élément n’a aucun contenu textuel visible par les lecteurs d’écran. L’attribut aria-label n’existe pas ou est vide. L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles. L’élément n’a pas d’attribut title.


Comment reproduire
- Ouvrez https://harborandpine.example/ dans Chrome ou Edge.
- Ouvrez les outils de développement (F12) › Éléments, appuyez sur Ctrl+F (Cmd+F sur Mac) et recherchez : a[href$="cart"]
- Dans le volet Accessibilité des outils de développement, le nom calculé (Name) de l’élément est vide.
- Vous pouvez aussi lancer sur la page l’extension de navigateur gratuite axe DevTools : elle signale ce problème sous le nom « link-name ».
Éléments en échec (affichés : 4)
<a href="/cart"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 4h2l2.4 11h11l2-8H6.5"></path><circle cx="9" cy="20" r="1.5"></circle><circle cx="18" cy="20" r="1.5"></circle></svg></a><a href="https://instagram.example/harborandpine"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="5"></rect><circle cx="12" cy="12" r="4"></circle></svg></a><a href="https://facebook.example/harborandpine"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M14 8h3V4h-3c-2.8 0-4 1.8-4 4v2H7v4h3v8h4v-8h3l1-4h-4V8.5c0-.3.2-.5.5-.5z"></path></svg></a><a href="https://x.example/harborandpine"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4l16 16M20 4L4 20"></path></svg></a>Pages concernées (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
Comment corriger
Code construit à partir du balisage de votre page- Repérez les liens dans les exemples ci-dessous. La plupart sont des icônes ou des images placées dans une balise <a>.
- Ajoutez un texte visuellement masqué dans le lien, ou un aria-label comme aria-label="Instagram" ou aria-label="Cart".
- Si le lien contient une image, donnez plutôt à cette image un texte alternatif pertinent.
Code
Des exemples de mise en œuvre pour votre développeur. Nous n’avons pas le code source de votre thème : l’emplacement des fichiers est donc indicatif, et non un chemin exact.
<a href="/cart">…</a><a href="/cart" aria-label="Cart">…</a>Donne au lien le nom « Cart », déduit de son adresse ou de ses classes. Vérifiez qu’il indique bien ce que fait le lien.
<a href="https://instagram.example/harborandpine">…</a><a href="https://instagram.example/harborandpine" aria-label="Instagram">…</a>Donne au lien le nom « Instagram », déduit de son adresse ou de ses classes. Vérifiez qu’il indique bien ce que fait le lien.
<a href="https://facebook.example/harborandpine">…</a><a href="https://facebook.example/harborandpine" aria-label="Facebook">…</a>Donne au lien le nom « Facebook », déduit de son adresse ou de ses classes. Vérifiez qu’il indique bien ce que fait le lien.
<a href="https://x.example/harborandpine">…</a><a href="https://x.example/harborandpine" aria-label="X (Twitter)">…</a>Donne au lien le nom « X (Twitter) », déduit de son adresse ou de ses classes. Vérifiez qu’il indique bien ce que fait le lien.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème. Problème : Les liens doivent avoir un texte perceptible (WCAG 2.4.4, 4.1.2). Où : 36 occurrences sur 9 pages, par exemple /, /collections/all, /products/trail-daypack, /cart. Un élément en échec, tel que le navigateur l’a rendu : ```html <a href="/cart"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 4h2l2.4 11h11l2-8H6.5"></path><circle cx="9" cy="20" r="1.5"></circle><circle cx="18" cy="20" r="1.5"></circle></svg></a> ``` Pourquoi c’est important : Les critères WCAG 2.4.4 et 4.1.2 exigent que les liens aient un nom accessible qui décrit leur fonction. Ce qui doit changer : - Repérez les liens dans les exemples ci-dessous. La plupart sont des icônes ou des images placées dans une balise <a>. - Ajoutez un texte visuellement masqué dans le lien, ou un aria-label comme aria-label="Instagram" ou aria-label="Cart". - Si le lien contient une image, donnez plutôt à cette image un texte alternatif pertinent. Une modification suggérée (Le code de votre thème (recherchez-y le balisage affiché)) : ```html <a href="/cart" aria-label="Cart">…</a> ``` Règles pour votre réponse : - Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller. - Conservez à l’identique le design et tous les comportements existants. - N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir. - Terminez en expliquant comment je peux vérifier la correction moi-même. - Indiquez comment la vérifier au clavier et avec un lecteur d’écran.
Vérifier votre correction
- Analysez à nouveau et vérifiez que link-name a disparu.
- Avec un lecteur d’écran actif, atteignez chaque lien avec la touche Tab et écoutez son nom.
Recommandations détaillées : https://dequeuniversity.com/rules/axe/4.13/link-name?application=playwright
Les éléments doivent avoir un contraste de couleurs suffisant
effort : rapide · responsable : propriétaire de la boutique (paramètres d’administration) · 1.4.3 Contraste (minimum)
Certains textes ne se détachent pas assez de leur arrière-plan pour être lus par les personnes malvoyantes.
Le critère WCAG 1.4.3 exige un rapport de contraste d’au moins 4,5:1 pour le texte normal et de 3:1 pour le gros texte. Les prix, badges et bannières pâles sont difficiles à lire pour les personnes malvoyantes, et pour tout le monde en pleine lumière.
Preuves
- Détecté par
- Règle automatisée axe-core
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 22 occurrences sur 9 pages
Attendu : Les éléments doivent avoir un contraste de couleurs suffisant
Observé : L’élément a un contraste de couleurs insuffisant de 3.09 (couleur d’avant plan : #ffffff, couleur d’arrière plan : #e76f51, taille de police : 9.8pt (13px), graisse : normal). Contraste de couleur attendu : 4.5:1.


Comment reproduire
- Ouvrez https://harborandpine.example/ dans Chrome ou Edge.
- Ouvrez les outils de développement (F12) › Éléments, appuyez sur Ctrl+F (Cmd+F sur Mac) et recherchez : .announce
- Cliquez sur l’échantillon de couleur à côté de la couleur de l’élément dans le volet Styles pour voir le rapport de contraste mesuré.
- Vous pouvez aussi lancer sur la page l’extension de navigateur gratuite axe DevTools : elle signale ce problème sous le nom « color-contrast ».
Éléments en échec (affichés : 4)
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div><span class="badge">Sale</span><span class="compare">$72</span><span class="compare">$40</span>Pages concernées (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
Comment corriger
Code construit à partir du balisage de votre page- Ouvrez les éléments en échec listés ci-dessous et notez les couleurs de premier plan et d’arrière-plan indiquées dans le résumé de l’échec.
- Dans Boutique en ligne > Thèmes > Personnaliser > Paramètres du thème > Couleurs, assombrissez la couleur du texte ou éclaircissez l’arrière-plan du jeu de couleurs concerné jusqu’à obtenir un rapport d’au moins 4,5:1.
- Soyez particulièrement attentif aux badges de promotion, aux textes indicatifs (placeholder), aux liens du pied de page et aux boutons placés sur des images.
Code
Des exemples de mise en œuvre pour votre développeur. Nous n’avons pas le code source de votre thème : l’emplacement des fichiers est donc indicatif, et non un chemin exact.
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>.announce {
background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}Mesuré à 3,09:1 pour un texte de 13px ; le critère WCAG 1.4.3 exige 4,5:1. #b95941 conserve la même teinte et atteint le rapport requis. Le sélecteur est celui utilisé par notre test ; votre thème utilise peut-être une classe plus générale pour le même style.
<span class="badge">Sale</span>.badge {
background-color: #9f693f; /* was #f4a261: 2.06:1, now 4.59:1 */
}Mesuré à 2,06:1 pour un texte en gras de 12px ; le critère WCAG 1.4.3 exige 4,5:1. #9f693f conserve la même teinte et atteint le rapport requis. Le sélecteur est celui utilisé par notre test ; votre thème utilise peut-être une classe plus générale pour le même style.
<span class="compare">$72</span>.compare {
color: #78736c; /* was #b0a99f: 2.29:1, now 4.62:1 */
}Mesuré à 2,29:1 pour un texte de 14px ; le critère WCAG 1.4.3 exige 4,5:1. #78736c conserve la même teinte et atteint le rapport requis. Le sélecteur est celui utilisé par notre test ; votre thème utilise peut-être une classe plus générale pour le même style.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème.
Problème : Les éléments doivent avoir un contraste de couleurs suffisant (WCAG 1.4.3).
Où : 22 occurrences sur 9 pages, par exemple /, /collections/all, /products/trail-daypack, /cart.
Un élément en échec, tel que le navigateur l’a rendu :
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```
Pourquoi c’est important : Le critère WCAG 1.4.3 exige un rapport de contraste d’au moins 4,5:1 pour le texte normal et de 3:1 pour le gros texte. Les prix, badges et bannières pâles sont difficiles à lire pour les personnes malvoyantes, et pour tout le monde en pleine lumière.
Ce qui doit changer :
- Ouvrez les éléments en échec listés ci-dessous et notez les couleurs de premier plan et d’arrière-plan indiquées dans le résumé de l’échec.
- Dans Boutique en ligne > Thèmes > Personnaliser > Paramètres du thème > Couleurs, assombrissez la couleur du texte ou éclaircissez l’arrière-plan du jeu de couleurs concerné jusqu’à obtenir un rapport d’au moins 4,5:1.
- Soyez particulièrement attentif aux badges de promotion, aux textes indicatifs (placeholder), aux liens du pied de page et aux boutons placés sur des images.
Une modification suggérée (Paramètres du thème › Couleurs, ou le fichier CSS de votre thème) :
```css
.announce {
background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}
```
Règles pour votre réponse :
- Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller.
- Conservez à l’identique le design et tous les comportements existants.
- N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir.
- Terminez en expliquant comment je peux vérifier la correction moi-même.
- Indiquez comment la vérifier au clavier et avec un lecteur d’écran.Vérifier votre correction
- Relancez l’analyse et vérifiez que color-contrast n’apparaît plus.
- Contrôlez ponctuellement les couleurs exactes avec un outil de vérification du contraste.
Recommandations détaillées : https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright
Le contenu doit être localisé dans une région
effort : modéré · responsable : développeur du thème
Une partie du contenu ne se trouve dans aucune région de la page (header, nav, main ou footer).
Les régions (landmarks) permettent aux utilisateurs de lecteurs d’écran de se déplacer rapidement dans la page. Il s’agit d’une bonne pratique qui contribue aux critères WCAG 1.3.1 et 2.4.1.
Preuves
- Détecté par
- Règle automatisée axe-core
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 18 occurrences sur 9 pages
Attendu : Le contenu doit être localisé dans une région
Observé : Contenu non imbriqué dans une région ARIA.


Comment reproduire
- Ouvrez https://harborandpine.example/ dans Chrome ou Edge.
- Ouvrez les outils de développement (F12) › Éléments, appuyez sur Ctrl+F (Cmd+F sur Mac) et recherchez : .announce
- Vous pouvez aussi lancer sur la page l’extension de navigateur gratuite axe DevTools : elle signale ce problème sous le nom « region ».
Éléments en échec (affichés : 2)
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div><p>We use cookies to improve your experience and measure traffic.</p>Pages concernées (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
Comment corriger
Recommandations générales- Placez le contenu isolé (barres d’annonce, pop-ups, widgets de chat) dans la région appropriée ou à l’intérieur de <main>.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème. Problème : Le contenu doit être localisé dans une région. Où : 18 occurrences sur 9 pages, par exemple /, /collections/all, /products/trail-daypack, /cart. Un élément en échec, tel que le navigateur l’a rendu : ```html <div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div> ``` Pourquoi c’est important : Les régions (landmarks) permettent aux utilisateurs de lecteurs d’écran de se déplacer rapidement dans la page. Il s’agit d’une bonne pratique qui contribue aux critères WCAG 1.3.1 et 2.4.1. Ce qui doit changer : - Placez le contenu isolé (barres d’annonce, pop-ups, widgets de chat) dans la région appropriée ou à l’intérieur de <main>. Règles pour votre réponse : - Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller. - Conservez à l’identique le design et tous les comportements existants. - N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir. - Terminez en expliquant comment je peux vérifier la correction moi-même. - Indiquez comment la vérifier au clavier et avec un lecteur d’écran.
Vérifier votre correction
- Analysez à nouveau les pages concernées.
Recommandations détaillées : https://dequeuniversity.com/rules/axe/4.13/region?application=playwright
Les niveaux de titre doivent s’incrémenter d’un seul niveau à la fois
effort : modéré · responsable : développeur du thème
Des niveaux de titre sont sautés (par exemple de H2 à H4), ce qui rend la structure de la page confuse pour les utilisateurs de lecteurs d’écran.
Les utilisateurs de lecteurs d’écran naviguent par les titres. Il s’agit d’une bonne pratique qui contribue au critère WCAG 1.3.1.
Preuves
- Détecté par
- Règle automatisée axe-core
- Statut · confiance
- Échec vérifié · élevée
- Détecté le
- 24 sept. 2026 (UTC)
- Où
- 7 occurrences sur 7 pages
Attendu : Les niveaux de titre doivent s’incrémenter d’un seul niveau à la fois
Observé : Hiérarchie entre les titres invalide.


Comment reproduire
- Ouvrez https://harborandpine.example/collections/all dans Chrome ou Edge.
- Ouvrez les outils de développement (F12) › Éléments, appuyez sur Ctrl+F (Cmd+F sur Mac) et recherchez : article:nth-child(1) > a[href$="trail-daypack"] > h3
- Vous pouvez aussi lancer sur la page l’extension de navigateur gratuite axe DevTools : elle signale ce problème sous le nom « heading-order ».
Éléments en échec (affichés : 3)
<h3>Trail Daypack 22L</h3><h3>Reviews</h3><h3>Started on the trail</h3>Pages concernées (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
Comment corriger
Recommandations générales- Ajustez les niveaux de titre dans les sections concernées pour qu’ils se suivent sans sauter de niveau.
- Modifiez uniquement la balise, pas le style visuel (utilisez des classes CSS pour la taille).
Code
Des exemples de mise en œuvre pour votre développeur. Nous n’avons pas le code source de votre thème : l’emplacement des fichiers est donc indicatif, et non un chemin exact.
<h3>Trail Daypack 22L</h3><h2 class="h3">Trail Daypack 22L</h2>Utilisez le niveau qui suit le titre précédent de la page (souvent un niveau plus haut), et conservez l’apparence avec une classe. Vérifiez la structure de la page avant de la modifier.
<h3>Reviews</h3><h2 class="h3">Reviews</h2>Utilisez le niveau qui suit le titre précédent de la page (souvent un niveau plus haut), et conservez l’apparence avec une classe. Vérifiez la structure de la page avant de la modifier.
<h3>Started on the trail</h3><h2 class="h3">Started on the trail</h2>Utilisez le niveau qui suit le titre précédent de la page (souvent un niveau plus haut), et conservez l’apparence avec une classe. Vérifiez la structure de la page avant de la modifier.
Corriger avec l’IAAfficher le prompt
Collez ce texte dans ChatGPT, Claude, Cursor ou Copilot avec votre fichier de thème. Vérifiez la modification avant de la publier.
Je gère une boutique Shopify (thème Online Store 2.0, modèles Liquid) à l’adresse harborandpine.example. Un test d’accessibilité a détecté ce problème et je veux le corriger dans mon thème. Problème : Les niveaux de titre doivent s’incrémenter d’un seul niveau à la fois. Où : 7 occurrences sur 7 pages, par exemple /collections/all, /products/trail-daypack, /pages/about, /products/pine-wool-beanie. Un élément en échec, tel que le navigateur l’a rendu : ```html <h3>Trail Daypack 22L</h3> ``` Pourquoi c’est important : Les utilisateurs de lecteurs d’écran naviguent par les titres. Il s’agit d’une bonne pratique qui contribue au critère WCAG 1.3.1. Ce qui doit changer : - Ajustez les niveaux de titre dans les sections concernées pour qu’ils se suivent sans sauter de niveau. - Modifiez uniquement la balise, pas le style visuel (utilisez des classes CSS pour la taille). Une modification suggérée (Le code de votre thème (recherchez-y le balisage affiché)) : ```html <h2 class="h3">Trail Daypack 22L</h2> ``` Règles pour votre réponse : - Montrez la modification exacte sous forme d’avant/après, et indiquez le fichier ou le paramètre concerné. Si vous avez d’abord besoin de voir mon fichier, demandez-moi de le coller. - Conservez à l’identique le design et tous les comportements existants. - N’inventez pas de noms de produits, de prix ni de textes ; utilisez des espaces réservés que je pourrai remplir. - Terminez en expliquant comment je peux vérifier la correction moi-même. - Indiquez comment la vérifier au clavier et avec un lecteur d’écran.
Vérifier votre correction
- Analysez à nouveau et vérifiez la structure des titres avec une extension de navigateur comme HeadingsMap.
Recommandations détaillées : https://dequeuniversity.com/rules/axe/4.13/heading-order?application=playwright
À examiner manuellement
Les tests automatisés ont signalé ces points sans pouvoir trancher, par exemple du texte sur une image ou un contenu qui ne tient peut-être pas sur un écran de téléphone. Ils ne sont pas comptés comme des échecs. Demandez à votre développeur de vérifier chacun d’eux.
- À examinerWCAG 4.1.3
Parcours au clavier : Ajouter au panier avec le clavier
La touche Entrée a fonctionné sur le bouton Ajouter au panier (le compteur du panier dans l’en-tête a changé, un message « ajouté au panier » est apparu), mais nous n’avons trouvé ni message d’état ni boîte de dialogue ayant le focus : les utilisateurs de lecteurs d’écran risquent donc de ne pas entendre que l’article a été ajouté.
1 occurrence sur 1 page · Comment le vérifier
- À examinerWCAG 1.4.10
La fiche produit ne tient peut-être pas sur un écran étroit sans défilement horizontal
À 320 pixels CSS de large (l’équivalent d’un zoom à 400 %), la page dépasse l’écran de 200px. Les tableaux de données et les cartes peuvent défiler ; le texte et les commandes ne le devraient pas.
2 occurrences sur 1 page · Comment le vérifier
Éléments à vérifier (affichés : 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></budiv <div> <p style="color:#6a6a60;font-size:14px">Harbor & 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 - À examinerWCAG 1.4.10
La page d’accueil ne tient peut-être pas sur un écran étroit sans défilement horizontal
À 320 pixels CSS de large (l’équivalent d’un zoom à 400 %), la page dépasse l’écran de 55px. Les tableaux de données et les cartes peuvent défiler ; le texte et les commandes ne le devraient pas.
3 occurrences sur 1 page · Comment le vérifier
Éléments à vérifier (affichés : 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></buarticle.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> - À examinerWCAG 1.4.3
Les éléments doivent avoir un contraste de couleurs suffisant
La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image.
1 occurrence sur 1 page · Comment le vérifier
Éléments à vérifier (affichés : 1)
h1 <h1>Gear for the long way home</h1>
Testez à nouveau vos corrections
Une fois que votre développeur a apporté ses modifications, lancez un nouveau test. Nous exécutons à nouveau les mêmes vérifications automatisées sur les mêmes pages, le test au clavier et le parcours au clavier, et nous indiquons les problèmes que nous ne reproduisons plus. 5 nouveaux tests sont inclus.
Les nouveaux tests sont disponibles sur les rapports payants.
Vérifications manuelles
Les outils automatisés ne peuvent pas évaluer ces points. Effectuez ces vérifications avant de considérer le travail comme terminé.
- Effectuez le paiement uniquement au clavier : notre parcours automatisé s’arrête au bouton de paiement et n’entre jamais dans le tunnel de paiement.
- Recommencez avec un lecteur d’écran (VoiceOver sur Mac : Cmd+F5 ; NVDA sur Windows) et vérifiez que les prix, les variantes et les erreurs sont annoncés.
- Zoomez le navigateur à 200 % et vérifiez que rien ne se chevauche ni ne disparaît.
- Vérifiez que les vidéos de produit et de marque ont des sous-titres exacts.
- Envoyez des formulaires contenant des erreurs (newsletter, contact, paiement) et vérifiez que les erreurs sont décrites par un texte.
- Vérifiez que les carrousels et les pop-ups peuvent être mis en pause ou fermés, y compris avec la touche Échap.
Projet de déclaration d’accessibilité
Modifiez les passages entre crochets, puis publiez ce texte sur une page accessible depuis votre pied de page.
Déclaration d’accessibilité de harborandpine.example Nous voulons que chacun puisse faire ses achats sur harborandpine.example, y compris les personnes qui utilisent un lecteur d’écran, la navigation au clavier, un agrandisseur d’écran ou une autre technologie d’assistance. Nous nous efforçons de respecter les Règles pour l’accessibilité des contenus web (WCAG) 2.2 au niveau AA. Ce que nous faisons - Nous testons notre boutique avec des outils automatisés d’accessibilité et corrigeons les problèmes qu’ils détectent. - Nous testons les principales étapes d’achat (navigation, pages produits, panier et paiement) au clavier et avec un lecteur d’écran. - Nous vérifions l’accessibilité des applications et des widgets tiers avant de les ajouter. Limites connues (au 24 septembre 2026) - Accès au clavier et focus (WCAG 2.1.1). Nous prévoyons de corriger ce point d’ici le 2026-10-08. - Liens et boutons sans nom (WCAG 2.4.4, 4.1.2). Nous prévoyons de corriger ce point d’ici le 2026-10-08. - Images sans alternative textuelle (WCAG 1.1.1). Nous prévoyons de corriger ce point d’ici le 2026-10-08. - Champs de formulaire sans étiquette (WCAG 4.1.2). Nous prévoyons de corriger ce point d’ici le 2026-10-08. - Contraste des couleurs insuffisant (WCAG 1.4.3). Nous prévoyons de corriger ce point d’ici le 2026-10-08. Retours et aide Si vous avez des difficultés à utiliser une partie de notre boutique, contactez-nous à [votre e-mail] ou au [votre numéro de téléphone]. Indiquez-nous la page et le problème : nous vous aiderons à finaliser votre achat et vous répondrons sous 5 jours ouvrés. Cette déclaration a été établie le 24 septembre 2026 et sera révisée au moins une fois par an.
Journal des preuves
Chaque page a été chargée dans Chromium et testée avec axe-core 4.13.0. L’empreinte SHA-256 identifie les résultats bruts de chaque page.
| Page | Date du test (UTC) | HTTP | Problèmes | SHA-256 |
|---|---|---|---|---|
| Page d’accueilhttps://harborandpine.example/ | 2026-09-24 14:05:00 | 200 | 15 | da1e5470a57859a864332912dd1e4f62b4c4f64487ba144865b74879519599a3 |
| Page de collectionhttps://harborandpine.example/collections/all | 2026-09-24 14:05:09 | 200 | 20 | 28d8dfcf5ca953af353264a930a351bea3cf23f98a303874b32e5da355a4c8b0 |
| Fiche produithttps://harborandpine.example/products/trail-daypack | 2026-09-24 14:05:18 | 200 | 20 | 68a173ddfd16eeeef5e36d6c0fa9d426769f0d96e358c5e35b67608dd84139b4 |
| Panierhttps://harborandpine.example/cart | 2026-09-24 14:05:27 | 200 | 12 | 5b7945c2cdf779dcef2bd8975d96eb8f42d8dedbf10e767ec80199dd22ce257c |
| Page de contenuhttps://harborandpine.example/pages/about | 2026-09-24 14:05:36 | 200 | 9 | daf61ae856358a574e63f9357db0bfd9ae6079065acf3aebd5b3c5a7f460e53f |
| Page supplémentairehttps://harborandpine.example/products/pine-wool-beanie | 2026-09-24 14:08:00 | 200 | 20 | f708ccd7de34dfb65d59d3716580b6ec15a6420020c8387fa4da4e2ff5bd52d3 |
| Page supplémentairehttps://harborandpine.example/products/enamel-camp-mug | 2026-09-24 14:08:07 | 200 | 19 | c619bcd29e89d06099d174b9fc19305a42f2fa9bdddb600a750c867fc7477022 |
| Page supplémentairehttps://harborandpine.example/products/harbor-lantern | 2026-09-24 14:08:14 | 200 | 20 | 5720b7433b75050ba413ac74c2bd726b0620aaa68f7918083052383257d5c418 |
| Page supplémentairehttps://harborandpine.example/products/insulated-bottle | 2026-09-24 14:08:21 | 200 | 19 | 6f1972c22e477c9a63e2dfde1123ed759718f6a75e1606b23f208848691510fd |
Périmètre et méthode
Ce que nous avons testé
- 9 pages (page d’accueil, page de collection, fiche produit, panier, page de contenu, page supplémentaire) chargées dans Chromium en 1366×900.
- Les règles axe-core 4.13.0 pour les WCAG 2.0, 2.1 et 2.2 niveaux A et AA, ainsi que les règles de bonnes pratiques (indiquées en P3).
- Un test au clavier : 40 appuis sur Tab sur la page d’accueil, à la recherche de pièges et d’indicateurs de focus manquants.
- Un parcours d’achat au clavier seul, de la page d’accueil jusqu’au bouton de paiement (voir plus haut).
- Une vérification de la redistribution à 320 pixels CSS de large sur ces pages : page d’accueil et fiche produit (WCAG 1.4.10).
Ce que nous n’avons pas testé
- Les pages de commande et de paiement, l’envoi de formulaires, les pages de compte et celles qui nécessitent une connexion.
- Ce qu’annonce réellement un lecteur d’écran, au-delà des règles automatisées.
- Les sous-titres des vidéos et l’audiodescription, les documents PDF et le contenu des cadres tiers.
- Le langage clair, l’accessibilité cognitive et tout ce qui demande un jugement humain (voir Vérifications manuelles).
Comment lire les résultats
- Échec vérifié
- Un test automatisé ou le parcours au clavier a échoué ; les preuves sont affichées.
- À examiner
- Un test a signalé un point qu’il n’a pas pu trancher ; une personne doit le vérifier.
- Réussi
- La règle automatisée n’a trouvé aucun échec sur les pages testées.
- Non testé
- Hors de ce que les tests automatisés peuvent couvrir ici ; voir Vérifications manuelles.
Obtenez ce rapport pour votre site web.
Commencez par l’analyse gratuite pour voir vos problèmes et leur correspondance avec votre lettre. Le Rapport Accessibilité coûte $249, en paiement unique, et il est prêt en 10 minutes environ.
Analyser votre site gratuitementCe rapport décrit les résultats de tests automatisés et donne des recommandations de correction. Il ne constitue pas un avis juridique et ne certifie pas la conformité à l’ADA, à l’Acte européen sur l’accessibilité ni à aucune autre loi.

