Les éléments doivent respecter les seuils minimaux de rapport de contraste des couleurs
Un texte trop pâle par rapport à son arrière-plan est difficile, voire impossible, à lire pour les clients malvoyants, daltoniens ou dont la vue baisse avec l’âge, ainsi que pour toute personne qui utilise son téléphone en plein soleil. Des prix, des codes de réduction, des indications de formulaire et des libellés de boutons illisibles entraînent des erreurs et des commandes perdues.
- Identifiant de la règle
- color-contrast
- Source
- axe-core 4.13.0
- Impact
- Grave
- Niveau de correction
- ASSISTED
- sur Shopify, Shopware, WooCommerce et Magento
- Statut
- exécutée
Ce que fait le contrôle
Vérifier que le contraste entre les couleurs de premier plan et d’arrière-plan respecte les seuils minimaux de rapport de contraste des WCAG 2 niveau AA
Sont candidats les éléments qui ont leur propre nœud de texte visible, ainsi que les champs input, select et textarea, même vides, à l’exception d’un select sans options et d’un champ dont le text-indent pousse le texte hors du champ. Sont ignorés les champs sans texte, comme les cases à cocher, les éléments désactivés ou inertes, les étiquettes de champs désactivés et les textes faits uniquement d’émojis ou de ponctuation.
Le contrôle lit la couleur de texte calculée et reconstitue l’arrière-plan à partir des éléments empilés derrière le texte, en fondant les couches semi-transparentes sur une page blanche. Un texte compte comme grand à partir d’une font-size de 18 pt (24 px), ou de 14 pt (18,66 px) lorsque font-weight vaut 700 ou plus.
Lorsque le contrôle ne peut pas trancher, le résultat est « à examiner », par exemple avec une image ou un dégradé d’arrière-plan, une image ou une vidéo derrière le texte, un autre élément par-dessus, un grand ::before ou ::after positionné en absolu avec un arrière-plan, ou un seul caractère en échec. Le scanner de Validiscan n’en fait pas des constats ; un tel texte doit donc être vérifié par une personne.
Les couleurs sont lues dans l’état où la page se charge, avec le schéma de couleurs clair, dans chaque zone d’affichage scannée. vs-hover-focus-contrast mesure les états de survol et de focus.
Comment corriger
Portez le contraste du texte normal à au moins 4,5:1 et celui du grand texte (24 px, ou 18,66 px en gras) à au moins 3:1. Ajustez la couleur dans les paramètres du thème ou dans les variables CSS plutôt qu’élément par élément, en conservant la teinte de la marque et en modifiant la luminosité, et vérifiez aussi le texte sur les images et les badges de promotion.
Critères de succès WCAG
- 1.4.3 Contrast (Minimum), niveau AA
Clauses de la norme EN 301 549
| Critère WCAG | Version 3.2.1 | Version 4.1.1 |
|---|---|---|
| 1.4.3 | 9.1.4.3 | 9.1.4.3 |
Recettes qui énumèrent cette règle
Cette règle a le niveau ASSISTED. Dans un projet, un constat de cette règle suit la voie ASSISTED, et ces recettes ne lui sont pas appliquées.
Shopify : recette contrast-tokens
Afficher l’avant et l’après (1)
assets/base.css.liquid Modifications apportées à assets/base.css.liquid (lignes ajoutées : 3, lignes supprimées : 3)
| Ligne avant | Ligne après | Modification | Code |
|---|---|---|---|
| 745 | 745 | font-size: 0.8125rem; | |
| 746 | 746 | letter-spacing: 0.04em; | |
| 747 | 747 | text-transform: uppercase; | |
| 748 | Supprimée | color: #929292; | |
| 748 | Ajoutée | color: #767676; | |
| 749 | 749 | } | |
| 750 | 750 | ||
| 751 | 751 | .rating { | |
| 1013 | 1013 | ||
| 1014 | 1014 | .copyright__content { | |
| 1015 | 1015 | margin: 0; | |
| 1016 | Supprimée | color: #929292; | |
| 1016 | Ajoutée | color: #6f6f6f; | |
| 1017 | 1017 | } | |
| 1018 | 1018 | ||
| 1019 | 1019 | .policies { | |
| 1077 | 1077 | ||
| 1078 | 1078 | .cookie-banner__text, | |
| 1079 | 1079 | .cookie-banner__link { | |
| 1080 | Supprimée | color: #9a9a9a; | |
| 1080 | Ajoutée | color: #767676; | |
| 1081 | 1081 | } | |
| 1082 | 1082 | ||
| 1083 | 1083 | .cookie-banner__icon-button { |
Shopware : recette contrast-tokens
Afficher l’avant et l’après (1)
Resources/app/storefront/src/scss/_variant-broken.scss Modifications apportées à Resources/app/storefront/src/scss/_variant-broken.scss (lignes ajoutées : 1, lignes supprimées : 1)
| Ligne avant | Ligne après | Modification | Code |
|---|---|---|---|
| 45 | 45 | /* Light grey unit prices, 3.1:1 (color-contrast). */ | |
| 46 | 46 | .product-price-unit, | |
| 47 | 47 | .product-detail-price-unit { | |
| 48 | Supprimée | color: #929292; | |
| 48 | Ajoutée | color: #757575; | |
| 49 | 49 | } | |
| 50 | 50 | ||
| 51 | 51 | /* Fixed two-line product names (vs-text-spacing). */ |
WooCommerce : recette contrast-tokens
Afficher l’avant et l’après (1)
assets/css/main.css Modifications apportées à assets/css/main.css (lignes ajoutées : 1, lignes supprimées : 1)
| Ligne avant | Ligne après | Modification | Code |
|---|---|---|---|
| 676 | 676 | .kb-footer-about, | |
| 677 | 677 | .kb-footer-newsletter-intro, | |
| 678 | 678 | .site-info { | |
| 679 | Supprimée | color: #888; | |
| 679 | Ajoutée | color: #6e6e6e; | |
| 680 | 680 | } | |
| 681 | 681 | ||
| 682 | 682 | .site-footer ul.menu { |
Magento : recette contrast-tokens
Afficher l’avant et l’après (1)
app/design/frontend/Validiscan/fixture/web/css/source/_theme.less Modifications apportées à app/design/frontend/Validiscan/fixture/web/css/source/_theme.less (lignes ajoutées : 1, lignes supprimées : 1)
| Ligne avant | Ligne après | Modification | Code |
|---|---|---|---|
| 1099 | 1099 | // VALIDISCAN-SEEDED color-contrast: #929292 on white is 3.1:1. | |
| 1100 | 1100 | .block-promo .info, | |
| 1101 | 1101 | .toolbar-amount { | |
| 1102 | Supprimée | color: #929292; | |
| 1102 | Ajoutée | color: #767676; | |
| 1103 | 1103 | } | |
| 1104 | 1104 | ||
| 1105 | 1105 | // VALIDISCAN-SEEDED vs-reflow: the promo row keeps a 1100px minimum width at every breakpoint. |
app/design/frontend/Validiscan/fixture/web/css/styles-m.css Modifications apportées à app/design/frontend/Validiscan/fixture/web/css/styles-m.css (lignes ajoutées : 1, lignes supprimées : 1)
| Ligne avant | Ligne après | Modification | Code |
|---|---|---|---|
| 1075 | 1075 | ||
| 1076 | 1076 | .block-promo .info, | |
| 1077 | 1077 | .toolbar-amount { | |
| 1078 | Supprimée | color: #929292; | |
| 1078 | Ajoutée | color: #767676; | |
| 1079 | 1079 | } | |
| 1080 | 1080 | ||
| 1081 | 1081 | .block-promo-wrapper { |
Commencez par une vérification gratuite de votre boutique.
Envoyez l’adresse de votre boutique. Validiscan la scanne et vous envoie chaque échec que le scan peut prouver, avec sa page et son code.
Demander une vérification gratuiteOu écrivez à info@validiscan.com.
Ce que couvre la vérification gratuite, et ce qu’elle laisse de côté- Vous envoyez
- l’adresse de votre boutique
- Pages scannées
- jusqu’à 15
- Vous recevez
- chaque échec que le scan peut prouver, avec la page et le code
- Sur votre boutique
- pages publiques uniquement ; aucune connexion, aucun achat, aucun formulaire envoyé
- Ce qu’elle n’est pas
- un audit complet