Where does 96 DPI come from in Windows?

Most Windows systems are shipped with the display DPI set to 96 PPI. (I’ll use the term PPI in this blog entry as it more accurately reflects usage for computer screens while DPI is more common for print usage. Windows tends to use the DPI acronym.) This setting is sometimes also called “Normal Size” or “Small Fonts.” Where does this 96 value come from?

Early Video Cards and Displays

In early versions of Microsoft Windows there were many display types to support, including the CGA, EGA, and later the VGA. These graphics adapters then drive the display monitor. The displays for CGA and EGA had rectangular pixels instead of the square pixels we typically see today.

Most of the displays were of very low resolution. The Macintosh display was 72 PPI while most of the “IBM” style displays were less than 72. The VGA displays were around 70 to 74 PPI.

The chart below shows some of the displays from the mid 1980’s.

Device Mode “Expanded Resolution” True Resolution Aspect Ratio
CGA 640×200 48×96 27.22×65.34 2.40:1
EGA 640×350 72×96 50.80×67.7 1.33:1
VGA 640×480 96×96 67.74×67.74 1:1
8514 1024×768 120×120 91.99×91.99 1:1
Macintosh (128K) 512×342 n/a 72×72 1:1

Macintosh Display

The Macintosh choice of 72 PPI was not arbitrary. Common wisdom holds that 72 PPI was chosen because one pixel would approximately equal one point. (I’m sure it didn’t hurt that most displays were fairly close to that range anyway.) The Xerox Alto used a similar point to pixel mapping. With 72 PPI on the Macintosh, a 10 point font would have an em of 10 pixels—or using the industry nomenclature, 10 points = 10 pixels per em (PPEm.)

The tradition in the print world was dominated by 10 pt type for most office communications. Using WYSIWYG Word Processors on a Macintosh would give PPEm of 10 pixels, and an x-height of around 5 pixels. That is a very small amount of room to display lowercase characters.

Because of this small space, many documents moved to 12 point on the Macintosh.

Viewing Distance

Compounding the problem of few pixels is the viewing distance of most displays. When reading a book or other piece of paper, the text is usually held at arms length distance. Computer monitors, on the other hand, tend to be farther away, somewhere around 1/3 the distance more than paper. The size of the text on your retina is impacted by the distance from the text. In order for the text to appear to be the same size, the text farther away must be larger.

Windows “solution” to this problem

The Windows solution was somewhat controversial. The decision was made to report the resolution of displays on Windows as about 1/3 greater than actual resolution. This roughly corresponds to the increased reading distance. So, for displays around 72 PPI, Windows would indicate 96 PPI. When IBM came out with the 8514 display, which was around 96 PPI, we added a new resolution for 120 PPI.

I’m not sure about other potential solutions that were investigated—like some type of a zoom factor, but the solution chosen was quite easy to integrate into the system.

Impacts of this Solution

There are both positive and negative aspects to this solution. On the positive side, it made text much more readable at equivalent point sizes on screen and paper. Eleven point text on Windows matched eight point on the Macintosh. It made it much easier for us to hint fonts for Windows as we realistically needed to only worry about 8 point (11 PPEm) and above. Users were able to look at and read the same sizes on print and screen.

The biggest negative was the measurement issue. If someone held a point ruler to the screen and measured the em, it would be smaller than we indicate.

In Windows 95, a feature was added to the Display->Settings->Advanced control panel to set a custom DPI value. The user can stretch a virtual ruler until it matches a physical ruler held up to the screen. If you’re asking why we didn’t query the monitor directly—see my previous post on ClearType Tuning. Using the correct PPI should give you accurate measurements.

An Interesting Twist

Although screen PPI has remained fairly constant in the almost twenty years since this decision was made, there has been some marginal improvement. But, in this same timeframe, many, many applications have been written for Windows with 96 PPI. Unfortunately, many of these applications have made assumptions about the size of a pixel and many dialog boxes and web pages have been designed around 96 PPI. As newer displays have come along, some, especially laptops have higher pixel densities. Unfortunately if one adjusts for this by using PPIs besides 96, then there is a risk of some applications or web pages not working properly.


Edit: Update Image Reference