[css3-fonts] Minor Comments IV


   # 4. Font Resources

The title of this section seems overly-generic; there are other
font resources that get used besides ones defined via @font-face,
i.e. the local ones on the system. Maybe come up with something
more specific to what the section is about?

   # The @font-face rule allows for linking to fonts that are
   # automatically activated when needed.

Suggest s/activated/retrieved/ since that's really the goal.
Local system fonts are also activated when needed, from my

  # In terms of the grammar, this specification defines the
  # following productions:

I suggest also prepending here a prose description of the
syntax, e.g.

   | The @font-face rule consists of the @font-face at-keyword
   | followed by a block of descriptor declarations.

  # only the last specified value is used, all prior values for
  # that descriptor are ignored.

s/specified value/descriptor declaration/
s/,/;/ (to fix run-on sentence)
s/prior values/declarations/

  # A given set of @font-face rules define a set of fonts
  # available to containing documents.

I'm not sure what this sentence is saying, but it doesn't make
much sense. What's a "given set" of @font-face rules? And since
when do CSS style sheets "contain" documents?

  # Multiple rules can be used to define a family with a large
  # set of faces.

You already said this in the first paragraph of the section.

  # When font matching is done fonts defined using these rules
  # are considered before other available fonts on a system.

This sentence does make sense. :)

   # Downloaded fonts are only available to documents that
   # reference them, the process of

Run-on sentence. s/, the/. The/

   # This would cause a security leak

In order to link this to the previous sentence, I suggest

   | However, this would cause a security leak

Also, I think these two sentences would be better pulled out
of the middle of this paragraph and put into a <p class=note>
right after it.

   # User agents which do not understand the @font-face rule
   # encounter the opening curly bracket and ignore forward
   # until the closing curly bracket. This at-rule conforms
   # with the forward-compatible parsing requirement of CSS,
   # parsers may ignore these rules without error. Any
   # descriptors that are not recognized or implemented by a
   # given user agent must be ignored. @font-face rules
   # require a font-family and src descriptor, if either of
   # these are missing the @font-face must be ignored.

Hm, all kinds of awkward. Try this?

   | This at-rule follows the forward-compatible parsing
   | rules of CSS. Like properties in a declaration block,
   | declarations of any descriptors that are not supported
   | by the user agent must be ignored. @font-face rules
   | require a font-family and src descriptor; if either of
   | these are missing, the @font-face rule is invalid and
   | must be ignored entirely.

I dropped the "User agents which do not understand" sentence
because that's generally how all at-rules parse, so I didn't
think it was necessary to state. If you want to keep it, I
suggest combining it with the next paragraph, something like
the following. Note the s/which/that/. ;)

   | Conforming CSS user agents that do not understand the
   | @font-face rule will, following the forwards-compatible
   | parsing rules [CSS21], ignore the entire rule from the
   | @font-face at-keyword to the closing bracket of the
   | descriptor block. Similarly, in cases where user agents
   | have limited platform resources or implement the ability
   | to disable downloadable font resources, @font-face rules
   | must simply be ignored, exactly as if they were unsupported;
   | the behavior of individual descriptors as defined in this
   | specification should not be altered.


   # Errors loading font data do not affect font name matching
   # behavior.

Took me awhile to guess what this meant, so maybe add a
clarifying phrase? Best I could come up with was

   | Errors loading font data do not affect font name matching
   | behavior; the font is still considered to exist if it
   | fails to load, it is just assumed to have no glyphs.

but maybe you can do better.

   # User agents that apply platform font aliasing rules to
   # font family names defined via @font-face rules are
   # considered non-conformant.

I have no idea what "platform font aliasing rules" means.
If font people are sure to know what it means, then cool.
If not, maybe give an example or something.


   # It is required, whether the font is downloadable or locally
   # installed.

s/It is required/It is required for the @font-face rule to be valid/

Also, I recommend adding the same "It is required" statement
to the font-family descriptor's description.

   # locally installed font face names

locally-installed (hyphen)

   # [ <uri> [format(<string>#)]? | <font-face-name> ]#

s/<uri>/<url>/g; also s/URI/URL/g

   # As with other URIs in CSS, the URI may be partial, in
   # which case it is resolved relative to the location of
   # the style sheet containing the @font-face rule.

This is covered in the definition of <url> in css3-values.
If you want to keep the sentence nonetheless, please at
least s/partial/relative/ for correct URL terminology.

   # local() can be used

Add <code>.

   # The locally installed <font-face-name> is [...]

I recommend

   | The <font-face-name> argument to the local() notation.

*** The following is a substantive issue. ***

Also, question: is it treated as a string between the parens
(very unusual for CSS) or is it treated as a real functional
notation (whitespace is trimmed)? I think it should be the
latter, and that the argument should be parsed and handled
exactly like a family name in font-family (minus the reserved
keyword concerns). I think that would be less confusing. In
which case, the wording describing the syntax here should
appropriately mirror that of font-family.)

*** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ***

   # Which is used

s/Which/Which name/, because I tripped over it and had to
reread the previous sentence otherwise.

   # Since localized fullnames should never match


   # A conformant user agent should never load



Received on Sunday, 19 May 2013 01:37:14 UTC