WOFF 2.0 Implementation Report

2017-Dec 11

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.


Two types of decompression code have been tested:

  1. 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.

  2. 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.


Known decoders include:

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:

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.


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:

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


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 $