Fonts for data entry

As with the problem of chosing the right shape for a form, chosing a font was much easier back in the days of DOS. You only had one possible shape for the form - full screen - and only the one font.

[Data entry in different fonts] Windows has given us a huge range of fonts and some are better than others in a database. Clients often want to see all the text on screen in their corporate font but we try to resist this because some fonts really are a poor choice for data entry and display. The correct choice of font will make a great difference to the usability of the form. This example shows the difference between data entry fields in Gill Sans, Arial, and Courier fonts. It's an extreme case but it does show the problems.

All three fields display the same value: four lower case "L"s followed by four upper case "i"s followed by two number 1's. This is not at all obvious in the Gill Sans and Arial fonts and there is a real chance of the user making a mistake with these two fonts.

Gill Sans

Gill Sans is a fine font for the display of text but it shows the capital "i", the lower case "L" and the number 1 as exactly the same symbol. Your only clue is that there is a slightly wider spacing between the numbers than between the letters.

This similarity does not matter when Gill Sans is used in its proper surroundings. A user reading a passage of text can tell which character is which by the context and no harm would be done. Matters are very different when the user is entering data or searching a database for an alpha numeric serial number like "I411-101".


Arial is the default font for forms in MS Access, Visual FoxPro and Basic. It does allow the user to identify the number 1 but the letters "I" and "l" are still identical. What's worse is that the letters are very close together and some users find it very difficult to place the cursor exactly on a particular character. This example by the way is in 12 point font. If it were in a more normal 9 or 10 point then users would be in real difficulty.

Remember that as a programmer you've probably got a better PC than most users and you are also more likely to be really comfortable with your mouse. Think of a user with an old gritty mouse or with a laptop and trackpad.

Courier New

Despite its name, Courier New looks very old fashioned and no style-conscious designer would consider using it for a moment. The font is an old one but the reason that it has survived for so long is that it is a very good font for data entry. It is not a font to use where there is any amount of text to be read but it is an excellent font where you are just showing a few words or where you need to enter or display numbers.

Courier New has three advantages:

  1. Every character is different. The user will have no difficulty reading data or entering values for a search.
  2. The characters are well-spaced and the user can easily see the position of the cursor between two characters.
  3. It is a fixed-pitch font and all the characters are all the same width. The prompt asks for a serial number of ten characters and the textbox is exactly the right size to accept ten characters. If the serial number had contained a lot of wide characters such as "W" and "M" then the Arial and Gill Sans text boxes would have overflowed.

Other fonts

There are of course other fonts, many, many other fonts. We do all our work on Windows PCs and cannot comment on fonts for Macintosh or Linux.

We use Tahoma as a default for all captions and it's a good font for data entry as well. The characters "1", "I", and "l" are similar but not identical and the proportional spacing is not as extreme as Gill Sans.

Lucida Console is a sans-serif fixed-pitch font that makes a good alternative to Courier New if the client absolutely refuses to have such an old-fashioned font on their screen.

Times New Roman is possibly the oldest font in Windows and it's difficult to see why anybody would want to use it. It has proportional spacing and is bad for data entry because it tends to bring some letters very close together. Times New Roman was designed for text on paper and newer fonts such as Tahoma and Verdana are very much easier to read if you want to show a lot of text on screen.

Fonts in Visual FoxPro

This general advice on fonts applies whichever development language you are using. We like to work in Visual FoxPro because its object-oriented features allow us to build class libraries of custom controls. Our standard library has the font set to "Courier New" for all its data entry classes and to "Tahoma" for all its captions. If a client insists on using a corporate font for their application then it's a simple matter to create a new set of subclasses and use them instead.