Even if you modify a high contrast theme so it isn’t quite so high-contrast, it’s still a high contrast theme

A customer liaison sent a question to the shell team.

Subject: Assistance [REG:628318530717959]

Our customer has created a custom theme by editing one of the standard High Contrast themes, but it doesn't seem to be working quite right. For example, Internet Explorer doesn't show Web page background images. How can we fix this? Details from the customer are attached.

This sounds like a customer is tinkering around doing some personalization, and now they're using their "unlimited support" contract to get some help to get their super-l33t theme to look even more awesome. In the attachment, the customer explained that the default is so plain, so they took the High Contrast theme and made it more colorful. Personally, I think their new theme looks hideous, with garish colors everywhere, but hey, Hot Dog Stand is a thing, so who am I to say.

Anyway, the reason that Internet Explorer doesn't show Web page background images is that you are using a high contrast theme, albeit one that maybe doesn't have as much contrast as originally intended. And since it is a high contrast theme, applications will ask, "Is a high contrast theme active (SPI_GET­HIGH­CONTRAST)?", and the operating system will say "Yup". Or they'll ask "Should I show overlapping content (SPI_GET­DISABLE­OVERLAPPED­CONTENT)?" and the operating system will say "Nope." and applications will say, "Oh, sorry. I'll better remove background images, textured backgrounds, watermarks, and any other content that would interfere with the primary content. I hope that helps."

In other words: The reason the backgrounds are gone is that you started with an accessibility theme, so you're getting all the accessibility side effects. If you want to create your Hot Dog Stand theme, and you don't want the accessibility baggage, then start with a theme that isn't an accessibility theme.

Bonus reading: Building a more accessible web platform.

Comments (6)
  1. mwb says:

    I, for one, had no idea that selecting a high contrast scheme had any effect other than the set of colors used.

  2. Josh B says:

    It’s worth noting that there IS a workaround so that they don’t have to dump the garish theme and start from scratch: Modify the corresponding .theme file, which is really just a standard .ini with a fancy name. In the [VisualStyles] section is a HighContrast=1 entry, just remove that and it all goes back to normal… but if they happen to want SOME of the HighContrast benefits but not ALL of them, they’re just out of luck.

  3. Jon says:

    Raymond, the reason customers tinker around with unintuitive settings like this is because Windows 8 and newer bizarrely limit your colour choices. I just want my theme to look exactly like the “Windows Classic Theme” which worked in Windows 7. Try to do that now – it’s impossible. Why?

  4. MarcK4096 says:

    My bet is that they were trying to create a “Classic” theme in Windows 8 or Windows 10. Selecting a high contrast theme seems to be the only way to activate the old rendering engine. Some people really love that classic theme. :)

    1. Joshua says:

      Correct; even the APIs silently fail if you haven’t set high contrast.

  5. Alexander S. says:

    Maybe a classic theme should be added to Windows?

Comments are closed.

Skip to main content