Normative dependency on CSS3 Fonts in WOFF 1.0

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