SMALL CHARACTERS. HUMAN DESIGN.
A little less
guesswork.
Is that an O or a 0? An I or an l?
Let’s make the codes we read and type a little kinder to the people using them.
An open-source idea. A big love of legibility.
01 / THE IDEA
Tiny characters.
Real frustration.
A product key. A reference code. That one character you’ve typed three different ways.
Anti Key List is a proposed alphabet for short codes. It leaves out some familiar look-alikes—like O, 0, I, l and 1—before the guesswork starts.
See what made the listWE’VE ALL BEEN HERE.
One unnecessary guessing game.
A different alphabet is a starting point.
The font, size and context still matter.
02 / THE CLARITY PLAYGROUND
Give your eyes
something to play with.
Compare a few troublesome characters.
Make a code. Check a sample.
Everything happens in your browser.
Same characters.
Different story.
Switch the font and see what your eyes notice.
A CLOSER LOOK
Zero and the letter O: all three are left out of the original set.
THE FONT IS PART OF THE CONVERSATION.A code from
the original set.
Every character comes from the same 53-character alphabet below.
Uses your browser’s cryptographic random source. Codes aren’t sent anywhere.
EXAMPLE CODE
Legibility is one design choice. A secure system also needs appropriate code length, storage and limits on guessing.
Does it make
the list?
Check whether a sample uses only the original alphabet. We’ll flag characters, never silently change them.
Use a sample, not a real password or private access code. Spaces and line breaks count, too.
Up to 2,000 characters. Case is preserved.
Enter a sample to see which characters belong to the set.
An experiment in legibility, not a universal accessibility standard. Try it with the people and typefaces you’re designing for.
03 / MEET THE ORIGINAL ALPHABET
A smaller set.
A thoughtful start.
53 characters. Numbers, letters and symbols, kept exactly as proposed in the original repository.
Numbers
4 charactersUppercase
20 charactersLowercase
19 charactersSymbols
10 charactersA proposal with room to grow. Pairs like C/c and 9/g remain in the original set. Some symbols can be hard to read aloud or enter on certain keyboards. Choose deliberately for your context.
Help improve it04 / MADE TO BE BUILT ON
Small change.
Better starting point.
Use a restricted alphabet when you create a reference code or identifier that someone will need to read and retype.
Keep names, messages and other human language open. This is an alphabet for generated codes, not a rule for what people can say.
Explore the project on GitHubimport secrets
alphabet = (
"3479ACDEFGHJKMNPQRTUVWXY"
"acdefghjkmnpqrtuvwy@#$%^&*_+="
)
code = "".join(
secrets.choice(alphabet)
for _ in range(12)
)The complete project includes Python, Java and browser examples. The code and alphabet are dedicated to the public domain under CC0.
A LITTLE PROJECT. A LOT OF HEART.
Good ideas are
made by people.
Annie Key is our little cheerleader for legibility.
And these are some of the people behind the idea.
Nano
The artist behind Annie’s bright eyes, blonde hair and heart-shaped glasses. Thank you for bringing her to life.
Aviituber (Avii)
The original project is dedicated to Avii, whose love of design and accessibility helped inspire the idea.
Braille Institute
Creators of Atkinson Hyperlegible, the font used throughout this site. Clear letterforms are part of the story.
