The Kept Legibility Index

The most legible font, measured.

We make a to-do app, and one day we discovered our headline font was unreadable on a lock screen. So we did something slightly unhinged about it: we built a torture chamber for typefaces, fed it 24 of them, including every famous “readable” font we could find, and measured what actually survived. This page is everything we learned, every assumption we made, and every number we got, including the ones that embarrassed us. The whole thing is open source, so you can check our work tonight.

24 typefaces12 conditions8 reps per cell5 controlsgithub.com/JessieSalas/kept-legibility-index

The short version

6-way
A top tier, honestly drawn
Every face whose confidence interval overlaps the leader is the tier: IBM Plex Sans, Public Sans, Legibility Sans, Kept Sans, Atkinson Hyperlegible Next, and Verdana. Two of the six are ours.
86.8
Verdana’s crowding asterisk
It stays in the tier by the numbers, and set tight it reads nine to twelve points under every other tier member. Twenty years of “use Verdana” quietly assumed text has room.
92%
The deepest small-size floor
At 8 pixels, Legibility Sans reads 92% and meets the 90% criterion in 6 of 8 runs. Verdana reads 88% and meets it in 3 of 8; Kept Sans likewise. The margin is visible in the runs, and we publish them.
+1.3
Kept Sans beats the font it replaces
Kept’s interface font outreads Inter, the face it replaces, by 1.5 points; the interval on that gap grazes zero, so we call it ahead within error, and the full spread is published.

How a to-do app ended up running a font lab

This started as a bad afternoon. We had just shipped a beautiful headline serif across our whole app, the kind of font you pick because it makes screenshots look like a magazine, and then one of us glanced at a lock-screen widget from across a desk and could not read it. Not “squint a little” could not read it. Could not read it.

The normal move here is to shrug and pick Helvetica. Instead we got curious about a question that turned out to be surprisingly hard to answer with a straight face: which font is actually the most readable on a screen? Everyone has an opinion. Verdana people, Inter people, the dyslexia-font crowd, your one friend who says serifs are a psyop. What almost nobody has is a number, because running human reading studies across dozens of fonts costs a fortune, and the studies that exist test three or four faces at a time.

So we built the next best thing we could actually afford: a machine that reads the way screens fail. It renders the same words in every font, then blurs them, shrinks them, tilts them, inverts them, buries them in visual noise, packs them too tight, and washes out their contrast, and after each insult it asks an OCR engine to read what is left. Fonts that keep their letterforms keep their scores. Fonts that dissolve, dissolve measurably. Our beautiful headline serif came in dead last, twenty-fourth of twenty-four, and the three fonts we ship today exist because of everything else this machine taught us.

First principles: what legibility means here

Reading has mechanical preconditions before it has psychology. A reader, human or machine, must identify a letter at the angular size it lands on the eye, separate it from its neighbors, discriminate it from its lookalikes, and do all three through real optics: blur, contrast loss, inversion, projection, clutter. The battery measures each precondition directly. The size sweep is identification. A new tight-set condition is separation, because crowding, not acuity, is usually what limits reading. Adversarial codes plus an empirical confusion matrix are discrimination. The degradation cells are the optics.

And no, nobody reads 8-pixel text all day.Nominal size is the physical model of distance. Sixteen-pixel text read from twice as far subtends the same visual angle as eight-pixel text from here: the phone across the desk, the lock screen at arm’s length, the sign down the hall. The rasterized 8 px version also carries fewer pixels than distant 16 px text, so the test is strictly harder than distance viewing, which makes every threshold on this page conservative. A font’s small-size threshold is its distance budget. What this index still does not measure: reading speed, comprehension, comfort, taste, or anything about any human population. Machine legibility, stated exactly.

The method

