It's different for every user, with every different weird eye condition -- programmers should make their programs configurable and users should play with settings until they find something they like.
A paper by Taptagaporn and Saito (1990) pointed out that interactions between display polarity and lighting conditions may be the cause for eye strain. Reading from a monitor with dark background seems to cause pupil dilation (just as in dark adaptation), which then defocusses the image on the retina. T & S concluded that positive display polarity (black letters) is physiologically and psychologically superior to the older negative displays.
In an experiment with light- or dark-adapted subjects identifying target letters within a letter string from positive or negative displays, I also found interactions between adaptation level and display polarity (Fischer, 1992). Thus, the display of choice probably depends on your workplace illumination. White background displays are frequently recommend; they must, however, be refreshed more frequently to avoid perception of screen flicker, thus requiring more expensive hardware.
Taptagaporn, S. & Saito, S. (1990). How display polarity and lighting conditions affect the pupil size of VDT operators. Ergonomics, 33/2, 201-208.
I did quite a bit of research on color for a Visual Communication class a couple of years ago. Physiologically speaking, the best combination is a yellow on dark blue. Blue has such a short wavelength that it cannot be directly focused on the retina--it focuses in front of the retina. Therefore, blue naturally tends to recede. Yellow is the opponent color of blue, which provides maximum contrast.
The red/blue combination is bad because red and blue are spectrally extreme. Therefore, your eye is constantly refocusing to accommodate the colors. The eye needs to change focus slightly for each color it perceives.
A couple of references...
H. John Durrett (ed.) _Color and the Computer_ Gerald Murch assorted articles found in IEEE PC and Technical Communication
Finally, I also believe personal preference plays a strong role because each person perceives color very differently. Color combinations that work well for my color-blind brother are absolutely hideous to me--and he can't work with colors I choose because he can't see half of them. Scientifically, yellow on blue is a good choice. Realistically, people need to go with what works for them.
I work on making X more accessible to people with disabilities. Part of this includes working on solutions for people with low vision. I just came back from the CSUN conference in Los Angeles where I spoke with a representative from TeleSensory at length about color selection for people with low vision. I'm not sure if color selection for people with low vision directly applies to this discussion, but it might provide some insight.
One of the systems TeleSensory makes magnifies printed text and displays it on a color screen. The system allows users to adjust the colors on the screen in such a way to make the image easier to see. The person I spoke with works directly with the customers and helps them adjust the colors to something suitable.
The person essentially told me the following:
o He starts with white text on a black background. This is often the most common solution. If this is too painful for the user, he reduces the brightness of the white. o If white-on-black does not work, he starts with yellow-on-purple and works from there. The yellow-on-purple (very close to the gold2-on-midnightblue mentioned earlier) solution is also pretty common.
Quite often, however, neither of the above scenarios work and he has to spend a lot of time with the customer to come up with colors that work for them. In addition, the TeleSensory rep mentioned there are many different reasons for low vision and different color combo's work better for different people.
Thus, if you are experiencing eye-strain, you might try white-on-black or yellow-on-purple as starting points. If you cannot come up with a good solution, however, you might try finding an eye doctor that can help you determine what colors will work best for you.
As UI professionals (and amateurs) I think we should look for ways to make it easy for users to customise their environment, without:
a) bogging down in details (eg: pick 14 different color/text style combos)
b) inducing nightmares.
I was very impressed by Tog's idea of "relative colour" (in Tog on Interface) where the user picks an overall colour theme, or a base note, and the other colours adjust relative to that, with a "compression" effect where saturation and brightness are linear scales, with a logarithmic effect toward the end of the scale (Tog draws pretty pics with a spring bouncing between walls, and compressing more as it gets to the end).
I think a lot more could be done with color edge effects and backgrounds, look at Kai's Power Tools for Photoshop, for some great ideas. (Kai de-emphasises the buttons, with the titles being a soft colour until you move the mouse over them. It has to be seen to believe how well it works in reducing the "busy-ness" of a screen's controls.).
From William K Horton, "Designing and writing online documentation", p166
"No color combination has the contrast and hence legibility of black and white. Reading colored text is often slower and more error-prone than reading black and white text (Bouma, 1980)."
"... Characters formed of a combination of primary colors may appear fuzzy because of misregistration, especially near the edges and corners of the screen (Williges and Williges, 1984). Generally for a black background, green proves the best choice on a red-green-blue color display because red is too intense and blue is too dark."
"... Legible text stands out from its background. For legibility make foreground and background colors different in lightness and hue. Especially avoid combinations that are the same lightness level, for example, yellow on white or navy blue on black."
" ... For other legible color combinations, use opponent colors, such as yellow and blue (Dumas 1988). If you use a pure blue, use it as a background. Many people cannot clearly focus on blue objects. If you must use blue as a foreground color, mix green with the blue..." [reasons given but left out here for space considerations]
"... Limit the number of colors ..." [section heading]
"... Apply the user's color conventions" [section heading]
"Every domain has its own color conventions ..." [examples given]
"Color associations" [section heading] "Colors take on strong cultural and political associations. You are going to have a hard time selling your system to the government of Swamalamaland if your screens display the colors of the outlawed revolutionary opposition party..."
(personal examples of note include the fact that in many Islamic and Asian nations WHITE is the colour of mourning; in China, RED is used at weddings and festivals, being the colour of good luck; in Japan, BLUE has scatological associations, while BLACK has no particular meaning; and in a Western Hospital, BLUE is associated with DEATH).
Scot Art's recent posting on this topic begs for some follow-up, I think. In that posting, there was a list of recommendations from different human factors sources with contradictory recommendations on screen colors (contradictory on the face of it). The impression was unfair, I think, because (1) the sources were referring to different aspects of the problem (eg some referred to best contrast, some noted that if you have colors avoid some combinations, and some referred to cultural connotations of colors) and (2) the technology varies so widely it's impossible to give one recommendation.
The latter fact should be particularly noted, it is display hardware which varies radically, *not* people's visual systems (within the range of common abilities of course). I don't think this needs too much support, just line up a series of different CRTs and LCD color displays for IBM PC and clone products (from the different or the same manufacturers!) and note the difference in actual color for the same display colors -- it's enormous, even when that color is white.
When you talk about choosing colors for legibility, it is most useful to talk about characteristics, and then apply them to the specific hardware you have. There's not much way around this. Contrast in luminance is one factor, but flicker is another (yes, flicker), font, fuzziness of the display, and color contrast (eg the accommodation problems with red and blue mentioned in an earlier posting).
For example, maximizing contrast in luminance is most important for legibility, and black on white will maximize this on most or all equipment, white on blue is also high contrast on most equipment, blue on black is low luminance contrast. However, now try applying this to different technologies and interesting problems appear. For example, with most current high resolution graphics screens, designers choose black letters on white background (to imitate paper, as well as maximize luminance contrast) which is often a good choice. However, I've seen people generalize this to older technology (monochrome or CGA CRTs or plain vt-100 class terminals). The result is disaster, because, it turns out, on many older terminals, a large field of white is so bright as to cause eyestrain of a different sort! Thus, it is better to have white letters on black. Think we have a rule now? Guess again! Before you're comfortable with your black-on-white on your hi res graphics monitor, note that with cheaper monitors, there is significant flicker which is most noticeable with large fields of the color white (thus, go back to white on black, or try blues...) -- but before you do that, take note of the thickness of the font you're using! -- thin fonts are harder to read with black-on-white whereas thin fonts work well with white-on-black (lateral inhibition phenomenon -- I think -- but I'm not sure). Note, the human's abilities and limitations are the same here, it's the technology that varies. I trust I've made my point (and this just with the colors black and white, it can only be worse, more complex, when you drag in the other colors).
Oh, finally, preference is yet another matter, I gathered that the original posting was referring to legibility (performance), not preference. But, as an aside, preference will obviously vary with individuals. The best a designer can hope to do is choose colors which will produce a positive response from the most number of people (and, also, not produce violent disgust from anyone). (And, of course, provide customizability!) Taking this into account, data can help. At Bell Labs, several old studies (done during the era of CGA displays) consistently show white letters on a blue background as high preference (yellow/gold on blue was good as well). Newer studies in the public literature seem to concur, if my memory serves me correctly. Of course, in addition to individual differences in preferences, you also have to contend with different color renditions on different equipment again!
(Warning, an experience I had just yesterday demonstrated that colors on a active matrix laptop LCD display are subtly different than on a CRT, further- more, the LCD's colors are not-so-subtly different at different viewing angles, because the reflectance is different at different angles ... ie amount of light reaching the eye from the LCD...)
"The sensitivity to variations in spatial frequency is different for colors than for black and white. For black and white vision, there is a peak spatial frequency sensitivity at about 5 cycles per degree (Snyder, 1980) . [At higher spatial frequencies, sensitivity drops off precipitously--AA]. For color perception, the maximum sensitivity is shifted to lower spatial frequencies, with yellow/blue attenuating more than red/green variations. For color, larger objects, such as the entire screen surface, are therefore more easily perceived than smaller objects, such as characters.
"In general, the smaller the object, the poorer the color will appear to the eye. Even for fine gratings, where spatial patterns can be detected, color may not be recognizable. For example, a low spatial frequency grating of yellow and blue stripes is indistinguishable from from a black/white grating. The black/white channel conveys high spatial frequency information, such as edges, sharp contours, and fine shapes. It is therefore easier to appreciate color in large objects and black and white in small objects.
"Owing to the insensitivity of the retinal periphery to saturated red and green, these colors should not be used in the periphery of a display. Yellow and blue are good peripheral colors, although the latter should not be used for text and thin lines.
"Saturated blue should not be used for the presentation of fine detail, because the central part of the fovea is relatively insensitive to that color. For similar reasons, blue is an excellent background color."
Snyder, H. L. (1980). Human visual performance and flat panel display image quality. Blacksburg, VA: VPI & SU. Human Factors Laboratory.