Saw Tools

Couleurs sur le web : guide complet RGB, HSL, OKLCH et accessibilité

Tout ce qu'un développeur ou designer doit savoir sur les modèles colorimétriques, les gamuts, les règles WCAG et le workflow couleur en 2026.

Pourquoi tant de modèles colorimétriques ?

La couleur est un phénomène à la fois physique, perceptuel et numérique — et c'est précisément cette nature triple qui justifie l'existence de multiples modèles. Physiquement, la couleur est une longueur d'onde lumineuse entre 380 nm (violet) et 700 nm (rouge). Ce que l'œil humain perçoit dépend de trois types de photorécepteurs appelés cônes : L (sensibles au rouge-orange), M (au vert) et S (au bleu-violet). Cette réalité biologique est à l'origine de la trichromatrie, le principe selon lequel toute couleur visible peut être décomposée en trois composantes.

Le problème est que l'espace de couleurs perçu par l'humain — appelé espace CIE 1931, défini par la Commission Internationale de l'Éclairage — n'est pas un espace mathématiquement "propre". Il est asymétrique, non linéaire, et difficile à manipuler directement. C'est pourquoi les ingénieurs ont créé des modèles alternatifs adaptés à différents usages :

  • RGB / HEX : pensés pour les écrans, calqués sur le fonctionnement des LED R, G, B.
  • HSL / HSV : pensés pour les humains, qui raisonnent en "teinte + intensité + clarté".
  • OKLCH / OKLAB : pensés pour la perception uniforme, basés sur la vision humaine réelle.
  • CMJN : pensés pour l'impression, hors scope web.

En 2026, le CSS dispose nativement de tous ces modèles. Le choix n'est plus contraint par le navigateur, mais par le contexte : accessibilité, performance perceptuelle ou cohérence avec un design system. Ce guide vous donne les outils pour choisir intelligemment.

HEX et RGB : le couple historique du web

Comment fonctionne le HEX

Le format hexadécimal #RRGGBB est sans doute la notation couleur la plus répandue sur le web. Chaque paire de caractères représente une composante sur 8 bits (0 à 255) en base 16. Ainsi #FF5733 se décompose en R=255, G=87, B=51 — un orange vif. La notation courte #RGB est un raccourci : #F53 équivaut à #FF5533.

Depuis CSS Colors Level 4, l'alpha est pris en charge nativement : #RRGGBBAA, où les deux derniers caractères définissent l'opacité. #FF573380 donne donc le même orange à 50 % d'opacité. C'est une notation compacte utile pour les tokens de design, mais peu lisible pour le développeur humain.

La fonction rgb() en CSS

La fonction rgb() expose les mêmes trois canaux avec une syntaxe plus parlante :

/* Syntaxe moderne (CSS Color Level 4) */
color: rgb(255 87 51);          /* orange */
color: rgb(255 87 51 / 50%);    /* orange semi-transparent */

/* Ancienne syntaxe avec virgules */
color: rgb(255, 87, 51);
color: rgba(255, 87, 51, 0.5);

Les limites de RGB/HEX

RGB est un espace non perceptuellement uniforme. Concrètement, cela signifie qu'une variation de +10 sur le canal R ne produit pas le même changement visuel perçu qu'une variation de +10 sur le canal B. Le violet est naturellement perçu comme plus sombre que le jaune, même si leurs valeurs RGB sont équivalentes en termes de luminance mathématique. Cette asymétrie rend RGB inadapté pour :

  • Créer des dégradés qui semblent uniformes à l'œil.
  • Générer des variantes d'une couleur (plus claire, plus foncée) sans dérive de teinte.
  • Calculer le contraste de lisibilité (il faut passer par la luminance relative, voir section WCAG).

HSL et HSV : pensés pour les humains

Le modèle HSL expliqué

HSL (Hue, Saturation, Lightness) a été introduit dans CSS en 2010 et est devenu le premier format "humain" largement supporté. Il repose sur trois axes :

  • Hue (teinte) : un angle de 0 à 360° sur la roue chromatique. 0°/360° = rouge, 120° = vert, 240° = bleu.
  • Saturation : 0% = gris neutre, 100% = couleur pure et vive.
  • Lightness : 0% = noir, 50% = couleur pure, 100% = blanc.