The setup is simple enough to explain over coffee. We render the exact same words in every typeface, at the same sizes, then damage every image the same way, and ask Apple’s Vision text recognizer, the thing behind Live Text on your iPhone, to read it all back with its dictionary turned off. The score is just how many characters it got right. Eight runs per cell so no font gets lucky, identical images and shuffle seeds for everyone, and every raw run published so you can catch us if we slip.

The twelve conditions: body text at 9 and 12 px, both under blur, a hard downscale, a keystone warp, inverted polarity, a bright cluttered background, adversarial codes straight and downscaled, and the two v3.1 additions: crowded, body text at tight leading and tracking, and low-contrast, gray-on-white the way interfaces actually style secondary text.

The second number:a size sweep from 6 to 16 px gives each font its “legible down to” figure, the smallest size holding 90% accuracy. Ranks blur inside error bars; thresholds do not.

The same words rendered at 9 pixels with blur in Verdana, Kept Sans, Numen Title, and Instrument Serif. The first three stay readable, Instrument Serif dissolves.
benchmark crops, 9 px plus blur, upscaled with no smoothing. three faces hold, the display serif dissolves

The Kept Legibility Index

ranktypefaceaccuracyaccuracy barcrowdedlegible at
T1IBM Plex Sans96.5%99.39px
T1Public Sans96.5%98.79px
T1Legibility Sans✓ ours96.4%97.28px
T1Kept Sans✓ ours96.3%96.49px
T1Atkinson Hyperlegible Next96.0%99.39px
T1Verdana95.6%86.89px
7Helvetica Neue95.4%98.59px
8Figtree95.2%94.19px
9Noto Sans95.2%87.29px
10Arial95.2%95.19px
11Source Sans 395.0%98.49px
12Roboto94.9%94.49px
13Charter94.8%99.39px
14Inter94.8%90.810px
15Lexend94.7%84.89px
16Atkinson Hyperlegible94.4%90.59px
17Numen Title✓ ours94.2%79.59px
18Georgia94.0%91.710px
19Comic Sans MS93.7%66.59px
20Andika93.3%60.89px
21SF Pro92.7%90.311px
22OpenDyslexic92.3%83.89px
23Times New Roman90.2%87.711px
24Instrument Serifreplaced82.0%79.212px

protocol v3.1 · accuracy = mean character accuracy across twelve conditions, 8 reps each · T1 = top tier, differences under a point are ties · crowded = the tight-set cell · legible at = smallest size holding 90% in the 6 to 16 px sweep · full per-repetition data: JSON · rerun it: the harness

Read it in tiers.T1 marks every face whose confidence interval overlaps the leader’s, the rule set before the table was made, and by that rule Verdana stays in the tier: its wide interval is itself a finding, driven almost entirely by the crowding cell. The profiles separate what ranks cannot: Legibility Sans holds the deepest small-size floor, Plex and Atkinson Next take the crowding cell, Kept Sans carries a brand while keeping tier, and Verdana wins clean 9 px text outright while reading nine points under the tier at tight setting.

So, what is the most readable font?

If you came here from a search box, here is the straight answer, with the caveats attached where you can see them. By our measurements, the most legible screen fonts are a six-way top tier: IBM Plex Sans and Public Sans at 96.5%, our own Legibility Sans at 96.4%, Kept Sans at 96.3%, Atkinson Hyperlegible Next at 96.0%, and Verdanaat 95.6%. The differences inside that tier are smaller than our error bars, so anyone who tells you one of them is “the winner” is selling something. What we can say precisely: if your text gets tiny, Legibility Sans held 90% accuracy at 8 pixels and nothing else did; if your text gets dense, avoid Verdana, which loses nine to twelve points to every other tier face when lines are packed tight.

And a distinction worth thirty seconds of your life: researchers use readability for how hard a text is to understand and legibility for whether you can make out the letters at all. We measure legibility, with a machine, and we say so everywhere, because the fastest way to lose your trust would be to pretend a robot can tell you what is comfortable for your eyes. What it can tell you is which letters survive being small, blurry, crowded, and washed out, and that turns out to be the part a font can control.

