Go to main content directly
Boris Schapira
  • Writings
  • About
  • Bookmarks
  • disponible en français fr

Incremental Font Transfer, an opportunity for Asian web fonts

Oct. 23, 2024 disponible en français

From a French perspective, Asian languages such as Chinese, Japanese, and Korean, along with others that utilize complex scripts, often encompass a broad range of characters. While this diversity is culturally fascinating, it poses significant challenges when selecting a web font. The potential for large file sizes can result in slower loading times, particularly on mobile devices or in regions with limited internet connectivity.

To give you an order of magnitude of the weight difference, this is the latin-extended subset:

Conclusion: the median font file with Latin-extended subset of (395) characters should be a little under 20K. If you look at your network requests and your font is much larger, well there’s work for you to do. ”How many bytes is “normal” for a web font: a study using Google fonts”, Stoyan Stefanov

And this is for Chinese:

Within one Chinese font type, the smallest standard font contains 6,763 characters. A Japanese font type called Hanazono has 87,791 characters. A typical Chinese font file size is usually at least 5MB, some times can be over 20MB. ”Chinese Typographic Design”, Hynuza

As a result, it is common to refrain from using web fonts for web pages that are accessible online in this region.

Optimization is still possible. One effective method is subsetting, which involves creating a “subset” of a font—a file that includes a customized (and typically limited) selection of glyphs. But even with basic high school Chinese, we would need a minimum of 3,000 characters.

I was aware that streaming fonts was not possible, but a recent post from Anthony on the Web Performance Slack caught my attention. He was promoting a new draft specification specifically designed for that purpose.

Without this technology, a browser needs to download every last byte of a font before it can render any characters using that font ”Incremental Font Transfer”, W3C Working Draft

The idea is to create a font face that can be segmented into an initial load, efficiently subsetting what’s critical, then add patches that complete the font along the way. Lazy-loading, but for typefaces.

This initial iteration, once (and if) implemented in the browsers, has the potential to unlock significant opportunities for Asian markets. I’m excited, even if I’m not looking forward to mastering font descriptors such as size-adjust or ascent-override to effectively manage the user experience during the subsequent loading of thousand-glyph patches!

If you’re a Githuber and detected a mistake, please submit a modification of the source code or open an issue.

Previous:⇠
Next:⇢

Categories

  • Newest
  • web
  • citizen
  • dad

Find me on Github, LinkedIn, Mastodon (perso) et Mastodon (pro).
Static website compiled by Jekyll, propulsed by Netlify and Cloudinary.
Subscribe to the RSS feed