/* Exemples HSL */
color: hsl(220 70% 50%);          /* bleu moyen */
color: hsl(220 70% 80%);          /* bleu pâle */
color: hsl(220 70% 20%);          /* bleu très sombre */
color: hsl(220 70% 50% / 30%);    /* bleu semi-transparent */

Cet axe "teinte fixe, faire varier la clarté" est très naturel pour un designer : pour créer une palette monochrome cohérente, on fixe H et S, et on joue uniquement sur L. C'est beaucoup plus intuitif qu'ajuster trois canaux RGB simultanément.

HSV : la variante des logiciels de dessin

HSV (Hue, Saturation, Value) ressemble à HSL mais remplace Lightness par Value. La différence pratique : en HSV, V=100% donne la couleur pure et saturée, tandis qu'en HSL, L=50% est la couleur pure. HSV est utilisé dans la plupart des color-pickers (Photoshop, Figma, Sketch) car il correspond mieux à la façon dont un artiste pense : "je commence par la couleur pure et j'ajoute du noir (shade) ou du blanc (tint)".

Les limites de HSL

Le problème fondamental de HSL est que sa composante Lightness ne correspond pas à la luminance perçue. Deux couleurs avec L=50% — par exemple hsl(60 100% 50%) (jaune vif) et hsl(240 100% 50%) (bleu vif) — sont mathématiquement à la même "clarté" en HSL, mais le jaune est perçu comme beaucoup plus lumineux que le bleu. Cette incohérence produit deux problèmes concrets :

  1. Les dégradés HSL sont "boueux" : un dégradé de jaune à violet via HSL passe par un vert/bleu terne au milieu, car les composantes L des couleurs intermédiaires ne correspondent pas à une luminance uniforme.
  2. Les calculs de contraste sont faux : on ne peut pas se fier à L pour évaluer l'accessibilité d'une combinaison texte/fond. Il faut utiliser la formule de luminance relative.

L'arrivée de OKLCH et des espaces perceptuellement uniformes

Qu'est-ce qu'un espace perceptuellement uniforme ?

Un espace perceptuellement uniforme est conçu de telle sorte qu'une distance mathématique égale entre deux points de l'espace corresponde à une différence visuelle perçue égale. L'espace CIE Lab (1976) a été la première tentative sérieuse. OKLAB (2020), créé par Björn Ottosson, améliore CIE Lab sur les cas problématiques (notamment le bleu). OKLCH est simplement OKLAB exprimé en coordonnées polaires, plus pratique pour les humains.

La syntaxe OKLCH en CSS

OKLCH est supporté nativement en CSS depuis 2023 :

/* oklch(lightness chroma hue) */
color: oklch(65% 0.15 220);        /* bleu moyen */
color: oklch(85% 0.08 220);        /* bleu pâle */
color: oklch(30% 0.20 220);        /* bleu sombre profond */
color: oklch(65% 0.15 220 / 50%); /* bleu semi-transparent */

/* Le problème du dégradé HSL résolu */
background: linear-gradient(
    in oklch,
    oklch(65% 0.18 30),   /* orange */
    oklch(65% 0.18 270)   /* violet */
);
/* Résultat : un dégradé passant par des rouges et roses vifs,
   sans la "boue grise" qu'on aurait en HSL */

color-mix() et interpolation perceptuelle

La fonction color-mix(), standardisée dans CSS Color Level 5, permet de mélanger deux couleurs dans n'importe quel espace colorimétrique :

/* Mélanger rouge et bleu dans OKLCH */
color: color-mix(in oklch, red 60%, blue);

/* Créer une teinte d'une couleur brand */
color: color-mix(in oklch, var(--brand-color) 80%, white);

/* Assombrir une couleur */
color: color-mix(in oklch, var(--brand-color) 70%, black);

Adam Argyle (Google Chrome) a longuement documenté pourquoi color-mix(in oklch, ...) produit des résultats perceptuellement plus naturels que les alternatives en sRGB ou HSL. La raison : les transitions passent par des couleurs vives intermédiaires au lieu de zones grises ou désaturées.

Pourquoi 2026 marque un tournant

Pendant des années, OKLCH était réservé aux expérimentations CSS. En 2026, trois facteurs convergent pour en faire un choix de production :

  1. Support navigateur à plus de 93% (Chrome 111+, Firefox 113+, Safari 15.4+).
  2. Figma et d'autres outils de design exportent désormais en OKLCH.
  3. Les systèmes de design majeurs (Radix Colors, Open Props) livrent leurs palettes en OKLCH.

