Les couleurs du Web sont utilisées dans la conception de pages web, et les méthodes pour décrire et spécifier ces couleurs.
Les auteurs de pages web disposent de nombreuses possibilités pour spécifier les couleurs des éléments qui composent un document web. Les couleurs peuvent être définies par un triplet RGB dans le format hexadécimal (un triplet hexadécimal) ; elles peuvent être aussi spécifiées selon leur nom commun en anglais dans certains cas. Souvent un outil de gestion des couleurs ou un autre logiciel graphique est utilisé pour générer la valeur numérique de la couleur souhaitée.
Les premières versions de Mosaic et du navigateur Netscape utilisaient les noms des couleurs X11 comme base pour leur liste de couleurs, puisque les deux logiciels ont commencé comme applications X Window System.
Les couleurs du web possèdent une définition colorimétrique non-équivoque, sRGB, qui énumère les chromaticités d'un ensemble particulier de phosphore, une courbe donnée de correction du gamma (ou courbe de transfert), le point blanc, et les conditions de visionnage. Cette définition a été choisie pour être identiques à de nombreux moniteurs et conditions de visionnage. Donc même sans gestion des couleurs le rendu est assez proche des valeurs spécifiées.
Triplet hexadécimal[]
Un triplet hexadécimal est un nombre hexadécimal à 6 chiffres mémorisé sur trois octets utilisé en HTML et dans les feuilles de style en cascade (CSS), et d'autres applications, pour représenter les couleurs. Les octets représentent les composantes rouge, vert et bleu de la couleur. Un octet représente au moins l'intervalle entre 00
et FF
(en notation hexadécimal), ou 0 à 255 en notation décimale. Le triplet hexadécimal est formé par la concaténation de trois octets en notation hexadécimale, dans l'ordre suivant :
- Octet 1 : valeur du rouge
- Octet 2 : valeur du vert
- Octet 3 : valeur du bleu
Par exemple, en considérant la couleur où les valeurs rouge/vert/bleu sont des nombres décimaux : rouge=36, vert=104, bleu=160 (une couleur bleue grisâtre). Le nombre décimal 36, 104 et 160 sont respectivement 24, 68 et A0 en notation hexadécimale. Pour obtenir le triplet hexadécimal, nous écrivons simplement le triplet hexadécimal ensemble sans espace, c'est-à-dire : 2468A0
. Si un octet est inférieur à 16 (décimal) ou 10 (hexadécimal) il doit être représenté par un zéro non significatif pour garder le nombre de chiffres dans les triplets égale à six. Par exemple, le triplet décimal 0,1,2 devrait être représenté par le triplet hexadécimal 000102
.
Le nombre de couleurs représentables par ce système est théoriquement :
- 256 × 256 × 256 = 16 777 216
Notation courte avec trois chiffres hexadécimaux[]
Une notation plus courte basée sur un seul chiffre hexadécimal par couleur est permise par certains standards[1]. Donc trois chiffres hexadécimaux en tout pour représenter une couleur. La correspondance avec le triplet à six chiffres s'effectue en doublant chaque chiffre. Par exemple 09C devient 0099CC comme présenté par le code CSS suivant :
.trois-chiffres { color: #09C; }
.six-chiffres { color: #0099CC; } /*correspond à la même couleur*/
Par conséquent, cette réduction du nombre de chiffres diminue également le nombre de couleurs possibles, passant de 16 777 216 à 4 096 couleurs. Mais la plupart des documents n'utilisant que peu de couleurs, cette limitation n'est pas gênante.
Attention, cette notation est définie par le standard CSS, mais pas par le standard HTML. Par conséquent, l'utilisation de cette notation raccourcie autre que dans l'attribut "style
" n'est pas valide pour certains navigateurs[2].
Conversion du RGB (ou RVB) en hexadécimal[]
Convertir une valeur décimale RGB en une valeur hexadécimale est assez simple. Les valeurs RGB sont généralement dans un intervalle entre 0 et 255; si elles sont comprises entre 0 et 1, multipliez la valeur par 255 avant la conversion. Le nombre de fois que ce nombre est divisible par 16 (sans arrondissement) nous donne le premier chiffre (entre 0 et F, voir hexadécimal si vous n'en êtes pas sûr). Le reste nous donne le deuxième chiffre. Par exemple la valeur RGB 201 est divisible 12 fois par 16, donc le premier chiffre est C
. Le reste 9 nous permet d'obtenir C9
. ce procédé est répété pour chacune des valeurs de couleurs.
Noms des couleurs HTML[]
La spécification[3] du HTML 4.01 définit 16 couleurs nommées définies par 18 mots-clés en anglais (il y a deux synonymes), et dont l'emploi n'est pas sensible à la casse. (Les traductions[4] en français entre parenthèses sont indicatives et ne sont pas des attributs valides en HTML.) Ces attributs et la valeur hexadécimale de rouge-vert-bleu équivalente sont, par ordre alphabétique :
Valeur | Couleur | Valeur | Couleur | Valeur | Couleur | Valeur | Couleur |
---|---|---|---|---|---|---|---|
#00FFFF | aqua / cyan (bleu eau, cyan) |
#008000 | green (vert) |
#000080 | navy (bleu marine) |
#C0C0C0 | silver (argent) |
#000000 | black (noir) |
#808080 | gray (gris) |
#808000 | olive (jaune olive) |
#008080 | teal (sarcelle) |
#0000FF | blue (bleu) |
#00FF00 | lime (vert citron) |
#800080 | purple (violet) |
#FFFFFF | white (blanc) |
#FF00FF | fuchsia / magenta (fuchsia) |
#800000 | maroon (Bordeaux) |
#FF0000 | red (rouge) |
#FFFF00 | yellow (jaune) |
Ces couleurs sont aussi spécifiées comme sRGB et incluses dans les spécification du HTML 3.0 qui fait remarquer que « Ces couleurs sont issues des 16 couleurs standards supportées avec la palette VGA Windows. »[5]
Il devrait être mentionné que toutes les couleurs ayant une valeur comprise entre #000000
et #FFFFFF
(16 777 216 couleurs) sont valides.
Noms de couleurs SVG 1.0[]
Par ailleurs, un nombre de couleurs sont définies par les navigateurs web. Un navigateur particulier pourrait ne pas reconnaître toutes ces couleurs, mais depuis 2005 tous les navigateurs modernes d'utilisation courante ont avalisé la liste complète. Beaucoup de ces couleurs sont issues de la liste des noms de couleur X11 fournie par le système de fenêtrage X. Ces couleurs ont été normalisées par SVG 1.0, et sont reconnues par les visiteurs SVG Full. Elles ne font pas partie de SVG Tiny.
Les noms utilisés dans le framework .NET sont quasiment identiques, dans les énumérations Color et KnownColor. La seule couleur différente est DarkSeaGreen qui est définie comme 8F, BC, 8B (à la place de 8F, BC, 8F).
La liste de couleurs réellement embarquées avec X11 varie selon les réalisations, et entre en conflit avec un certain nombre de noms HTML comme c'est le cas pour le vert (green). De plus, les couleurs X11 sont définies comme simple RGB (donc, sans couleur précise) plutôt que sRGB. Cela signifie que la liste des couleurs que l'on trouve dans X11 (c'est-à-dire /usr/lib/X11/rgb.txt
) ne devrait pas être directement utilisée pour choisir des couleurs pour le web[6].
La liste des « couleurs X11 » du web de la spécification du CSS3, ainsi que leurs équivalents hexadécimaux et décimaux, est présentée ci-dessous[7],[8].
|
|
|
Couleurs garanties sur le web[]
Un autre ensemble de 216 valeurs de couleurs est généralement considérée comme la palette de couleurs garanties sur le web (web-safe colors) conçue alors que de nombreux moniteurs n'étaient capables d'afficher que 256 couleurs. Un ensemble de couleurs, qui pouvaient être affichées sans tramage sur les écrans à 256 couleurs, était nécessaire ; le nombre 216 a été choisi en partie parce que les systèmes d'exploitation réservaient fréquemment seize à vingt couleurs pour leur propre usage ; et il fut choisi également car il permettait exactement six tons de rouge, de vert et de bleu (6 × 6 × 6 = 216).
La liste des couleurs est souvent présentée comme si elle avait des propriétés spéciales qui les rendraient immunisées au tramage. En fait, sur les moniteurs à 256 couleurs les applications peuvent fixer une palette de n'importe quelle sélection de couleurs de leur choix, tramant le reste. Ces couleurs ont été choisies spécialement parce qu'elles correspondaient aux palettes choisies par les principales applications de navigateur de l'époque. Heureusement, les palettes utilisées par les différents navigateurs populaires n'étaient pas foncièrement différentes.
Les couleurs garanties sur le web avaient un défaut, sur les systèmes tel que X11 où la palette est partagée entre les applications, de plus petits cubes de couleurs RVB (5×5×5 ou 4×4×4) sont souvent alloués par les navigateurs — ainsi, les couleurs garanties sur le web trament sur de tels systèmes. De meilleurs résultats étaient obtenus en fournissant une image avec une plus large gamme de couleurs et permettant au navigateur de quantifier l'espace de couleur si nécessaire, plutôt que de subir la perte de qualité d'une double quantification.
Dans les premières années du XXIe siècle, conduits par les besoins du jeu vidéo et de la photographie numérique, les ordinateurs personnels ont au moins des couleurs en 16 bits et généralement 24 bits (couleurs vraies). Même les appareils mobiles ont au moins les couleurs en 16 bits, du fait des options caméras sur les téléphones mobiles. L'utilisation des couleurs garanties web est tombé en désuétude, mais persiste dans le folklore.
Le système de la palette garantie pour le web persiste comme étant la palette avec le plus grand nombre de couleurs distinctes, où chaque couleur peut être distinguée séparément par l’œil humain.
Les couleurs garanties pour le web n'ont pas de noms, mais chacune peut être spécifiée par un triplet RGB.
Tableau de couleur[]
Le tableau suivant montre toutes les couleurs « garanties pour le web », mais aussi en souligné les couleurs vraiment garanties. L'absence de correction gamma implique que les six intensités souhaitées 0 %, 20 %, 40 %, 60 %, 80 %, et 100 % sont affichés à 0 %, 2 %, 10 %, 28 %, 57 %, et 100 % dans un standard 2,5 gamma CRT ou LCD, faisant la plupart des couleurs très sombres. Les intensités dans le bas de la gamme, particulièrement entre 0 et 3, sont quasiment indiscernables les unes des autres.
Les couleurs sont ici représentées avec la notation courte (trois chiffres hexadécimaux).
*000* | 300 | 600 | 900 | C00 | *F00* |
*003* | 303 | 603 | 903 | C03 | *F03* |
006 | 306 | 606 | 906 | C06 | F06 |
009 | 309 | 609 | 909 | C09 | F09 |
00C | 30C | 60C | 90C | C0C | F0C |
*00F* | 30F | 60F | 90F | C0F | *F0F* |
030 | 330 | 630 | 930 | C30 | F30 |
033 | 333 | 633 | 933 | C33 | F33 |
036 | 336 | 636 | 936 | C36 | F36 |
039 | 339 | 639 | 939 | C39 | F39 |
03C | 33C | 63C | 93C | C3C | F3C |
03F | 33F | 63F | 93F | C3F | F3F |
060 | 360 | 660 | 960 | C60 | F60 |
063 | 363 | 663 | 963 | C63 | F63 |
066 | 366 | 666 | 966 | C66 | F66 |
069 | 369 | 669 | 969 | C69 | F69 |
06C | 36C | 66C | 96C | C6C | F6C |
06F | 36F | 66F | 96F | C6F | F6F |
090 | 390 | 690 | 990 | C90 | F90 |
093 | 393 | 693 | 993 | C93 | F93 |
096 | 396 | 696 | 996 | C96 | F96 |
099 | 399 | 699 | 999 | C99 | F99 |
09C | 39C | 69C | 99C | C9C | F9C |
09F | 39F | 69F | 99F | C9F | F9F |
0C0 | 3C0 | 6C0 | 9C0 | CC0 | FC0 |
0C3 | 3C3 | 6C3 | 9C3 | CC3 | FC3 |
0C6 | 3C6 | 6C6 | 9C6 | CC6 | FC6 |
0C9 | 3C9 | 6C9 | 9C9 | CC9 | FC9 |
0CC | 3CC | 6CC | 9CC | CCC | FCC |
0CF | 3CF | 6CF | 9CF | CCF | FCF |
*0F0* | 3F0 | *6F0* | 9F0 | CF0 | *FF0* |
0F3 | *3F3* | *6F3* | 9F3 | CF3 | *FF3* |
*0F6* | *3F6* | 6F6 | 9F6 | *CF6* | *FF6* |
0F9 | 3F9 | 6F9 | 9F9 | CF9 | FF9 |
*0FC* | *3FC* | 6FC | 9FC | CFC | FFC |
*0FF* | *3FF* | *6FF* | 9FF | CFF | *FFF* |
Couleurs vraiment garanties pour le web[]
Les concepteurs sont souvent encouragés à rester fidèles aux 216 couleurs garanties pour le web dans l'élaboration de leur site web ; les moniteurs de couleur 8 bits étaient plus courants quand la palette de 216 couleurs a été établie qu'ils ne le sont aujourd'hui. David Lehn et Hadley Stern ont découvert que seules 22 des 216 couleurs de la palette sont fidèlement affichées sans remappage incohérent sur des moniteurs 16 bits. Ils appelèrent ces 22 couleurs la palette vraiment garantie ("really safe" palette) ; elle est composée principalement de tons de vert et de jaune, comme on peut le voir dans le tableau ci-dessus, où les couleurs vraiment sécurisées sont soulignées[9].
Couleurs utilisées dans les CSS[]
Le langage des feuilles de style en cascade (Cascading Style Sheets, CSS) définit le même nombre de couleurs et les mêmes noms des couleurs que dans les spécifications du HTML 4, c'est-à-dire les 16 couleurs énumérées précédemment. De plus, CSS 2.1 ajoute le nom de couleur 'orange' à la liste :
Color | Hexadecimal |
---|---|
orange | #FFA500 |
CSS 2, SVG et CSS 2.1 permettent aux auteurs de pages web d'utiliser les dites « couleurs système », qui sont le nom des couleurs dont la valeur provient du système d'exploitation[10]. Cela rend possible aux auteurs de documents web de styliser leur contenu en ligne avec les couleurs définies dans l'environnement de travail de l'utilisateur. Depuis début 2004, il se trouve que le module de couleur CSS 3 abandonnera une fois encore ces valeurs, les rendant obsolètes, mais cela pourrait changer[11].
Les spécifications CSS3 en cours de développement introduiront également les valeurs de l'espace de couleur TSL aux feuilles de styles :
/* modèle RVB */ p { color: #F00 } /* #rgb */ p { color: #FF0000 } /* #rrggbb */ p { color: rgb(255,0,0) } /* intervalle entier 0 - 255 */ p { color: rgb(100%, 0%, 0%) } /* intervalle à virgule flottante 0.0% - 100.0% */
/* RVB avec canal alpha, ajouté à partir de CSS3 */ p { color: rgba(255,0,0,0.5) } /* intervalle à virgule flottante 0 - 1, 0.5 étant semi-transparent */
/* modèle TSL, ajouté à partir de CSS3 */ p { color: hsl(0, 100%, 50%) } /* rouge */ p { color: hsl(120, 100%, 50%) } /* vert */ p { color: hsl(120, 100%, 25%) } /* vert clair */ p { color: hsl(120, 100%, 75%) } /* vert foncé */ p { color: hsl(120, 50%, 50%) } /* vert pastel */
/* TSL avec canal alpha */ p { color: hsla(120, 100%, 50%, 1) } /* vert */ p { color: hsla(120, 100%, 50%, 0.5) } /* vert semi-transparent */ p { color: hsla(120, 100%, 50%, 0.1) } /* vert très transparent */
Accessibilité[]
L'utilisation de la couleur dans les pages Web est soumise à deux règles d'accessibilité selon les normes d'accessibilité WCAG définies par le W3C[12]:
- Aucune information ne doit être véhiculée uniquement par la couleur. En effet, celle-ci ne sera pas perceptible pour certains utilisateurs, comme par exemple les personnes aveugles naviguant à l'aide d'un lecteur d'écran. Elle sera également difficilement compréhensible pour d'autres utilisateurs ayant un handicap visuel, notamment les daltoniens. La couleur doit donc être accompagnée par un autre moyen de véhiculer l'information, qu'il soit graphique, textuel ou structurel. Cette règle relève du niveau de priorité 1 des WCAG, c'est-à-dire du niveau minimal d'accessibilité d'un site.
- Lorsque la couleur est utilisée de cette manière, un niveau de contraste suffisant avec l'arrière-plan doit être assuré. Cette règle s'applique aux images comme aux contenus textuels. Elle relève, selon le cas, du niveau intermédiaire ou optimal d'accessibilité d'un site. La mesure de ce niveau de contraste et les seuils admissibles varient légèrement selon les méthodes d'application des WCAG[13].
Notes et références[]
- ↑ Les couleurs en CSS (en)[1], traduction non officielle : [2]
- ↑ IE8 interprète mal le bgcolor avec trois chiffres hexadécimaux
- ↑ HTML 4.01 Specification section 6.5 "Colors"
- ↑ Le guide du code HTML, « Les couleurs standardisées ou palette de couleurs ».
- ↑ HTML 3.2 Specification "The BODY element"
- ↑ Public discussion on SVG mailing list Re: color names in SVG-1.0 conflict with /usr/lib/X11/rgb.txt
- ↑ W3C TR CSS3 Color Module, SVG color keywords
- ↑ W3C TR SVG 1.0, recognized color keyword names
- ↑ Death of the Websafe Color Palette?
- ↑ Voir system-colors
- ↑ css2-system
- ↑ (en) Web Content Accessibility Guidelines 1.0, Don't rely on color alone
- ↑ (en) Techniques For Accessibility Evaluation And Repair Tools (W3C) et Techniques for WCAG 2.0 (W3C)