We're about to create a number of physical objects with codes imprinted on them. We have decided to only use uppercase letters (no numbers).

This is supposed to be read by humans in a hurry, and we want to limit the number of possible misreadings.

The examples we have right now is O-Q, VV-W and something like IN-M. In those cases we might choose to skip Q, W, M.

Are there any guides or recommendations for this?

Edit: Code Clown asked for a few clarifications.

The code will most likely be 9 letters long, but we will need to add more if we choose to remove letters other than those stated. I've suggested to group it by 3: ACF GSA TRE

The code is not to be memorized; the persons reading it will see it for the first time, then either read it loud to an operator or type it on a mobile device.

The operator and website can give instructions about the code length, give suggestions for disallowed letters and/or autocorrect Q-0-O. If we decide to add such scheme, it will be added after an evalution round.

  • 2
    Nice question. Curious, did you test readability with different font ? Me think skipping those letters might be sufficient and quick to implement and put to production.
    – Max
    Commented Nov 27, 2014 at 14:13
  • We haven't really got to any testing yet. As soon as this need became obvious I figured someone else probably already have thought about this and maybe know other things one should try to avoid. Or perhaps know of a fixed-size font which has very good "distinguishability", if that's a word.
    – NiklasJ
    Commented Nov 27, 2014 at 14:21
  • human read as in accurately? or can they just recall in a different way? is it xqurrt code? or can you name it "jerico"? which is an obvious misspell of jericho?
    – Ayyash
    Commented Nov 28, 2014 at 10:50
  • I don't understand what you're saying. The codes will be randomized and we're going to try to avoid any similarity to words (by a manual check).
    – NiklasJ
    Commented Nov 28, 2014 at 13:19

7 Answers 7


I am not sure if this answers your question, as it actually undermines it, but there are fare more studies on why proper capitalisation is prefered:


Because Your Mind Doesn't Read Each Letter, Rather the Shape Of The Word

Wichh Is Why You Can Do Tihngs Scuh As Tihs

There are more studies and sources out there which should be more difficult to find.

In the interest of balence though there is one I have found supporting your theroy - though make sure you read it as it is all about context.

Also of relevanace is this previous post: Mixed case vs all lower case...Which is more readable?

ULTIMATELY THOUGH, IF ALL CAPS IS EASIER TO READ, then why aren't we writing in it?

Edit: For codes as well, the individual letters are much clearer if in lowercase, you will have users saying is this a O or a 0? Written as o or 0 is much clearer.

  • 1
    The readability links you specify are to help identify familiar words (especially for latin letters, because of different ascender and descender elements in lowercase letters). It seems that car registration plates (at least in Europe) always use uppercased letters right because shapes are more accurately read as both shapes of letters and also letters itself. Commented Nov 27, 2014 at 18:27
  • @AlexOvtcharenko Notice my edit though.. with codes you need to easily know the difference between O and 0 - and as OP noted OQ or oq? which is easier there... In truth the reason a lot of codes are capitals because it looks neater.. not necessarily easier to read
    – tim.baker
    Commented Nov 28, 2014 at 9:34
  • 2
    Ok, this is a good point, although it doesn't answer my question. vv-w is still a problem, and i guess g-q might be a problem, depending on font. Further; q,p,b,d has some potential issues? 0-O will not be an issue, since there are no numbers in the code.
    – NiklasJ
    Commented Nov 28, 2014 at 10:01
  • @NiklasJ - You may know there are no numbers in your code, but will your end users :)
    – tim.baker
    Commented Nov 28, 2014 at 15:06
  • 1
    @tim.baker It doesn't necessarily matter whether his users know there are no numbers or not as long as any software that deals with it knows that any 0 must be an O and so on.
    – Vala
    Commented Dec 4, 2014 at 10:41

Just to add on Tim Bakers excellent answer, There are actually recommendations on which characters are ambiguous letters so named since they may confuse users about whether they stand for a letter or a character. To quote an earlier answer I had posted sometime back

