- From: L. David Baron <dbaron@dbaron.org>
- Date: Sat, 20 Dec 2014 13:35:25 -0500
- To: "Tab Atkins Jr." <jackalmage@gmail.com>, Sylvain Galineau <galineau@adobe.com>
- Cc: www-style list <www-style@w3.org>
- Message-ID: <20141220183525.GA19051@crum.dbaron.org>
On Tuesday 2014-05-27 14:10 -0700, Tab Atkins Jr. wrote: > At the F2F, we agreed to some principles for handling <custom-ident> > when it can't be disambiguated positionally, based on the 'animation' > shorthand. Basically, values should be assigned to the longhands > greedily, with the <custom-ident> longhand having the lowest priority > when claiming a value. That way, "animation: ease-in linear;" gets > parsed with a timing-function or "ease-in" and a name of "linear". > > This works fine when the value spaces that <custom-ident> might clash > with contain *only* idents, but it's less clear what to do when they > can contain other things, like functions. In particular, how should > we parse "animation: ease-in steps(2);"? Should we greedily assign > ease-in to timing-function, and then fail to parse the property when > we hit the function? Or should we allow new values to reassign > things, so we get a name of "ease-in" and a timing-function of > "steps(2)"? > > The latter is basically the list-style behavior, where you can't tell, > upon seeing a "none", whether it should be assigned to list-style-type > or list-style-image until you see the rest of the property. On Wednesday 2014-05-28 00:23 +0000, Sylvain Galineau wrote: > Keeping track of animation shorthand parsing feedback in https://www.w3.org/Bugs/Public/show_bug.cgi?id=14805 On Friday 2014-12-19 11:34 -0800, Tab Atkins Jr. wrote: > Ping dbaron? We're trying to fix up V&U to match the intent expressed > here, but it's unclear how to handle this case. So I presume the face-to-face discussion in question was the part minuted in http://www.w3.org/mid/CADhPm3sD7HofSOrOw84CC7tgCqcOXwpq+0nN3P4sM5bKfbGygQ@mail.gmail.com with Subject: [CSSWG] Minutes Seoul F2F 2014-05-19 Part IV: Values and Units So, for a start, I don't think we should model other things on the 'animation' shorthand; it has a whole bunch of problems: * there are two times distinguished positionally, * it has a custom ident mixed with three keyword values, one keyword or function value, one keyword or number value, and two times, all distinguished only by order, and * animation-fill-mode and animation-name both take 'none' (in the latter case it's the non-custom value of the custom-ident) (Note that implementations that incorrectly allow unitless '0' times have quite a few more ambiguous cases.) I think that in general we should avoid greedy assignment by not needing it. If values of a shorthand are ambiguous in their assignment to longhands, the shorthand syntax should not allow those longhands to appear in any order. I'm inclined to think that there should be a note in the custom-idents section of the syntax module that specs should avoid falling back on greedy assignment whenever possible. However, we have a backwards-compatibility problem both with the 'animation' shorthand, and with 'list-style' resulting from the addition of custom counter styles. On the question you asked: it's certainly easier from an implementation perspective to reject values like: animation: ease-in steps(2); animation: infinite 2; by assigning the first value to animation-timing-function or animation-iteration-count and then rejecting the second value, even though the first value could have been the animation-name. I don't think there's much of an argument for tools or libraries for allowing such syntax, either, since they should tend towards the pattern of putting 'animation-name' last to avoid this set of problems. That said, it does feel inconsistent with the rest of CSS to reject a set of values that could reasonably be assigned to the longhands. I'm inclined to think that: (a) if we currently have good interop on the greedy behavior for 'animation', we should stick to it, because I don't think it makes 'animation' particularly worse than it is already (b) if we don't currently have interop, I don't have a strong opinion. -David -- 𝄞 L. David Baron http://dbaron.org/ 𝄂 𝄢 Mozilla https://www.mozilla.org/ 𝄂 Before I built a wall I'd ask to know What I was walling in or walling out, And to whom I was like to give offense. - Robert Frost, Mending Wall (1914)
Received on Saturday, 20 December 2014 22:43:40 UTC