- From: Chris Lilley <chris@w3.org>
- Date: Thu, 7 Jun 2012 20:01:30 +0200
- To: WOFF Working Group <public-webfonts-wg@w3.org>
Hello, Looking over the WOFF specification at the normative references, all are stable except for one - CSS3 Fonts, currently Working Draft. This means that WOFF 1.0 must explain why it references an unstable spec (to go to Proposed Rec) and cannot move to Rec (until CSS3 Fonts is at Proposed Rec). Besides passing mentions (in the changes appendix, related to now-removed at-risk features) there are two normative references in section 2: general Requirements. http://dev.w3.org/webfonts/WOFF/spec/#General The primary purpose of the WOFF format is to package fonts linked to Web documents by means of CSS @font-face rules. User agents supporting the WOFF file format for linked fonts MUST respect the requirements of the CSS3 Fonts specification ([CSS3-Fonts] Section 4.1: The @font-face rule). In particular, such linked fonts are only available to the documents that reference them; they MUST NOT be made available to other applications or documents on the user's system. Dissecting this: first we have an introductory statement about the primary purpose. This does not use normative wording but does imply that secondary purposes could exist (e.g. other linking mechanisms, non-Web use). The first conformance statement is flagged for user agents, and is rather vague http://dev.w3.org/webfonts/WOFF/spec/#conform-css3font it basically says that if you use @font-face (defined in CSS3 Fonts) then you must conform to CSS3 Fonts. This seems well-intentioned but tautological and rather redundant (similarly if you use HTML then conform to the HTML spec, if you fetch using HTTP then conform to the HTTP spec, HTTP runs over TCP/IP so conform to that spec, and so on). Looking at the test plan for user agents http://www.w3.org/Fonts/WG/wiki/TestPlan-UserAgent there is no discussion of this requirement, which I believe is because the current section 2 was originally part of the introduction and was non-normative (despite using MUST). We then noticed the normative wording so moved it out of the intro to a new section, but did not update the test plan or the test suite. Testing of this requirement would be possible, it basically means 'pass the CSS3 Fonts test suite'. I believe that this originally introductory prose on the aim and scope of the specification was incorrectly promoted to a testable assertion. The place for such a requirement is surely in the CSS3 Fonts spec itself, not here. The second conformance statement is also flagged for user agents and is more specific http://dev.w3.org/webfonts/WOFF/spec/#conform-css3font-available This statement is the sole survivor of the Origin section (same-origin, doc-origin, CORS) most of which was marked as at-risk in CR and then removed. CSS3 Fonts isn't specifically cited there. The test plan does cover this http://www.w3.org/Fonts/WG/wiki/TestPlan-UserAgent#css3font-available and describes how it might be tested. We don't have a test case http://dev.w3.org/webfonts/WOFF/tests/UserAgent/Tests/xhtml1/testcaseindex.xht Following the test plan, I made a quick test which consists of three html files - a wrapper and two files referenced through iframes. The wrapper has the metadata for test assertions, the boilerplate text on downloading fonts and telling whether the test passed, and the two iframe elements. Pass criterion is that 'PASS' is displayed *twice* The first referenced file is a copy of valid-001 with the metadata altered and the boilerplate removed. The second referenced file is the same as the first except the @font-face is also removed and P is changed to F. If the WOFF font is loaded (for example, if the browser applies any font it finds in the browser cache) then you will get FAIL. Here is the test http://dev.w3.org/webfonts/WOFF/tests/UserAgent/Tests/xhtml1/available-001.xht So far Firefox (15.0a1 nightly), Opera (12a) and Chrome (19) pass; IE9 fails. I don't have results for Safari or for IE10, and since this is an access test with a deliberately missing WOFF file, there is nothing for the validator to test. My conclusions from all this are that we should: a) add this missing test to the test suite, and update the implementation reports to add results for it b) change the first assertion by - removing the assertion markup - changing MUST to must c) Move CSS3 Fonts from the normative to the informative references section, as the changes at b) make it informative. -- Chris Lilley Technical Director, Interaction Domain W3C Graphics Activity Lead, Fonts Activity Lead Co-Chair, W3C Hypertext CG Member, CSS, WebFonts, SVG Working Groups
Received on Thursday, 7 June 2012 18:01:21 UTC