unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Protesilaos Stavrou <info@protesilaos.com>
To: Yuri Khan <yuri.v.khan@gmail.com>
Cc: Richard Stallman <rms@gnu.org>, Emacs developers <emacs-devel@gnu.org>
Subject: Re: solarized
Date: Tue, 15 Sep 2020 13:16:42 +0300	[thread overview]
Message-ID: <87imcf9wfp.fsf@protesilaos.com> (raw)
In-Reply-To: <CAP_d_8WtwOhY07eLS_G0Zegbuvgak6pvU1V6V=dr8ostXwuwXg@mail.gmail.com> (Yuri Khan's message of "Tue, 15 Sep 2020 16:14:25 +0700")

Yuri Khan <yuri.v.khan@gmail.com> [2020-09-15, 16:14 +0700]:

> On Tue, 15 Sep 2020 at 15:44, Protesilaos Stavrou <info@protesilaos.com> wrote:
>
>> Solarized fails on the accessibility front (not its designer's fault, as
>> that was not its goal).  Many colour combinations are well below the
>> minimum 4.5:1 threshold.  The following table shows the relative
>> luminance of all colours of the palette compared with the four base
>> background values (table's image with colour previews also attached).
>
> A color theme does not have to provide 4.5:1 contrast for each-to-each
> color combination. Only for those that are actually used to display
> text.

Correct.  We are concerned with foreground+background combinations.
Those of designated background values are to be excluded.  Basically
every entry that approximates a 1:1 contrast ratio.

>> | SOLARIZED | HEX     | #002b36 | #073642 | #eee8d5 | #fdf6e3 |
>> |-----------+---------+---------+---------+---------+---------|
>> | base03    | #002b36 |         |         |   12.25 |   13.92 |
>> | base02    | #073642 |         |         |   10.61 |   12.05 |
>> | base01    | #586e75 |         |         |    4.39 |    4.99 |
>> | base00    | #657b83 |         |         |    3.64 |    4.13 |
>> | base0     | #839496 |    4.75 |    4.11 |         |         |
>> | base1     | #93a1a1 |    5.61 |    4.86 |         |         |
>> | base2     | #eee8d5 |   12.25 |   10.61 |         |         |
>> | base3     | #fdf6e3 |   13.92 |   12.05 |         |         |
>> | yellow    | #b58900 |    4.68 |    4.05 |    2.62 |    2.98 |
>> | orange    | #cb4b16 |    3.26 |    2.82 |    3.76 |    4.27 |
>> | red       | #dc322f |    3.25 |    2.81 |    3.77 |    4.29 |
>> | magenta   | #d33682 |    3.30 |    2.86 |    3.71 |    4.21 |
>> | violet    | #6c71c4 |    3.43 |    2.97 |    3.57 |    4.06 |
>> | blue      | #268bd2 |    4.08 |    3.53 |    3.00 |    3.41 |
>> | cyan      | #2aa198 |    4.75 |    4.12 |    2.58 |    2.93 |
>> | green     | #859900 |    4.69 |    4.06 |    2.62 |    2.97 |

Thanks for clearing the table: easier to read!  Still goes to show that
several combinations are not accessible.  Those could be tweaked a bit
while retaining the overall aesthetic of the colour scheme.  Though that
is another subject altogether.  My intent is to bring the accessibility
angle into this discussion.

> Also, Solarized picked a design decision of using the same accent
> colors against dark and light backgrounds.

I did note as much in my original message.  Solarized is among the best
in what it tries to do.  Ethan Schoonover did not design for the WCAG
standard here considered, so this is not a critique against that work.
Just a suggestion that we do not need to faithfully follow the original
Solarized.

> This makes it hard to satisfy the 4.5:1 requirement, because if accent
> is at least 4.5:1 to darkest and lightest is at least 4.5:1 to accent,
> then lightest must be at least 20.25:1 to darkest, and the chosen
> Solarized lightest and darkest do not satisfy that. So, within the
> given limitations, Solarized does well enough.

I agree.  It is practically impossible to design for accessibility using
colours that are equally accessible on light and dark backgrounds, while
also remaining fairly distinct between themselves.  The background has
to be a given, so that all foreground values can be selected
accordingly.  When in doubt, assume a pure black/white backdrop and
strive for a high contrast against it, while also leveraging the ability
of 'defface' to assign attributes to a given display spec.

The 16-colour palette that has to work on both light and dark
backgrounds is a constraint that Emacs' defface can circumvent.  An
excerpt from 'M-x find-library faces':

(defface link
  '((((class color) (min-colors 88) (background light))
     :foreground "RoyalBlue3" :underline t)
    (((class color) (background light))
     :foreground "blue" :underline t)
    (((class color) (min-colors 88) (background dark))
     :foreground "cyan1" :underline t)
    (((class color) (background dark))
     :foreground "cyan" :underline t)
    (t :inherit underline))
  "Basic face for unvisited links."
  :group 'basic-faces
  :version "22.1")