sRGB, Display P3, Rec.2020 : comprendre les gamuts

Qu'est-ce qu'un gamut ?

Un gamut (ou espace colorimétrique en français) est l'ensemble des couleurs qu'un dispositif peut reproduire. Il est généralement représenté comme un triangle sur le diagramme de chromaticité CIE 1931. Le sRGB, créé par HP et Microsoft en 1996, est le gamut historique du web. Il couvre environ 35% des couleurs visibles par l'œil humain.

Le gamut Display P3, initialement développé par DCI (Digital Cinema Initiatives) puis adopté par Apple, couvre environ 50% plus de couleurs que le sRGB. Les rouges sont plus vifs, les verts plus profonds, les bleus plus saturés. Depuis les iPhone 7 (2016) et les MacBook Pro avec écran Retina P3 (2016-2017), la majorité des appareils Apple supportent P3. Les Samsung Galaxy récents, les Google Pixel 6+ et la plupart des écrans haut de gamme aussi.

Comment cibler les écrans P3 en CSS

/* Méthode 1 : la fonction color() */
color: color(display-p3 0.8 0.2 0.1);  /* rouge vif P3 */

/* Méthode 2 : @media color-gamut avec fallback sRGB */
.accent {
    color: #e63946;  /* fallback sRGB */
}

@media (color-gamut: p3) {
    .accent {
        color: color(display-p3 0.90 0.18 0.24);  /* rouge plus vif pour P3 */
    }
}

/* Méthode 3 : OKLCH avec couleurs hors-sRGB */
/* Les valeurs de chroma > 0.37 environ dépassent le gamut sRGB
   et ne s'affichent correctement que sur des écrans P3 */
color: oklch(55% 0.28 27);  /* rouge ultra-saturé */

Que se passe-t-il si l'écran ne supporte pas P3 ?

Le navigateur applique une gamut mapping : il projette la couleur hors-gamut sur la couleur la plus proche dans le gamut supporté. Ce n'est pas catastrophique, mais cela signifie que les utilisateurs sur des écrans sRGB verront une version légèrement moins vibrante. D'où l'importance du fallback CSS. Rec.2020 est le gamut cible des TV 4K et couvre environ 73% du spectre visible — très peu d'écrans l'affichent correctement en 2026, mais il sera la norme dans les années à venir.

Accessibilité : WCAG et le contraste

Les ratios de contraste WCAG 2.x

Le W3C définit dans les WCAG (Web Content Accessibility Guidelines) des ratios de contraste minimaux entre texte et fond. Ces ratios sont calculés à partir de la luminance relative, pas de la valeur RGB brute :

  • AA — Texte normal (moins de 18pt / 14pt gras) : ratio minimum 4.5:1.
  • AA — Texte large (18pt ou plus / 14pt gras) : ratio minimum 3:1.
  • AA — Composants UI (bordures de champs, icônes) : ratio minimum 3:1 contre le fond.
  • AAA — Texte normal : ratio minimum 7:1.
  • AAA — Texte large : ratio minimum 4.5:1.

Comment calculer la luminance relative

La luminance relative d'une couleur RGB se calcule ainsi (formule WCAG 2.x) :

/* Étape 1 : linéariser les canaux */
function linearize(c) {
    c = c / 255;
    return c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
}

/* Étape 2 : calculer la luminance */
function relativeLuminance(r, g, b) {
    return 0.2126 * linearize(r)
         + 0.7152 * linearize(g)
         + 0.0722 * linearize(b);
}

/* Étape 3 : calculer le ratio de contraste */
function contrastRatio(l1, l2) {
    const lighter = Math.max(l1, l2);
    const darker  = Math.min(l1, l2);
    return (lighter + 0.05) / (darker + 0.05);
}

Notre convertisseur de couleurs effectue ce calcul automatiquement : entrez deux couleurs et obtenez le ratio de contraste avec l'indication AA/AAA.

APCA : le successeur de WCAG 2.x

