W3C home > Mailing lists > Public > www-style@w3.org > April 2012

Re: [css21] 'font-family' should disallow 'inherit' in font names more strictly

From: Gérard Talbot <www-style@gtalbot.org>
Date: Tue, 24 Apr 2012 12:23:44 -0400
Message-ID: <9bb6521e7e26cfabcab3e5c63275ceef.squirrel@ed-sh-cp3.entirelydigital.com>
To: "Kang-Hao (Kenny) Lu" <kennyluck@csail.mit.edu>
Cc: "John Daggett" <jdaggett@mozilla.com>, "Tab Atkins Jr." <jackalmage@gmail.com>, "WWW Style" <www-style@w3.org>

Le Mar 24 avril 2012 5:30, Kang-Hao (Kenny) Lu a écrit :
> (12/04/24 14:02), John Daggett wrote:
>> Tab Atkins Jr. wrote:
>>

[snipped]

>>>> The keywords 'initial' and 'default' are reserved for
>>>> future use and must also be quoted when used _in_
>>>> font names.
>>
>> This is equally imprecise, it implies that only the keywords are
>> quoted when what you mean to say is that font family names
>> *containing* these keywords must be quoted.
>
> Either that or
>
>   | unquoted global keywords ('inherit', 'initial' and 'default') are
>   | not allowed inside <family-name>.


div {font-family: inherit;}

is allowed, is valid, is permitted and is tested:

http://test.csswg.org/suites/css2.1/nightly-unstable/html4/font-family-rule-004.htm



> I mentioned that I don't like this direction so my propose wording is
>
>   | If the value of 'font-family' is a single global keyword
>   | ('inherit', 'initial' and 'default'), UAs must not interpret it as
>   | <family-name> but the meaning of the global keyword.


... unless it is quoted:

"
Font family names that happen to be the same as a keyword value
('inherit', 'serif', 'sans-serif', 'monospace', 'fantasy', and 'cursive')
must be quoted to prevent confusion with the keywords with the same names.
"
http://www.w3.org/TR/CSS21/fonts.html#font-family-prop


> The implication is that 'font-family: foo, inherit' is still valid. This
> follows IE9.


div#a {font-family: foo, inherit;} /*  is invalid */

div#b {font-family: inherit, bar;} /* is invalid */

The CSS validator also reports these as errors:

1 	div#a 	Value Error : font-family Too many values or values are not
recognized : foo,inherit
3 	div#b 	Value Error : font-family Too many values or values are not
recognized : inherit,bar


Value:  	[[ <family-name> | <generic-family> ] [, <family-name>|
<generic-family>]* ] | inherit

"
A bar (|) separates two or more alternatives: exactly one of them must occur.
(...)
Brackets ([ ]) are for grouping.
(...)
An asterisk (*) indicates that the preceding type, word, or group occurs
zero or more times.
"
http://www.w3.org/TR/CSS21/about.html#value-defs

Gérard
-- 
CSS 2.1 Test suite RC6, March 23rd 2011
http://test.csswg.org/suites/css2.1/20110323/html4/toc.html

Contributions to CSS 2.1 test suite
http://www.gtalbot.org/BrowserBugsSection/css21testsuite/

Web authors' contributions to CSS 2.1 test suite
http://www.gtalbot.org/BrowserBugsSection/css21testsuite/web-authors-contributions-css21-testsuite.html
Received on Tuesday, 24 April 2012 16:24:21 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:52 GMT