Developing for Color Blindness?
Satan's Librarian asks: "I develop software in the music industry. Most of the software is very graphical, with lots of knobs, buttons, and various other custom controls. Recently I realized one of my interfaces would be difficult for someone who was colorblind - fortunately before it shipped. How do other developers avoid this? Is there software available on XFree86, Mac OS X, or Windows that can let you run in a modified-color mode to emulate the various kinds of colorblindness? I've found one site with some cool demos of how colors are perceived with the various types of color blindness, and a lot of self-help sites and software to help people who are colorblind, but no software to help developers and graphics artists avoid causing people difficulties in the first place yet - although from the demos and articles, I expect the algorithms would be trivial. Seems to me that if the statistics I keep seeing for colorblindness are correct (~8% of males, ~2% of females), this could be an often ignored problem that excludes a lot of people from some software. If you're colorblind, how do you deal with websites and software that was poorly designed for you? Is it a problem often?"
My color blindness is fairly severe -- red/green, red/black, brown/green, and trouble distinguishing shades. Some people who try to accomodate the color blind only think about red/green -- that doesn't help me.
The cardinal rule for accomodating color blindness is this: don't make color the sole distinguishing aspect. Use text, symbols, whatever -- just make sure that you're using something other than color for identification. Best suggestion -- remove all color from your application and see if you can still use it. If you can, I'll be able to too. (Assuming, of course, that I can distinguish the identification from the color. Black text on a red widget doesn't help me. Think high contrast.)
Here's one thing that I find frustrating: web design pundits love to talk about color palettes, and how using the correct one can supposedly maximize monitor compatibity and sight-impaired accessibility. But that's an obsolete concept, based on video adapter limitations that no longer apply. What I would find useful is sets of color pairs that could be used in combination to maximize contrast, and still design a web site that looks cool in full-color mode.
I wrote a path-finder program using Dijkstra's algorithm (and then A*, etc.). At any rate, it dynamically displayed its results showing a red path over a green graph (you can see where this is going...).
It was working very nicely and the animation was very fun to watch. I was proudly demonstrating it to a co-worker - "See how it just sniffs this dead-end and back-tracks left here?". He looked bewildered: "I don't see anything". Exasperated, I pointed to the bright red line of the path: "Here, *this*! - what are you, color blind?".
Him: "Yes".
Oops.
I spent the next 5 minutes apologizing and then another half hour adding user control over the animation colors so he could see the results. And never took this for granted again.