loading . . . CM-Colors - Un petit changement de couleurs pour une accessibilitĂ© maximum LâaccessibilitĂ© web câest comme le tri sĂ©lectif⊠tout le monde dit que câest gĂ©nial mais azy, jâai pas le temps. Et pourtant, câest super important car prĂšs de 80% des pages web ont des problĂšmes de contraste de texte.
Câest le souci noumber ouane dĂ©tectĂ© sur le million de sites analysĂ©s chaque annĂ©e par
WebAIM
. En gros, si vous avez un site, yâa de fortes chances que certains visiteurs galĂšrent Ă lire votre contenu, et je ne vous parle pas uniquement des personnes malvoyantes, hein⊠yâa aussi le daltonisme qui touche environ 8% des hommes et 0,5% des femmes. Rajoutez à ça les gens qui lisent leur tĂ©lĂ©phone en plein soleil, ceux qui ont une dalle de laptop toute pourrie, et vous comprendrez vite que le problĂšme concerne pas mal de monde.
Alors est ce que vous connaissez les normes
WCAG
?
HĂ© bien câest le standard international pour lâaccessibilitĂ© web. Ainsi pour ĂȘtre conforme au niveau AA (le minimum recommandĂ©), votre texte doit avoir un ratio de contraste dâau moins 4,5:1 avec son arriĂšre-plan. Pour le niveau AAA (lâidĂ©al), câest 7:1. Et lĂ vous vous dites â super, je vais calculer ça Ă la main pour mes 47 couleurs de palette, mais va bien te faire cuire le cul, Korben â. (Oui, câest comme ça que je vous imagine quand vous lisez mes articles).
Heureusement, yâa un outil qui vient de sortir et qui va vous changer la vie :
CM-Colors
. Vous lui donnez vos couleurs, et il les ajuste automatiquement pour quâelles soient accessibles, le tout en modifiant les teintes le moins possible pour garder votre design intact.
Lâinstallation est super fastocheâŠ. Câest du Python donc un petit pip install cm-colors et hop câest rĂ©glĂ©. Ensuite, vous pouvez lâutiliser soit en ligne de commande directement sur vos fichiers CSS, soit via lâAPI dans votre code. Par exemple, vous avez un gris #5f7887 sur un fond #e6f0f5 qui passe pas les tests, hop, CM-Colors le transforme automatiquement en #5c6f7b et maintenant câest conforme AA. Et la diffĂ©rence Ă lâĆil nu est quasi invisible. Bref, câest nickel pour lâaccessibilitĂ© !
from cm_colors import ColorPair
# Your colors
pair = ColorPair("#999999", "#ffffff")
# Fix them and preview in the terminal
fixed_color, success = pair.make_readable(show=True)
print(f"Use {fixed_color} instead of #999999")
# Output: Use #8e8e8e instead of #999999
Le truc vraiment cool, câest que lâoutil gĂšre plusieurs niveaux de lisibilitĂ©. Yâa âReadableâ qui correspond au AA, âVery Readableâ pour le AAA, et mĂȘme une option large_text=True pour les gros titres qui ont des exigences moins strictes. Vous pouvez donc adapter selon vos besoins et pour les devs qui bossent sur de gros projets, yâa aussi une fonction make_readable_bulk qui permet de corriger plusieurs paires de couleurs dâun coup.
from cm_colors import make_readable_bulk
my_colors = [
("#777", "#fff"),
("#888", "#000"),
]
results = make_readable_bulk(my_colors)
for color, status in results:
print(f"{color} is {status}")
Vous lui balancez une liste de tuples (texte, fond) et il vous retourne tout ça au propre. Et si vous voulez traiter directement vos fichiers CSS, la commande cm-colors styles.css gĂ©nĂšre un nouveau fichier styles_cm.css avec toutes les couleurs corrigĂ©es. Lâoutil peut mĂȘme gĂ©nĂ©rer des rapports HTML pour visualiser les changements avant/aprĂšs.
Alors oui, je sais, se taper de lâaccessibilitĂ© câest un peu relou car on a toujours lâimpression que câest du temps perdu sur des dĂ©tails. Mais dites vous que ça impacte vraiment lâexpĂ©rience de millions dâutilisateurs, donc ça vaut le coup dây passer 5 minutes, surtout avec un outil automatisĂ© !
Bref,
CM-Colors
câest gratuit, câest open source sous licence GPL-3, et ça peut vous Ă©viter pas mal de galĂšres. Toute
la documentation est ici
et yâa mĂȘme
une démo interactive
sur leur site si vous voulez tester avant dâinstaller. https://korben.info/cm-colors-accessibilite-contraste-couleurs-wcag.html