Intent to Ship: Open Font Format avar2 text shaping and glyph rendering

99 views
Skip to first unread message

Dominik Röttsches

unread,
Mar 24, 2026, 9:57:03 AM (12 days ago) Mar 24
to blink-dev
Contact emails
dr...@chromium.org

Explainer
https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md

Specification
https://www.iso.org/standard/87621.html

Summary
Version 2 of the avar (Axis Variations) table enables font designers to create variable fonts with better control over interpolation. While the original variable font spec handles axes independently, avar2 allows axes to influence one another. 

This leads to fonts that are easier to use for content authors to use, and enable compact storage. 

Support for this feature in Blink means at the core, activating a compile flag in HarfBuzz that processes the version 2 additional fields of the avar table to extend axis variations processing.

Avar2 works by using the same familiar concepts of font variations, but applying the variable delta values to the design axis specifications itself.  Plus, it allows doing this over a range of multiple axes. 

As an example, it allows the creation of "meta sliders" which control multiple variation axes at once, alleviating the user from fine-tuning and finding a useful corner of the font's design space. 

Avar2 gives font designers better control over the usable variation space of their font, and allows coordinating the adjustment of design axes across several axes. By defining the relationships between axes mathematically within the avar version 2 table, fonts can achieve complex designs with fewer masters, leading to smaller file sizes, because the interpolation is stored more efficiently.

Blink component
Blink>Fonts

Web Feature ID
font-variation-settings

Motivation
Provide interoperability for this new feature of the of the Open Font Format font standard.

Initial public proposal
No information provided

TAG review
Not needed, as it is not a W3C spec, but ISO/OFF spec.

TAG review status
Not applicable

Goals for experimentation
None

Risks


Interoperability and Compatibility
Low, Safari and FireFox have shipped the feature. The change to add this feature adds WPT tests that perform basic interop tests which Safari and FireFox seem to handle correctly.

Gecko: Shipped/Shipping Tests show that avar2 support is present in FireFox. Shaping and glyph variations work (tested on Linux).

WebKit: Shipped/Shipping Tests show that Safari ships avar2 by means of support in the OS' CoreText libraries. Avar2 shaping and glyph variations work.

Web developers: Positive

Other signals: Google Fonts as an internal stake holder is keen on having this feature available on the web for optimising future fonts.

Activation
With the avar2 font-tech feature definition in https://drafts.csswg.org/css-fonts-5/#font-technologies-formats it is possible for authors to implement graceful degradation. Only if the UA understands the technology(avar2) attribute, it would load and use such a font.

Security
We pass all avar2 web fonts to Fontations, which actually increases security over using system rasterizers.

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

No specific WebView risks.


Debuggability
Not applicable here, DevTools does not descend into sub features of Open Font Format or OpenType fonts and their activation.

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
Covered by several WPT tests added as part of enabling avar2.

Flag name on about://flags
No information provided

Finch feature name
No information provided

Non-finch justification
It is not possible to have a cleanly isolating RuntimeEnabledFeature flag for the launch of this feature. The tech(avar2) support can be gated, which controls whether the UA selects an avar2 font if it is tagged as such.
HarfBuzz (where shaping support for avar2 is implemented) only allows this as a compile time feature. Fontations (where glyph rendering support for avar2 is implemented) has no switch and we were already shipping glyhph variant support for this feature when switching to Fontations.


Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://crbug.com/40246300

Measurement
Blink.Fonts.VariableFontsRatio metric measures different font format's instantiation ratios. This covers avar2 and shows the proportion of avar2 fonts among all web fonts.

Availability expectation
Across browsers.

Estimated milestones
Shipping on desktop148
Shipping on Android148
Shipping on WebView148


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

No information provided

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5169590743203840?gate=6513397493530624

This intent message was generated by Chrome Platform Status.

Dominik Röttsches

unread,
Mar 24, 2026, 10:27:26 AM (12 days ago) Mar 24
to blink-dev, dr...@chromium.org
> Specification
https://www.iso.org/standard/87621.html

As for specification details,  avar2 is part of the draft of the 5th edition draft, ISO/IEC FDIS 14496-22 . https://www.iso.org/standard/87621.html in Section 7.3.1. avar.

Dominik Röttsches

unread,
Mar 25, 2026, 5:46:01 AM (11 days ago) Mar 25
to blink-dev
Philip asked me a few questions, here are the details:

Tests:

The new WPT tests are in the CL: https://crrev.com/c/7692195
These are newly added to WPT, but have been manually verified in Firefox on Linux and Safari on Mac and confirmed to show behavior that indicates full support for Avar2.

Signals:

Web developers: Positive

This should be "Neutral" instead. I filled this field initially, but then moved to comment on  
Google Fonts as an internal stake holder is keen on having this feature available on the web for optimising future fonts.

To "Other Signals", as we would not count Google Fonts under "Web Developers".


Philip Jägenstedt

unread,
Mar 25, 2026, 6:26:52 AM (11 days ago) Mar 25
to Dominik Röttsches, blink-dev
LGTM1, I think this is a very straightforward case given that it's already supported in Firefox and Safari. Thank you for verifying that locally and adding the tests to WPT!

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAN6muBupFz-R1R%2BkW4dB0M74dS4AV%3D%3DZppQkP3H147DJ6itUwA%40mail.gmail.com.

Yoav Weiss (@Shopify)

unread,
Mar 25, 2026, 7:08:20 AM (11 days ago) Mar 25
to Philip Jägenstedt, Dominik Röttsches, blink-dev

Mike Taylor

unread,
Mar 25, 2026, 8:48:41 AM (11 days ago) Mar 25
to Yoav Weiss (@Shopify), Philip Jägenstedt, Dominik Röttsches, blink-dev

Dominik Röttsches

unread,
Mar 25, 2026, 10:52:41 AM (11 days ago) Mar 25
to Mike Taylor, Yoav Weiss (@Shopify), Philip Jägenstedt, blink-dev
Thanks all, for the quick approval. 
Reply all
Reply to author
Forward
0 new messages