*Contact emails*
[email protected]

*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
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EFonts%22>

*Web Feature ID*
font-variation-settings
<https://webstatus.dev/features/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
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
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 desktop 148
Shipping on Android 148
Shipping on WebView 148

*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
<https://chromestatus.com/>.

-- 
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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAN6muBvHRB4B%3Dg1LaSiVJvgfhC4%3D5ZX4R9-Cs83ZzMFnAJRjrg%40mail.gmail.com.

Reply via email to