{"id":1475,"date":"2018-10-03T18:29:31","date_gmt":"2018-10-03T16:29:31","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=1475"},"modified":"2018-11-10T10:35:42","modified_gmt":"2018-11-10T09:35:42","slug":"barrierefreie-farbkontraste-ich-hab-da-so-ne-idee","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2018\/10\/03\/barrierefreie-farbkontraste-ich-hab-da-so-ne-idee\/","title":{"rendered":"Barrierefreie Farbkontraste &#8211; ich hab da so ne Idee"},"content":{"rendered":"<p>Also, wie man ausrechnet ob auf einem farbigen Hintergrund eine schwarze oder wei\u00dfe Schriftfarbe besser lesbar ist, das hatten wir ja gerade eben schon mal. Jetzt ist der Kunde aber K\u00f6nig, und man kommt auch mal in die Verlegenheit, eine farbige Schrift auf farbigem Grund darstellen zu sollen. Die Anforderung k\u00f6nnte also heissen: es soll eine gr\u00fcne Schrift auf rotem Grund ausgegeben werden, und die soll m\u00f6glichst gut lesbar sein. Da kann man einen Colorpicker nehmen und so ungef\u00e4hr schauen was besser lesbar ist, aber das ist ja doch blo\u00df Trial&amp;Error. Es gibt auch Formeln, mit denen man so etwas berechnen kann, f\u00fcndig wird man z.B. beim W3C, oder <a href=\"http:\/\/www.nbdtech.com\/Blog\/archive\/2008\/04\/27\/Calculating-the-Perceived-Brightness-of-a-Color.aspx\">auf dieser Seite von nbtech<\/a>. Nach deren Algorithmus kann man die &#8222;perceived brightness&#8220;, also die wahrgenommene Helligkeit einer Farbe als Wert zwischen 0=schwarz und 255=wei\u00df berechnen. Das ist nicht trivial, weil z.B. gr\u00fcne T\u00f6ne vom menschlichen Auge als heller wahrgenommen werden als rote Schattierungen. Darum berechnet man die jeweilige wahrgenommene Helligkeit, und vergleicht die Farben dahingehend. Ein Unterschied von ca. 120 zwischen den zwei Farben wird nach W3C als ausreichender Kontrast angesehen. Die Formel lautet wie folgt:<\/p>\n<p><strong>brightness\u00a0 =\u00a0 sqrt( .241 R<sup>2<\/sup> + .691 G<sup>2<\/sup> + .068 B<sup>2<\/sup> )<\/strong><\/p>\n<p>sqrt ist die Quadratwurzel, R, G, B sind unsere guten alten Bekannten Rot- Gr\u00fcn- und Blauanteil aus dem RGB-Farbraum, wie wir sie in HTML so gerne verwenden (ausf\u00fchrliche Infos hierzu z.B. <a href=\"https:\/\/www.w3schools.com\/html\/html_colors.asp\">hier bei W3Schools<\/a>)<\/p>\n<h2>Gar nicht so einfach: was ist Rot, was ist Gr\u00fcn?<\/h2>\n<p>Auch das ist nicht trivial, weil von der Meinung des Betrachters abh\u00e4ngig. Ein dunkles Rotbraun mag f\u00fcr einen noch als Rot durchgehen, der n\u00e4chste ordnet es schon den braunen T\u00f6nen zu. Ein sonniges Gelb kann auch als Orange gelten, und ein blaustichiges Gr\u00fcn als Blauton herhalten. Sowas kann man nicht berechnen, da kann man sich nur eine Kr\u00fccke suchen und daran festhalten. Bei den 16,7 Mio vorhandenen RGB-Farben ist es auch ein Ding der Unm\u00f6glichkeit, \u00fcberall die korrekte Farbfamilie zu bestimmen. Wir nehmen ein paar Farben weniger, das tuts als Arbeitshypothese auch.<\/p>\n<h2>Eine Untermenge: die benannten HTML-Farben<\/h2>\n<p>Ich habe da eine interessante Zusammenstellung der benannten HTML-Farben im Web gefunden. Bei <a href=\"https:\/\/htmlcolorcodes.com\/color-names\/\">https:\/\/htmlcolorcodes.com\/color-names\/ <\/a>gibt es eine Tabelle der von allen modernen Browsern unterst\u00fctzten benamsten Farben, die nach Farbfamilien (Color Groups) gruppiert ist. Auch bei w3schools gibt es eine gut gestaltete <a href=\"https:\/\/www.w3schools.com\/colors\/colors_groups.asp\">Seite \u00fcber die Color Groups<\/a>, nur sind sie da ein bi\u00dfchen anders zusammengefa\u00dft.<\/p>\n<p>Die Seite von htmlcolorcodes.com habe ich mir mal als Arbeitsgrundlage geklemmt und in eine Datenbanktabelle gejagt. Es sollten eigentlich 140 Farben sein, auf der Seite sind aber 143 Farben aufgef\u00fchrt. Die Tabelle enth\u00e4lt Duplikate, da werden Farben unter zwei verschiedenen Farbfamilien genannt. Ist jetzt aber nicht so schlimm, letztendlich ist die Information wertvoll, welche Farbt\u00f6ne als Rot, Blau, Gelb usw. empfunden werden. Es gibt eine Liste von 10 Farbfamilien. Ich werde bei den englischen Bezeichnungen bleiben, schliesslich sind auch die HTML-Farbnamen in Englisch.<\/p>\n<p>Hier mal die Liste der Farbfamilien, mit der jeweiligen Anzahl der zugeordneten Farben:<\/p>\n<p>YELLOW\u00a0\u00a0 \u00a011<br \/>\nWHITE\u00a0\u00a0 \u00a017<br \/>\nRED\u00a0\u00a0 \u00a09<br \/>\nPURPLE\u00a0\u00a0 \u00a019<br \/>\nPINK\u00a0\u00a0 \u00a06<br \/>\nORANGE\u00a0\u00a0 \u00a06<br \/>\nGREEN\u00a0\u00a0 \u00a023<br \/>\nGRAY\u00a0\u00a0 \u00a010<br \/>\nBROWN\u00a0\u00a0 \u00a017<br \/>\nBLUE\u00a0\u00a0 \u00a025<\/p>\n<p>Wie gesagt, die Summe ist hier 143, nicht 140, aber das vernachl\u00e4ssigen wir jetzt mal. Dass Blue die meisten Farbt\u00f6ne zugeordnet hat verwundert auch nicht weiter, da Blau nunmal eine sehr beliebte Farbe bei Webdesignern und Grafikern ist und im Web sehr h\u00e4ufig verwendet wird.<\/p>\n<h2>Wer sagt, dass das Rot ist?<\/h2>\n<p>Unter der Farbfamilie &#8222;Red&#8220; sind 9 benannte Farben zu finden:<\/p>\n<div id=\"attachment_1477\" style=\"width: 142px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-1477\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1477\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/10\/family_red.jpg\" alt=\"family_red\" width=\"132\" height=\"164\" \/><p id=\"caption-attachment-1477\" class=\"wp-caption-text\">family_red<\/p><\/div>\n<p>Da sieht man schon, da\u00df die Zuordnung der einzelnen Farbt\u00f6ne zu denen Farbfamilien ausgesprochen subjektiv und diskutabel ist, Lightcoral w\u00fcrde ich eher unter Pink einordnen. Wenn man sich die RGB-Werte dieser Farben anschaut, wird man auch nicht schlauer.<\/p>\n<div id=\"attachment_1478\" style=\"width: 323px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-1478\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1478\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/10\/red_family_rgb.jpg\" alt=\"red_family_rgb\" width=\"313\" height=\"166\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/10\/red_family_rgb.jpg 313w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/10\/red_family_rgb-300x159.jpg 300w\" sizes=\"(max-width: 313px) 100vw, 313px\" \/><p id=\"caption-attachment-1478\" class=\"wp-caption-text\">red_family_rgb<\/p><\/div>\n<p>Es ist mitnichten so, dass diese Farben alle einen besonders hohen R-Anteil haben, Darkred ist zum Beispiel so ein Ausreisser mit 139 als R-Wert, daf\u00fcr sind die G-und B-Werte Null. Ich hab lange rumgesucht, aber bisher keine praktikable Berechnungsmethode gefunden, mit der man x-beliebige Farbt\u00f6ne einer der obengenannten Farbfamilien zuordnen kann. Deswegen verwende ich die Zuordnungen von htmlcolocodes.com, da hat man zumindest mal einen Anhaltspunkt.<\/p>\n<h2>Und wozu das Ganze?<\/h2>\n<p>Ganz einfach: mir schwebt sowas wie ein spezialisierter Colorpicker vor, in dem man eine frei w\u00e4hlbare Farbe vorgibt. Dann w\u00e4hlt man aus, aus welcher Farbfamilie die Kontrastfarbe kommen soll, und erh\u00e4lt einen oder mehrere Vorschl\u00e4ge, welche Farbt\u00f6ne einen guten Kontrast bieten w\u00fcrden. Das als Arbeitshypothese. Mal sehen, wie weit ich damit komme.<\/p>\n<h2>Die Voraussetzung: eine MySQL-Tabelle mit allen 140 benannten Farben<\/h2>\n<p>Diese enth\u00e4lt die Farbfamilie, den Farbnamen, den Hex-Wert und den RGB-Wert. Die habe ich nat\u00fcrlich nicht per Hand eingehackt, da habe ich einen kleinen Umweg \u00fcber ein Excel-Makro genommen, mehr wird nicht verraten. Die Tabelle sieht so aus, die Feldnamen sind selbsterkl\u00e4rend:<\/p>\n<div id=\"attachment_1480\" style=\"width: 424px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-1480\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1480\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/10\/mysql_farbtabelle.jpg\" alt=\"mysql_farbtabelle\" width=\"414\" height=\"417\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/10\/mysql_farbtabelle.jpg 414w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/10\/mysql_farbtabelle-150x150.jpg 150w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/10\/mysql_farbtabelle-298x300.jpg 298w\" sizes=\"(max-width: 414px) 100vw, 414px\" \/><p id=\"caption-attachment-1480\" class=\"wp-caption-text\">mysql_farbtabelle<\/p><\/div>\n<p>Das wird meine Ausgangsbasis. Und ich komme mit unter 100 Zeilen Code aus. Den Source gibt es dann im n\u00e4chsten Beitrag.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Also, wie man ausrechnet ob auf einem farbigen Hintergrund eine schwarze oder wei\u00dfe Schriftfarbe besser lesbar ist, das hatten wir ja gerade eben schon mal. Jetzt ist der Kunde aber K\u00f6nig, und man kommt auch mal in die Verlegenheit, eine farbige Schrift auf farbigem Grund darstellen zu sollen. Die Anforderung k\u00f6nnte also heissen: es soll [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,15,10,11,4,63,59],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1475"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=1475"}],"version-history":[{"count":7,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1475\/revisions"}],"predecessor-version":[{"id":1485,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1475\/revisions\/1485"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=1475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=1475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=1475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}