La méthode WCAG 2.x présente des défauts connus. En particulier, elle sous-estime le contraste de textes foncés sur fond clair et peut valider des combinaisons qui sont en réalité difficiles à lire. L'APCA (Advanced Perceptual Contrast Algorithm), développé par Andrew Somers et prévu pour WCAG 3.0, corrige ces problèmes. Il prend en compte la police, la graisse, la taille et le type d'usage (corps de texte vs UI). L'APCA n'est pas encore obligatoire, mais de plus en plus d'équipes l'adoptent en complément de WCAG 2.x. Des outils comme APCA Contrast Calculator et le plugin Figma A11y l'intègrent.

Les pièges courants du contraste

Quelques erreurs fréquentes observées en 2026 :

  • Le gris clair sur blanc : un texte #999999 sur fond #FFFFFF donne un ratio de seulement 2.85:1, loin des 4.5:1 requis. Pourtant, beaucoup de sites l'utilisent pour les placeholders et les libellés secondaires.
  • Le bleu standard sur fond coloré : #0000FF sur #0000AA est illisible même si les deux "paraissent bleus".
  • Le texte blanc sur jaune : le blanc sur #FFFF00 ne donne que 1.07:1 — quasiment indiscernable.
  • Confondre contraste et lisibilité : passer WCAG AA ne garantit pas qu'une police fine de 10px soit lisible — la taille et la graisse comptent autant que le ratio.

Daltonisme et inclusivité des couleurs

Les chiffres

Environ 8% des hommes et 0.5% des femmes présentent une forme de déficience de la vision des couleurs. Pour un site avec 100 000 visiteurs mensuels dont 50% d'hommes, cela représente environ 4 000 personnes qui peuvent avoir des difficultés à distinguer certaines couleurs. C'est trop pour être ignoré.

Les trois types principaux

  • Deutéranopie/deutéranomalie : déficience du canal vert. La plus fréquente (5% des hommes). Rouge et vert sont confondus.
  • Protanopie/protanomalie : déficience du canal rouge (1% des hommes). Même confusion rouge/vert, mais avec une réduction de la luminance perçue du rouge.
  • Tritanopie/tritanomalie : déficience du canal bleu (0.01% de la population). Confusion bleu/jaune. Très rare.
  • Achromatopsie : absence totale de perception des couleurs. Extrêmement rare (<0.003%). Vision entièrement en niveaux de gris.

Tester son interface

Trois outils gratuits et efficaces :

  1. Chrome DevTools : Panneau Rendering (3 points > More Tools > Rendering) > "Emulate vision deficiencies". Simule deutéranopie, protanopie, tritanopie et achromatopsie en temps réel sur n'importe quel site.
  2. Sim Daltonism (macOS / iOS) : une petite loupe flottante qui simule différentes déficiences sur tout ce qui est affiché à l'écran. Outil indispensable pour les designers.
  3. Coblis (coblis.com) : upload une capture d'écran et reçoit une simulation des différents types de déficiences.

Les bonnes pratiques

La règle d'or est de ne jamais utiliser la couleur comme seul vecteur d'information. Quelques exemples concrets :

  • Un graphique à barres rouge/vert pour indiquer succès/échec : ajouter une texture ou un motif en plus de la couleur.
  • Un formulaire qui indique les champs obligatoires en rouge uniquement : ajouter un astérisque (*) et un texte explicatif.
  • Un indicateur d'état vert/rouge : ajouter une icône (coche/croix) ou un texte ("Actif" / "Inactif").
  • Les QR codes générés doivent maintenir un contraste fort entre le motif sombre et le fond clair — notre générateur de QR codes applique automatiquement un fond blanc et un motif noir pour garantir ce contraste minimal.

Couleur en programmation : conversions et pièges

Convertir HEX vers HSL

La conversion HEX → HSL est une opération en deux étapes : d'abord HEX → RGB (trivial), puis RGB → HSL (plus complexe). Voici l'algorithme complet :

function hexToHsl(hex) {
    // 1. Parse HEX
    let r = parseInt(hex.slice(1, 3), 16) / 255;
    let g = parseInt(hex.slice(3, 5), 16) / 255;
    let b = parseInt(hex.slice(5, 7), 16) / 255;

    // 2. Trouver min/max
    const max = Math.max(r, g, b);
    const min = Math.min(r, g, b);
    let h, s, l = (max + min) / 2;

    if (max === min) {
        h = s = 0; // achromatic (gris)
    } else {
        const d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
        switch (max) {
            case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;
            case g: h = ((b - r) / d + 2) / 6; break;
            case b: h = ((r - g) / d + 4) / 6; break;
        }
    }
    return [Math.round(h * 360), Math.round(s * 100), Math.round(l * 100)];
}

