- From: David Kuettel <kuettel@google.com>
- Date: Fri, 3 Oct 2014 10:38:28 -0700
- To: Jonathan Kew <jfkthame@gmail.com>
- Cc: "Levantovsky, Vladimir" <Vladimir.Levantovsky@monotype.com>, Chris Lilley <chris@w3.org>, WebFonts WG <public-webfonts-wg@w3.org>
- Message-ID: <CAAYUqgFuveAhXg7z4Ubaz2P7bi99Nx5DuigBtbxUHjTb8=EzSQ@mail.gmail.com>
On Fri, Oct 3, 2014 at 9:34 AM, Jonathan Kew <jfkthame@gmail.com> wrote: > On 3/10/14 17:20, David Kuettel wrote: > >> On Fri, Oct 3, 2014 at 9:08 AM, Levantovsky, Vladimir >> <Vladimir.Levantovsky@monotype.com >> <mailto:Vladimir.Levantovsky@monotype.com>> wrote: >> >> Great, thank you Jonathan and Chris! >> >> >> Wow, that is absolutely fantastic! Great work Jonathan! >> >> We will target enabling WOFF 2.0 support for Firefox (Gecko 35+) for >> Google Fonts. >> >> > Thanks, David. > > Note that we are likely to ship this, initially at least, behind a runtime > pref, so you can't rely solely on the Gecko version to determine whether > WOFF 2 is supported. > Correct, our goal would be to aid in (and help accelerate) the initial verification prior to the full rollout. Our goal is to help, work across the industry and to Move the Web Forward. > > I think the proper approach for a webfonts service is to offer both WOFF2 > and WOFF [and EOT/TTF/SVG/anything else you care to provide] resources, > with the appropriate format hints in the @font-face rule, allowing the > browser to choose which resource to fetch according to its current > capabilities. > You are right, supporting web fonts *should* have been that simple, but in attempting to support all browser/versions has proved to be anything but. I wouldn't want to derail this tremendously exciting thread, but to elaborate... Paul Irish (and others) have cataloged many of the challenges in attempting to do so on this page: http://www.paulirish.com/2009/bulletproof-font-face-implementation-syntax/ With advanced features (such as unicode-range <http://caniuse.com/#search=unicode-range>) it becomes even harder (to impossible) to write one CSS snippet that works properly across all browsers/versions without significantly regressing the end-user experience. For example, there are browsers that simply download *all* of the referenced fonts, rather than the minimum required set. Given that a font with full pan-unicode language coverage can easily top 20MB+ (and given that rich pages typically use multiple-styles weights), one could quickly break the web. We are far from the goal of supporting all languages for each font, but definitely would like to get there in time. As with the initial WOFF 2.0 rollout for Chrome, we would definitely leverage a bulletproof recipe for Firefox 35+, e.g. first linking to the format('woff2') font file, followed by the format('woff') font file. > > Even once we ship with WOFF2 enabled by default (which may not be the case > in the first release where we ship the code), it'll still be possible for > users to disable it -- or for us to disable it in an update, e.g. if a > nasty security issue were suddenly found in the decoder -- and then we'd > want to fall back to requesting WOFF fonts. If a webfont service offers > *only* WOFF2, based on sniffing the browser version, webfonts would break > completely in this scenario, whereas offering multiple resources with > format hints provides a graceful fallback. Excellent points John, and we (across the working group) would all want to work closely together to navigate these together, esp. during the birth of WOFF 2.0. Longer term though, this does raise interesting issues in terms of conformance with the specification. In disabling key features (aside from security issues), would the browser continue to pass the conformance tests? I wouldn't know, but am eager to learn more. The same format negotiation principle does apply to the service/integration as well though. The service very well could opt not to convert the fonts into all formats -- which is largely the case today. Some web font services have already stopped converting the fonts to SVG, and similarly some browsers have already stated their intent to remove support for them (e.g. Chrome <https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/pYbbUcYvlYY>). For other reasons (e.g. bandwidth/cost savings, licensing, etc) services could opt to only support a few formats. As with anything, there are a lot of interesting trade-offs to consider... > > > JK > >
Received on Friday, 3 October 2014 17:39:16 UTC