You can get the list of those characters from this C code file on Pwgen.

If you are not comfortable reading C code, the characters and the corresponding confusing numerals (and letters) are

B = 8
G = 6
I = 1 = l (lowercase L)
O = 0
Q = D
S = 5 
Z = 2
  • Ah - this is almost what I was looking for. Maybe not as comprehensive since we found a few other collisions, and we only got uppercase, but still.
    – NiklasJ
    Commented Dec 5, 2014 at 9:39
  • Exactly what I was looking for. The only answer that gives you something immediately usable.
    – Tolga
    Commented Jan 17 at 8:54

Working off a lot of the answers already given, what about randomly combining 3 3-letter words? http://en.wiktionary.org/wiki/Category:English_three-letter_words

(taking out inappropriate ones for this purpose of course)


  • Your users are all English speakers
  • You only need about ~3 million unique codes (150 * 150 * 150)

I feel like "Don Gym Cob" (for example) is very easy to read, and also very easy to communicate since you mentioned these codes will be verbally transmitted in some cases.

  • That's a great idea, but unfortunately both your assumptions are wrong... :-) As of now, next to none will be native English speakers, and we will need something in the order of 26^8 codes. I would need 6 words to do this, and that's a bit too much.
    – NiklasJ
    Commented Dec 5, 2014 at 9:32

Some information is missing in your question, what length has the code to be? is it to be memorized? Instead to avoid confusable character you could generate pronounceable code wit Bubble Babble. The code would look like this

  • I've updated the question per your questions. I've had a similar idea, but the problems are that these are too long, and for entering on a mobile device this won't work.
    – NiklasJ
    Commented Dec 4, 2014 at 14:05
  • 1
    @NiklasJ For mobile devices a QR code might be the solution.
    – aggsol
    Commented Dec 4, 2014 at 14:15
  • That was an original suggestion, and I still think that's the best, but someone decided that it's sooo 2012. We will still need a readable code, and I believe that any words or wordlike strings will be too long to fit on the device anyway.
    – NiklasJ
    Commented Dec 5, 2014 at 9:36

If the goal is to be read in a hurry, and accuratly, besides looking at excluding certain letters, I would agree with @J.Dimeo to use three-letter words. I would also look at possibly getting rid of three letter words that could be mis-typed easily on a mobile device, such as "BET" and "BEG". If you don't need a lot of randomness, this would be a great approach. But if you are trying to do a reCAPTCHA type thing, then you may have to resort to random groups of letters.


I'd suggest using a monospace font. It helps a lot with readability and they're usually made so you distinguish letters.

Also, why discard numbers? I don't have a study to demonstrate that, but i think humans recognize faster the numbers.

  • Monospace was the plan, but this is more from a "I think it would be good" basis rather than from any actual evidence. I was hoping on getting some more specific pointers. Numbers being discarded is a requirement from end users (and for a reasonably good reason).
    – NiklasJ
    Commented Dec 9, 2014 at 13:47
  • In UX you have to base your decision on experience and common sense when data is not available. It's nice when you have data, but it's usually expensive. Commented Dec 9, 2014 at 14:50

You may also be interested in the readability of the font your planning on using. There is some good research available in this white paper by MIT and others. They focus on the font characteristics of open shapes, ample character spacing, unambiguous forms and varying proportions to increase readability.


  • Can you provide a summary of the results from that whitepaper? If it's just a link to it then the link could expire at some point and this post would then become worthless. Use the link to the paper as the citation, but put the relevant information into the actual answer itself.
    – JonW
    Commented Dec 4, 2014 at 10:43
  • Interesting, but since the paper only concerns humanist vs square grotesque it's a bit limited. I will check it out and see if we can get some further pointers from it.
    – NiklasJ
    Commented Dec 4, 2014 at 11:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.