logoalt Hacker News

lucb1elast Friday at 7:10 PM18 repliesview on HN

Where possible, I've stopped picking fonts that don't distinguish lowercase l and uppercase I. Words virtually always have redundancy (or context in the sentence) and it's fine in 98% of cases, but too often someone sends a token, password, name, or other string where you need to copy it out to another application to see it and just... why? Why bother?

I/O test for Sans Flex: https://snipboard.io/wXCQq5.jpg

It passes the O0 distinction but not the Il one

Example of a font that passes, Ubuntu: https://fonts.google.com/specimen/Ubuntu?preview.text=10%20I... (custom license but looks similar to GPL in that you can do what you want besides relicensing it as proprietary or removing credits)

Another one, Nunito Sans, using the Open Font License: https://fonts.google.com/specimen/Nunito+Sans?preview.text=1...

IBM Plex Sans is another Open Font License option: https://fonts.google.com/specimen/IBM+Plex+Sans?preview.text... (it has an unusual capital Q style though)


Replies

Brajeshwarlast Saturday at 3:43 AM

This is an Interface font, most suited for User Interfaces (Websites, Apps, etc). Almost all fonts that I have seen that distinguish the “O0 & Il” properly do not look good when used as an Interface font, but look good as an editor or something you do with it (Notes).

For instance, I set Inter[1] as my UI font in Obsidian, but I have set “Atkinson Hyperlegible Next”[2] as my Editor Font. I would gladly use such clean sans-serif fonts (Inter, Flex Sans, Geist, etc.)[3] because they are easy for the human eye to read quickly, even if there is a spelling error, and hence the distinction between the “O0 & Il” would not matter.

So, It Depends on the use case. “Atkinson Hyperlegible Next” is a fantastic, highly readable/recognizable font, but it will look pretty ugly when using it to design interfaces.

1. https://rsms.me/inter/

2. https://en.wikipedia.org/wiki/Atkinson_Hyperlegible

3. https://vercel.com/font

show 1 reply
apt-apt-apt-aptlast Friday at 8:49 PM

One would think that this would be a fundamental principle in font design, distinguishing letters from each other.

show 1 reply
jorvilast Friday at 8:29 PM

Almost no fonts do this by default and instead offer it as context alternate, but I feel a font should always use a dashed or preferably dotted zero. Zero being slightly skinnier than capital O is not enough for rapid visual clarity.

show 3 replies
parkersweblast Friday at 8:37 PM

Many fonts have a disambiguation option. Inter by default doesn't pass the I test - but it can be enabled.

Google Flex Sans supports font-feature-settings: "zero" - but doesn't seem to support lower-case l, upper-case I disambiguation.

worblelast Friday at 10:37 PM

Hello fellow Ubuntu font lover.

I have this set as my OS default and also forced for all webpages, I just find it so clear and easy to read. On the occasion that I have to browse the web without it, I don't struggle per-say, but I definitely find that I have to read slower, and find myself rereading words more often.

snuglast Friday at 11:41 PM

When I was in Italy, it took me far too long to realize on Google Maps that all the restaurants I was visiting started with "Il" and not the roman numeral two "II"

GaryBlutolast Friday at 8:51 PM

> I've stopped picking fonts that don't distinguish lowercase l and uppercase I.

Serif fonts solved this problem generations ago.

show 1 reply
munchlerlast Friday at 7:34 PM

That’s a lowercase “L” vs. uppercase “I” for those of you as confused as I was.

show 3 replies
3eb7988a1663last Friday at 9:21 PM

Not only must the il1 O0 series be distinguishable, but they need to stand on their own. If I only see one in isolation, can I know if that it must be a capital O and not a zero?

8cvor6j844qw_d6last Saturday at 3:45 AM

> stopped picking fonts that don't distinguish lowercase l and uppercase I

Strongly agree on this, Bitwarden previously used a font that made passwords that contains i (or was it I?) and l difficult to distinguish.

It seems they changed the fonts since the recent UI refresh.

show 1 reply
mytdilast Friday at 10:45 PM

I wonder why the Ubuntu and the IBM Plex Sans fonts use a different style "a" for italic vs non-italic. I like the Ubuntu font and have used it in the past.

chiefalchemistlast Friday at 10:06 PM

Lately I’ve become a fan of:

https://fonts.google.com/specimen/Atkinson+Hyperlegible

Mainly for its attention to detail. It’s careful to make it obvious when it matters. For example, O and 0, lower case L and 1, and others.

show 1 reply
dansolast Friday at 11:10 PM

One of the few unqualified improvements that “X” (aka Twitter) made was rendering the usernames in a font that has wings for the lowercase L

show 1 reply
dialogboxlast Friday at 10:43 PM

I also agree with you on the O0 I'll distinctions importance. So as google open-source it, someone can improved it freely.

show 1 reply
giancarlostorolast Friday at 8:53 PM

I had a manager who preferred monospaced font, it definitely made it easier in a lot of cases. I also notice a number of them make i l and I and 1 distinct enough.

show 1 reply
radleylast Friday at 9:30 PM

If the font doesn't support ligatures, it might as well be generated by AI.

thaumasioteslast Saturday at 12:31 AM

> Words virtually always have redundancy (or context in the sentence) and it's fine in 98% of cases, but too often someone sends a token, password, name, or other string where you need to copy it out to another application to see it and just... why?

I think the right answer here is to avoid including 1/I/l/O/0 in your tokens. For example, I'm pretty sure that Nintendo gift card codes can't contain those characters?

Marazanlast Friday at 9:53 PM

monofur - my monospaced programming font of choice for decades now has an almost psychotic dedication to glyph disambiguation, every character is exceedingly distinct.