- From: Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>
- Date: Tue, 10 Apr 2012 02:05:10 +0800
- To: WWW Style <www-style@w3.org>
(I'll send a strawman proposal for a new definition of 'cycle()' soon,
but this is a small issue for the current definition so I'll just raise
it now.)
The description of cycle() says
# The value returned by ‘cycle()’ must be determined by comparing
# the inherited value I (the computed value on the parent, or, for
# the root, the initial value) to the computed values Cn returned by
# the n-th argument to ‘cycle()’. For the earliest Cn such that
# Cn = I, the value returned by cycle is Cn+1. However, if this Cn is
# the last value, or if there are no Cn that equal I, the computed
# value of the first value is returned instead.
First of all, I think this meant to say s/the initial value/the computed
value of the initial value/. Secondly, ignoring shorthand properties at
the moment, for even longhands the current description seems
underspecified for cases when cycle() is used with other values. For
example, I interpret the current description as follows:
cascaded value -> computed value (take, say, 'content' as an example)
"x" -> "x"
cycle("x", "y") "z" -> "y" "z"
cycle("x", "y") "z" -> "x" "z"
cycle("x", "y") "z" -> "x" "z" (because "x" "z" != "x")
...
I don't think authors would expect this, so the above description should
be changed to explain that Cn is the whole value, like
| The value returned by ‘cycle()’ must be determined by comparing
| the inherited value I (the computed value on the parent, or, for
| the root, the initial value) to the computed values Cn formed by
| using the n-th argument of each ‘cycle()’ in the same
| declaration. For the earliest Cn such that Cn = I, the value
| returned by each ‘cycle()’ in the same declaration is the n+1-th
| argument. However, if this n is the length of the arguments, or if
| there are no Cn that equal I, the first value is returned instead.
with
| A declaration with two ‘cycle()’ of different number of arguments
| is invalid.
. Otherwise, the spec should just say that cycle() cannot be used with
other values (which doesn't seem bad too because there might be other
interesting way to interpret a declaration with multiple cycle()) .
By the way, does
# The ‘cycle()’ notation is not allowed to be nested; nor may it
# contain ‘attr()’ or ‘calc()’ notations.
mean that cycle() is valid as a default value of attr()? I am not quite
sure what exactly "nested" means here.
Cheers,
Kenny
Received on Monday, 9 April 2012 18:05:38 UTC