The fonts built to be read, measured

Every famous legibility project we could license sits in this table, measured under the same rules. The results deserve plain statement, with respect: these are serious projects, and several of them taught us the moves we used.

Atkinson Hyperlegible Next, 96.0, top tier.The Braille Institute’s engineering is the real thing; it is the chassis Legibility Sans is built on, and its crowding cell (99.3) is the best in the index. IBM Plex Sans and Public Sans, 96.5.The quiet finding of this run: a corporate house font and the U.S. government’s default are world-class screen faces, and nobody markets them that way. Lexend, 94.7. Built around reading-proficiency research; strong mid-table here, hit hard by tight setting (84.8). Its claims are about human reading speed, which this index does not measure, so the two results do not contradict.

Comic Sans MS, 93.7. The folk recommendation for dyslexic readers measures respectably at clean sizes and collapses when crowded (66.5). OpenDyslexic, 92.3.The machine result, stated flat: solid at clean sizes, 58.6% under 9 px blur in the v3 archive. Separately, controlled human studies (Wery & Diliberto 2017; Kuster et al. 2018) find no reading advantage for it; our machine number neither confirms nor contradicts them, because the two measure different things. Andika, 93.3. SIL’s literacy face is drawn for beginner readers at generous sizes, and its crowding cell (60.8) says exactly that: use it the way it was designed to be used, spacious and large. None of these results is a claim about any human reader; they are what a machine recovers under stress, published so the projects themselves can rerun and argue.

The controls

The holdout.Our fonts were tuned against this benchmark, so twenty words and four codes were held out of every design loop and run once against final binaries. The test of overfitting is the gap between a font’s main-corpus and holdout cells: for every face of ours that gap is small and runs in both directions, which is what honest generalization looks like. The confusion matrix.New in v3.1: the reader’s actual substitution errors, accumulated per font from the alignment. The residual errors are the same three pairs for every strong face, I to 1, O to 0, l to 1, which is what the floor of this task looks like, and they match the human confusion literature. Pseudowords and matched x-height carry over from v3 in the dataset: scrambling the lexicon costs 0 to 9 points, typically 2 to 4, and no font changes tier; equalizing x-height converges the sturdy faces and leaves the fragile ones fragile.

typeface · holdout corpus9px9px blurcodescodes down
Verdana98.9%99.1%85.6%77.9%
Legibility Sans98.1%99.4%87.2%76.6%
Numen Title95.7%95.4%80.8%73.4%
Kept Sans95.9%96.1%89.7%86.9%
Inter91.5%92.6%87.5%53.5%

The reading behind the method

What this index is not

Nobody has earned “the most legible font, period,” including us. Published research finds different fonts win for different human readers, so a universal human ranking is not even coherent. What we have is narrower and more useful: a reproducible machine index anyone can run, extend, or attack, a protocol precise enough to hand to your own AI and rebuild from scratch, and a public repo with the peer-review-grade roadmap already written down.

If you run it and beat us, open an issue. We will update the table and say so.

Get the fonts, run the test

Kept Sans, Numen Title, and Legibility Sans are free and open under the SIL Open Font License 1.1. The zip has every weight in TTF and WOFF2; the repo has the harness, the OCR tool’s source, the corpus, and every raw number on this page.

Colophon · Kept Sans is built on Figtree by Erik Kennedy, with K, k, and the ampersand from Albert Sans. Numen Title is built on Fraunces by Undercase Type. Legibility Sans is based on Atkinson Hyperlegible Next by the Braille Institute and Applied Design Works. Instrument Serif still sets the mantra inside Kept, where it belongs. Formerly the Kept Readability Index; renamed because in the reading literature readability means text complexity, and precision is the point. Atkinson Hyperlegible is a trademark of the Braille Institute of America; our derivatives are independent and not endorsed. Earlier tables included Bear Sans, which measured excellently; it is another product’s embedded font, not a face a reader can license, so it now lives in the archived results only. Pipeline: fontTools, HarfBuzz, FreeType, skia-pathops, Apple Vision.

