This report documents the overall implementation status and detailed test results for WOFF 2.0.
As WOFF2 is a compressed format, two operations can be tested: Compression, and Decompression.
Decompression
Two types of decompression code have been tested:
A decoder takes a WOFF 2.0 stream and decodes it to a TrueType or OpenType font or font Collection. Testing assumes that the decoded font is available for inspection and comparison with a correct font.
A user agent, most of which are Web browsers, take a WOFF 2.0 stream, decode it, and use the result to display a Web page. The decoded font may or may not be available for testing and inspection, so only the rendered result is tested.
Decoders
Known decoders include:
- Google WOFF2 library (in C++)
- fonttools (in Python)
- OpenType Sanitizer (in C++)
Opentype by Bram Stein is a JavaScript parser for OpenType files, including WOFF and WOFF2. woff2parser by Andy Jansson is another JavaScript parser.
Test Plan for Decoders | Decoder Tests (source) | Test Results
User Agents
Browsers known to implement WOFF 2.0 include:
- Google Chrome (36+), Chrome for Android(36+), Opera (24+), Samsung Internet (4+), QQ Browser (1.2+) (all Blink-based)
- Mozilla Firefox (39+)
- Microsoft Edge (14+)
- Safari (10+, on Sierra or later) and iOS safari (10.2+)
The support on iOS and on MacOS appears to be platform-level rather than at the browser level. All user agents appear to use the Google WOFF2 library; Chrome and Firefox also use the OpenType Sanitizer.
The remaining nonpassing tests are believed to be fixed by this change to the Google WOFF2 library, but this update has yet to propogate to current browser versions.
Test Plan for User Agents | User Agent Tests (source) | Test Results.
Compression
Authoring Tools
Authoring tools, (which may be command-line, gui-based, or Web services) take an OpenType or Truetype font or font Collection and emit a valid WOFF 2.0 stream.
Known implementation are:
- Google WOFF2
- DTL OTMaster 6
- Glyphs 2.0
- Adobe TypeKit
- Font Squirrel
- Everything Fonts converter
- OnlineFont Converter
FontForge has not yet added WOFF 2.0 support. FontLab intend to add WOFF2 support to TransType and has added it to the preview of FontLab VI.
Because browsrs currently do not support TrueType Collections or OpenType Collections, in practice authoring tools avoid generating WOFF2 Collections. Font Squirrel rejects collection files; Everything Fonts accepts them, but generates a set of individual WOFF2 files (one for every font in the collection). In the future, as browsers implement collection support, authoring tools might change to generating WOFF2 Collections.
ttf2woff is a Node wrapper for the Google WOFF2 library.
Test Plan for Authoring Tools | Authoring Tool Tests (source) | Test Results
Format
Fonts in WOFF 2.0 format may be tested for validity, with a WOFF2 validator.
Test Plan for WOFF 2.0 File Format | Format Tests (source)
Chris Lilley
$Id: Implementation.html,v 1.6 2017/12/11 20:55:07 clilley Exp $