If one really wants to keep it to 16 colours, then maintain two sets of
them.  One for dark, another for light.  And keep accessibility in mind.


-- 
Protesilaos Stavrou
protesilaos.com



  reply	other threads:[~2020-09-15 10:16 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-14  3:48 solarized Richard Stallman
2020-09-15  8:29 ` solarized Protesilaos Stavrou
2020-09-15  9:14   ` solarized Yuri Khan
2020-09-15 10:16     ` Protesilaos Stavrou [this message]
2020-09-15 13:39       ` solarized Theodor Thornhill
2020-09-15 14:05         ` solarized Gerry Agbobada
2020-09-15 14:40           ` Theme generator (was: solarized) Stefan Monnier
2020-09-15 16:26             ` Theme generator Arthur Miller
2020-09-15 20:14               ` Stefan Monnier
2020-09-15 20:35                 ` Stefan Monnier
2020-09-15 20:44                   ` Arthur Miller
2020-09-16  1:49             ` Theme generator (was: solarized) Tim Cross
2020-09-17  0:25               ` chad
2020-09-17 14:25                 ` Theme generator Arthur Miller
2020-09-16  5:03             ` Theme generator (was: solarized) Richard Stallman
2020-09-15 20:28         ` solarized Protesilaos Stavrou
2020-09-15 20:50           ` solarized Praharsh Suryadevara
2020-09-16  5:05       ` solarized Richard Stallman
2020-09-16  8:27         ` solarized Protesilaos Stavrou
2020-09-16 13:38           ` solarized Arthur Miller
2020-09-17  3:57           ` solarized Richard Stallman
2020-09-17  7:53             ` solarized Gian Uberto Lauri
2020-09-17 15:56               ` solarized Drew Adams
2020-09-18  4:08               ` solarized Richard Stallman
2020-09-18  4:08               ` solarized Richard Stallman
2020-09-18 16:44                 ` solarized Drew Adams
2020-09-17 14:11             ` solarized Arthur Miller
2020-09-17 23:39               ` solarized Tim Cross
2020-09-18  4:13                 ` solarized Richard Stallman
2020-09-18  5:49                   ` solarized Tim Cross
2020-09-18  6:43                   ` solarized Arthur Miller
2020-09-16 13:06         ` solarized Arthur Miller
2020-09-17  3:53           ` solarized Richard Stallman
2020-09-15 11:26   ` solarized Göktuğ Kayaalp
2020-09-15 12:15     ` solarized Elias Mårtenson
2020-09-15 12:56       ` solarized Göktuğ Kayaalp
2020-09-16  1:30         ` solarized Tim Cross
2020-09-16 10:21           ` solarized Göktuğ Kayaalp
2020-09-16 12:53             ` solarized Arthur Miller
2020-09-16 22:09             ` solarized Tim Cross
2020-09-17 14:29               ` solarized Arthur Miller
2020-09-18 13:32               ` solarized Stefan Kangas
2020-09-18 15:53                 ` solarized Arthur Miller
2020-09-18 16:03                 ` solarized Arthur Miller
2020-09-19  4:00                 ` solarized Richard Stallman
2020-09-20 20:18                   ` solarized Bozhidar Batsov
2020-09-15 12:05   ` WCAG AAA and Emacs themes Dmitry Gutov
2020-09-15 20:22     ` Protesilaos Stavrou
  -- strict thread matches above, loose matches on Subject: below --
2020-09-16 18:07 solarized Protesilaos Stavrou
2020-09-17 14:55 ` solarized Arthur Miller
2020-09-17 15:27 ` solarized Arthur Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87imcf9wfp.fsf@protesilaos.com \
    --to=info@protesilaos.com \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    --cc=yuri.v.khan@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).