WD-css3-fonts-20020802 comments

Following are comments the CSS3 fonts working draft,
<http://www.w3.org/TR/2002/WD-css3-fonts-20020802/>.



[In General]


The term "font decoration" is used too broadly.  The 'font-effect'
property and the 'font-smooth' property are not, in a normal sense,
about font decoration.  I suggest renaming section 4 as "Other font
properties" and finding new terms in the other uses of "font
decoration".



1. Dependencies on other modules


"Values and Units" and "Syntax" should be under dependencies.



3.2 Font family: the 'font-family' property


"Name: 	'font-family'
Computed value:	specified value"

The computed value ought to be "[<string>,]* [<string> | none]".  Why
allow keywords other than 'none' to remain?


The symbol <family-name> should have a clear syntactical definition in
this section.  I'm envisioning:

<family-name>
    <string> | <identifier>+


"If quoting is omitted, any whitespace characters before and after the
font name are ignored and any sequence of whitespace characters inside
the font name is converted to a single space."

What happens with the following?
font-family: Very\ \ \ Spacey;
Does "Very Spacey" match?  Does "Very   Spacey" match?  I say that
whitespace characters in a keyword may not be collapsed and so
"Very   Spacey" matches while "Very Spacey" does not match.



3.3 Font styling: the 'font-style', 'font-variant', 'font-weight' and
'font-stretch' properties

I would like a 'font-style' value that would toggle between 'normal' and
'italic'.  I would hesitate to suggest this feature at such a late
juncture except for my belief that the feature is easily implementable.


"Insofar as this property causes text to be transformed to uppercase"

May the 'font-variant' property affect the underlying codepoints?  From
the repeated references to glyphs, I would say not, but a statement in
the specification would be most helpful.


"Name: 'font-weight'
Computed value: specified value"

This is clearly incorrect for the relative keywords 'bolder' and
'lighter'.  I advocate that even the keywords 'normal' and 'bold'
compute to 400 and 700, respectively.


"Name: 'font-stretch'
Computed value: specified value"

This is clearly incorrect for the relative keywords 'wider' and
'narrower'.



3.4 Font size: the 'font-size' and 'font-size-adjust' properties


"Name: 'font-size'"
"Computed value: <absolute-size> or <length>"

Why is <absolute-size> allowed as a computed value?  The
<absolute-size>, despite its name, is relative: relative to the user
agent settings.  All font sizes should compute to <length>.


"This property indicates the desired height (and width) of glyphs from
the font."

This statement could be misinterpreted to mean that the value of
'font-size' *is* the width of glyphs.


"For non-scalable fonts, the font-size is converted into absolute units
and matched against the declared font-size of the font, using the same
absolute coordinate space for both of the matched values."

This is unclear.  Does the first instance of "font-size" refer to the
computed value of the 'font-size' property?  It's just... really
unclear.


"An <absolute-size> keyword refers to an entry in a table of font sizes
computed and kept by the user agent. Possible values are:
[ xx-small | x-small | small | medium | large | x-large | xx-large ]"

Should there be a requirement that each table entry be larger than the
previous table entry?


"The actual value [link to Cascading module] of this property may differ
from the computed value due a numerical value on 'font-size-adjust' and
the unavailability of certain font sizes."

I thought that 'font-size-adjust' would affect the computed value. 
After all, 'font-size-adjust' is entirely within the purview of the CSS
processor, whereas the unavailability of font sizes is the type of
external limitation which one normally associates with modified actual
values.  The compounding of 'font-size-adjust' is a problem to be
overcome, but not by meddling with the meaning of computed and actual
values.  There are implications here for every property that accepts
<length> values, especially 'line-height'.



3.5 Shorthand font property: the 'font' property


"Inherited: yes"

This should be "Inherited: see individual properties".


"The 'font' property is, except as described below, a shorthand property
for setting 'font-style', 'font-variant', 'font-weight', 'font-size',
'line-height', and 'font-family', at the same place in the style sheet."

The 'font' shorthand also sets 'font-stretch' and 'font-size-adjust',
both of which should be appended to the list of properties here.


"That is why this property is "almost" a shorthand property: system
fonts can only be specified with this property, not with 'font-family'
itself, so 'font' allows authors to do more than the sum of its
subproperties."

This is wrong.  The 'font' shorthand allows authors to achieve equal
results while knowing fewer details (not knowing, for example, what size
a system uses for caption fonts).  In no case does a 'font' declaration
set anything other than defined properties to defined values.  'Font' is
thus a thorough shorthand.



3.6 Generic font families


Add "User agents may map a generic family to a list of particular font
families, for example, in order to provide wide character coverage."



4.1 Font effect: the 'font-effect' property

I thought, pursuant to Chris Lilley's comments [1], that 'font-effect'
would be replaced by 'filter'.  What happened to that anticipated shift?

[1]  Chris Lilley.  "Re: box-shadow)ext-shadow', 'box-shadow', and
'font-effect' (was Re:   Proposal:  box-shadow)".  5 October 2001. 
<mid:3BBCECCF.47AADF47@w3.org> /
<http://lists.w3.org/Archives/Public/www-style/2001Oct/0038.html>.



4.2 Font smoothing: the 'font-smooth' property


"Name: 'font-smooth'"
"Computed value: specified value (except for initial and inherit)"

The keyword 'auto' and <absolute-size> values should compute to
<length>.


"always 
 always smooth text at any size."

This value is equivalent to a zero <length>.  I move to eliminate the
'always' value for this reason.  If 'always' is kept, though, the
equivalence should be noted.



4.3 Font emphasis: the 'font-emphasize-style' 'font-emphasize-position'
properties and the shorthand 'font-emphasize' property


I wish that these properties were named with "emphasis" in place of
"emphasize".  It feels more natural, at least to this English speaker.


"Name: 'font-emphasize'"
Inherited: yes"

It should be "Inherited: see individual properties".

Received on Thursday, 26 September 2002 22:30:11 UTC