- 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