Research on High Contrast Mode so far

  • macOS and GNOME have system-level high contrast modes that interact with the separate light/dark mode settings, and will send both preferences to browsers that support it. GNOME will also change the icon themes to stark black-and-white images where available.
  • Android only seems to have a high-contrast text mode as far as I can tell.
  • Windows has a High Contrast mode that overrides colors, and has several themes including a dark and light theme. It sends the contrast and light/dark preference from that theme to browsers. It also sets forced-colors mode in web browsers, so if you use prefers-contrast: more media queries to adapt your site’s appearance, it will only accept some of the styles you define in them.
  • No iOS devices to test, but I expect it’s probably similar to macOS.
  • Next up: Plasma and other Linux desktops.

#

This article on Microsoft has some good examples of how you might need to adjust styles for the combination of forced colors, contrast, and light and dark modes – replace deactivated styles like box-shadow with a solid border, for instance, or ensure that color swatches aren’t overridden and appear on an appropriate neutral background.

Oh this is interesting!

LXQt doesn’t have an explicit dark/light switch, but it is fully themable. You can independently set the icon style, Qt widget style, Qt color scheme, panel/menu style, and optionally the GTK style. Some are dark, some are light, and some are high-contrast.

None of these choices would pass a dark preference along to any of the web browsers I tried, though you can set Firefox to use a dark theme and/or pass that along to web pages.

But if you select a high-contrast GTK3 theme, that preference gets passed along to Firefox. But not to Falkon or (since it was still installed) GNOME Web.

Went down a rabbit hole on differences between musl and glibc after reminding myself that Vivaldi only provides DEB and RPM packages for Linux, and the Arch package config I found that just extracts the contents of the RPM and repackages it for Arch isn’t likely to work on Alpine, since it uses the other C library…

Experimenting with some style tweaks on my reviews sub-site. Changing the background from very light/dark gray to full white/black, stuff like that.