La correction gamma et l'espace sRGB

L'espace sRGB n'est pas linéaire. Les valeurs RGB stockées dans un fichier image ou définies en CSS sont encodées avec une courbe gamma (approximativement γ=2.2). Cela signifie qu'une valeur RGB de 128 ne correspond pas à 50% de la luminance physique, mais à environ 21.6%. Pour tout calcul de luminance (comme le contraste WCAG), il faut d'abord linéariser les valeurs, comme dans l'algorithme montré plus haut. Ignorer cette étape produit des ratios de contraste incorrects — c'est une source fréquente de bugs dans les implémentations maison de vérificateurs d'accessibilité.

Précision des conversions et arrondis

Les conversions en virgule flottante accumulent des erreurs d'arrondi. Un aller-retour RGB → HSL → RGB ne redonne pas toujours exactement les mêmes valeurs RGB initiales, notamment pour les gris neutres (où la teinte HSL est mathématiquement indéfinie et arbitrairement fixée à 0). Cette instabilité est sans importance pour l'affichage, mais peut causer des bugs dans les tests automatisés. La bonne pratique : stocker les couleurs dans leur format source et n'effectuer les conversions qu'à l'affichage ou au calcul, pas en aller-retour répété.

Normalisation de l'alpha

L'alpha peut être exprimé de trois façons selon le contexte : en décimal (0–1) dans JavaScript et les fonctions CSS modernes, en pourcentage (0%–100%) dans la syntaxe CSS Level 4, et en entier (0–255) dans le format #RRGGBBAA. Les confusions entre ces notations sont une source classique de bugs. Un alpha de 0.5 en JavaScript n'est pas la même chose qu'un AA en HEX (qui vaut 0.667). Utiliser des fonctions utilitaires clairement nommées — parseAlphaDecimal(), parseAlphaHex() — évite ce type d'erreur.

Markdown et mise en forme des couleurs dans les documents

Quand vous documentez une palette de couleurs dans un document ou un README, la mise en forme compte. Un outil comme notre convertisseur Markdown vers HTML permet de prévisualiser des blocs de code couleur et des tableaux de palettes. Aucun outil spécialisé n'est nécessaire : un bloc de code fencé avec la syntaxe css suffit à rendre un extrait de palette lisible et partageable.

Workflow pratique couleur en 2026

Construire une palette accessible avec Radix Colors

Radix Colors (radix-ui.com/colors) est un système de palettes ouvert, conçu par l'équipe derrière Radix UI. Chaque couleur dispose de 12 échelons, les échelons 11 et 12 étant garantis accessibles (contraste AA) sur fond blanc. Les palettes sont disponibles en sRGB et P3, avec des variantes dark mode précalculées. C'est la base la plus solide pour construire un design system en 2026 sans se battre contre les calculs de contraste.

Tailwind CSS fournit également une palette étendue (50 à 950 sur 11 échelons), mais non garantie accessible dans toutes ses combinaisons — il faut vérifier chaque paire texte/fond manuellement.

CSS Custom Properties pour les palettes

La façon moderne de gérer une palette en CSS est via les custom properties (variables CSS) :

:root {
    /* Palette de base en OKLCH */
    --color-brand-500: oklch(55% 0.20 250);
    --color-brand-300: oklch(75% 0.14 250);
    --color-brand-700: oklch(38% 0.22 250);

    /* Sémantique */
    --color-text-primary:    var(--color-neutral-900);
    --color-text-secondary:  var(--color-neutral-600);
    --color-bg-primary:      var(--color-neutral-50);
    --color-accent:          var(--color-brand-500);
}

[data-theme="dark"] {
    --color-text-primary:    var(--color-neutral-50);
    --color-text-secondary:  var(--color-neutral-400);
    --color-bg-primary:      var(--color-neutral-950);
    --color-accent:          var(--color-brand-300);
}

Dark mode et contraste