FAQ

Legibility, answered

What is the most legible font?

In our machine-reading index of 24 typefaces (the Kept Legibility Index, protocol v3.1), the top tier, drawn by our confidence-interval rule, holds six faces: IBM Plex Sans and Public Sans at 96.5%, Legibility Sans at 96.4%, Kept Sans at 96.3%, Atkinson Hyperlegible Next at 96.0%, and Verdana at 95.6%. At 8 pixels, Legibility Sans reads 92% and meets our 90% criterion in 6 of 8 runs, the only face that does. Verdana keeps its tier seat while reading nine points under every other tier member on crowded text.

Is Verdana still the most legible font?

At clean small sizes, Verdana still wins our cells outright, as it has won human studies since 2005. But in the crowding condition, tight leading and tracking, the way dense interfaces actually set text, it reads nine to twelve points under every other top-tier face, and its tier seat survives only because that one cell widens its error bars. Legibility built for the 1990s screen is not the whole of legibility.

Is serif or sans serif more legible?

Neither category wins. Charter, a serif, posts one of the best crowding scores in the index, while Times New Roman needs 11 pixels to cross 90% accuracy. Faces drawn for screens, with a large x-height, open counters, and distinct I, l, and 1, beat faces drawn for print in both categories.

What is the most legible font for small text?

In our size sweep, Legibility Sans held 90% character accuracy down to 8 pixels, the only typeface tested that did. Small nominal size is really a distance model: 16 pixel text read from twice as far lands on your eye as 8 pixel text, so a deeper small-size threshold is a bigger distance budget.

What about fonts designed for dyslexia or accessibility?

We measured them under the same rules, with respect: Atkinson Hyperlegible Next reaches the top tier, and its crowding score is the best in the index. Comic Sans MS, the folk recommendation, measures respectably at clean sizes. OpenDyslexic trails, consistent with published human studies that find no reading advantage. None of our numbers is a claim about any human reader.

What is the best font?

There is no single best font, and anyone who says otherwise is skipping the caveats. The best font depends on the job: for dense interfaces and small text, our measurements favor IBM Plex Sans, Public Sans, Legibility Sans, Kept Sans, and Atkinson Hyperlegible Next, which finished in a statistical tie at the top of the Kept Legibility Index. For text that must survive being tiny, Legibility Sans held 90% accuracy at 8 pixels, the only face we tested that did. For headlines, a sturdy low-contrast serif like Numen Title or Charter survives shrinking far better than fashionable display serifs.

What is the most readable font?

Strictly, readability is about the text (how complex the writing is) and legibility is about the letters (whether you can make them out). If you mean legibility, which is what most people typing this question mean, our machine-vision index of 24 typefaces puts IBM Plex Sans, Public Sans, Legibility Sans, Kept Sans, Atkinson Hyperlegible Next, and Verdana in a statistical tie at the top, with Legibility Sans holding the deepest small-size floor at 8 pixels. All three of our fonts are free to download, and so is the benchmark, so you can rerun the whole thing yourself.

What font should I use for my app or website?

For interface text: any top-tier face from our index works, and Kept Sans, Legibility Sans, IBM Plex Sans, and Public Sans are all free. If your UI sets text small or dense, weight the crowding column: Verdana and Lexend drop hard there, while Plex, Atkinson Next, Charter, and Source Sans 3 hold. For headlines, use a display face at display sizes and never below 12 pixels; our data shows high-contrast display serifs losing close to half their letters at 9 pixels.

Are Kept's fonts free to download?

Yes. Kept Sans, Numen Title, and Legibility Sans are released under the SIL Open Font License 1.1, with every weight and web files in the download on this page. The benchmark itself is open source at github.com/JessieSalas/kept-legibility-index.