- From: Eric A. Meyer <eric@meyerweb.com>
- Date: Fri, 29 Oct 2010 12:26:37 -0400
- To: www-style@w3.org
At 8:27 AM -0700 10/29/10, Brad Kemper wrote:
>> Actually it would be to add " | initial | inherit", but I
>>understand your objection. I disagree that doing as you suggest is
>>a good idea, though. It's all too easy to say, as a reader
>>(whether you're a page author or an implementor), "Hmmm, what's the
>>syntax of 'animation-timing-function' again? Let me Google. Okay,
>>here it is." And there's no indication of 'initial' or 'inherit'
>>as possible values. Even if you heard one time that those values
>>are supposed to be accepted by all properties and remember that
>>fact, in the effort to understand the actual syntax of the property
>>it's easy to let the "universal" keywords slip your mind.
>
> It does seem to me that we should at least add "initial" to the
>blanket statement, like this:
>
># All properties defined in this specification also accept the
>'inherit' and 'initial' keywords (individually) as their value, but
>for readability it has not been listed explicitly.
A couple (maybe as many as a few) modules do say that. Others say
pretty much that except only about 'inherit', making no mention of
'initial'. Others don't say anything at all about either.
>Beyond that, I'm not so sure having universal values slip the mind
>is really that great a concern. How many times does a person need to
>be reminded before they just accept that they are truly universal
>unless noted otherwise?
I think the best answer I could give is a statement from an
implementor that the lack of explicitness lead to problems in a
development cycle. Which we've seen here already.
But to further respond to your question, how many times will a
person be reminded? I certainly wasn't reminded as I combed through
individual property definitions. If anything, by their very absence,
the message was reinforced that these values do not apply to all
properties. And I already knew about those keywords and their
asserted universality. How will someone who has not heard of them be
reminded? Again, very, very few people read an entire module from
front to back. They look up the properties.
>The statement at the top seems enough, since search engines don't
>usually link to anchors within the page. Maybe the heading could be
>"Values and Universal Values" so that you are reminded in the table
>of contents at the very top, but that sounds a little weird.
If we're going to go with blanket statements, which I still very
much oppose,then they absolutely need to be in a consistent place.
As things stand now, some of the modules with blanket statements put
it in the Introduction, but others put it elsewhere. Some put it at
the beginning of the "Properties" section (which some modules don't
even have) and others put it in the "Properties Index" section
(ditto).
Still, I'm of the opinion that making the expression of the
blanket statement fully consistent isn't really going to address the
problem. Sure, search engines don't point straight to properties
(yet), but that doesn't really matter. Here, let's take an exercise
I just tried:
0. Googled "css border-radius", as though I'd just heard about
this awesome new CSS property and wanted to know more.
1. Checked out the first result (a "plug in numbers and get CSS
back" tool). Probably most people would stop here, having gotten a
good feel for how the property works with pixels, but I assumed the
role of someone who wanted to get the full story on what this
property can do, and continued on to the next four Google results.
2. On http://www.css3.info/preview/rounded-border/ there is no
mention of 'inherit' or 'initial'. The syntax listed is
"border-*-*-radius: [ <length> | <%> ] [ <length> | <%> ]? " -- in
other words, what's given in the module's property definition.
3. On http://www.the-art-of-web.com/css/border-radius/ there's no
mention of 'inherit' or 'initial'. There's also no formal value
syntax given.
4. On http://www.w3.org/TR/2010/WD-css3-background-20100612/ (also
http://www.w3.org/TR/css3-background/), there is the blanket
statement that:
All properties defined in this specification also accept the
inherit keyword as their value, but for readability it has
not been listed explicitly.
This is found in section 2, "Values", which comes after the
table of contents. (And let's just assume that the text also
mentioned 'initial' instead of omitting it AND linking to the CSS2.1
definition of 'inherit' from a June 2010 document.)
Since I was looking for 'border-radius', I scrolled down until I
found the TOC, looked for the word 'border-radius', found it, clicked
the link, and went straight to the property definition. I thus
skipped past the blanket statement; and what's more, I did not see
the TOC entry that linked to the section that contains the blanket
statement. And had I been working in my usual flow instead of
pretending to be a "regular reader", I'd have hit cmd-F as soon as
the module loaded and searched for 'border-radius'. First hit: TOC
link. Click and I'm at the property definition, where there's no
mention of 'inherit' or 'initial'.
5. On https://developer.mozilla.org/en/css/-moz-border-radius
there's no mention of 'inherit' or 'initial'.
And that's all with a very, very popular property. So: how much
confidence should I have that readers will be reminded of these
universal keywords? How much less confidence should I have that
they'll even know about them in the first place?
--
Eric A. Meyer (eric@meyerweb.com) http://meyerweb.com/
Received on Friday, 29 October 2010 16:27:08 UTC