Le dark mode ne consiste pas à inverser les couleurs. Inverser mécaniquement les valeurs RGB produit des résultats inattendus : un bleu vif en mode clair peut devenir un orange terne en mode sombre. La bonne approche est de définir deux jeux de tokens sémantiques (comme ci-dessus) et de s'assurer que chaque combinaison texte/fond respecte le ratio WCAG AA dans les deux modes. Utiliser OKLCH simplifie ce travail : ajuster uniquement la lightness (L) en conservant la même teinte (H) et la même chroma (C) garantit une variation perceptuellement cohérente.

Design tokens et build system

Les design tokens sont la couche d'abstraction entre les décisions de design et leur implémentation. Des outils comme Style Dictionary (Amazon) ou Theo transforment un fichier JSON de tokens en custom properties CSS, variables Sass, constantes JavaScript, Swift et Kotlin — un seul fichier source pour toutes les plateformes. En 2026, la tendance est de définir les tokens primaires en OKLCH et de laisser le build system générer les fallbacks HEX pour les anciens navigateurs.

Synthèse et outil pratique

Les couleurs sur le web ont toujours été un sujet plus profond qu'il n'y paraît. Ce qui semblait n'être que "choisir un joli bleu" implique en réalité la physique de la lumière, la biologie de la vision, les mathématiques des espaces colorimétriques et les contraintes légales de l'accessibilité. En 2026, la bonne pratique se résume ainsi :

  • Utiliser OKLCH pour définir et manipuler les couleurs dans le code CSS — dégradés propres, variations de clarté cohérentes.
  • Garder un fallback HEX/RGB pour les navigateurs anciens (<5% du trafic).
  • Vérifier le contraste WCAG AA (4.5:1) systématiquement pour tout texte.
  • Tester avec la simulation de daltonisme — au moins deutéranopie et protanopie.
  • Ne jamais utiliser la couleur seule comme indicateur d'état.
  • Considérer le gamut P3 pour les accents sur les appareils modernes.

Notre convertisseur de couleurs vous permet de basculer instantanément entre HEX, RGB, HSL et OKLCH, de calculer le ratio de contraste WCAG entre deux couleurs, et d'exporter les valeurs dans le format adapté à votre workflow. Aucune installation, aucun tracking, privacy-first.

Questions fréquentes

Pourquoi mon orange devient gris au milieu d'un dégradé HSL ?

En HSL, l'interpolation traverse des teintes intermédiaires dont la saturation perçue s'effondre. Un dégradé orange–violet passe par des verts et des gris ternes car HSL n'est pas perceptuellement uniforme. La solution est d'utiliser linear-gradient(in oklch, ...) ou color-mix(in oklch, ...) : l'interpolation reste dans des couleurs vives tout au long du dégradé.

HEX ou HSL : lequel utiliser en CSS moderne ?

HEX pour copier-coller depuis un design tool. HSL ou OKLCH pour écrire du CSS maintenable : hsl(220 70% 50%) est lisible et modifiable. En 2026, OKLCH est préférable dans du CSS pérenne car il offre des variations perceptuellement correctes et supporte nativement les couleurs hors-gamut sRGB pour les écrans P3.

Mon design passe WCAG AA : est-ce suffisant pour l'accessibilité ?

WCAG AA (4.5:1) est le minimum légal dans de nombreux pays et couvre la majorité des cas. Ce n'est pas un plafond : les personnes âgées ou malvoyantes bénéficient du niveau AAA (7:1). De plus, WCAG 2.x présente des défauts corrigés par l'algorithme APCA (prévu dans WCAG 3.0). Viser AA partout, AAA sur les corps de texte longs.

OKLCH est-il supporté partout en 2026 ?

Oui. oklch() est supporté par Chrome 111+, Firefox 113+, Safari 15.4+ et Edge 111+, soit plus de 93% des navigateurs en mai 2026 selon Can I Use. Un fallback HEX via @supports (color: oklch(50% 0.1 220)) suffit pour les quelques navigateurs restants.

Comment tester si une palette est daltonien-friendly ?

Trois outils gratuits : (1) Chrome DevTools > Rendering > Emulate vision deficiencies pour tester en temps réel. (2) Sim Daltonism (macOS/iOS) pour simuler 8 types de déficiences sur tout l'écran. (3) Coblis.com pour analyser une capture d'écran. Règle d'or : ne jamais utiliser la couleur seule — toujours doubler par une forme, une icône ou un texte.