- From: Daniel Holbert <dholbert@mozilla.com>
- Date: Tue, 08 Jun 2010 09:54:28 -0700
- To: Chris Lilley <chris@w3.org>
- CC: Robert Longson <longsonr@gmail.com>, www-svg@w3.org, Jeff Schiller <codedread@gmail.com>
Hi Chris! Thanks for the response.
On 06/07/2010 10:28 PM, Chris Lilley wrote:
> Again, no. Please, re-read the explanation in my earlier mail.
Done. So I think one of the main points where our understandings differ
is on the distinction between presentational attributes and CSS
properties, though I'm still not quite sure where we differ on that.
I see the presentational attribute & the CSS property as two separate (but
related) entities:
- the former is an XML attribute that takes mostly-valid CSS as its
values, and influences the computed-style of its corresponding property
(by being translated into a CSS rule with specificity 0, as you said).
- the latter is a normal CSS property, whose ultimate computed style is
computed via the CSS cascade.
In light of this, RE the "units-not-required" exemption:
My understanding is that this exemption applies specifically to SVG's
presentational attributes, and that this exemption is handled gracefully
under-the-hood by UA's when converting the presentational attribute value
into valid CSS to insert into the CSS cascade.
Please correct me if any of the above is wrong.
> You seem to be working on the following assumptions, all incorrect
No, I only accept the third assumption you listed, and I'd maintain that
it's correct (details below).
> a) that properties can only be expressed in stylesheets (wrong, they
can also be expressed in presentational attributes)
No, I don't make that assumption. Properties can also have their values
influenced via <animate> and <set>, too, for that matter.
> b) that presentational attributes are unrelated to properties
No, I wouldn't say they're *unrelated* -- clearly the former is a way to
influence the computed style of the latter, as I say above. They're
distinct entities, though. (e.g. the attribute is a true XML attribute,
queryable in the DOM via setAttribute/getAttribute. Its value may or may
not match the computed value of the property, depending on what other
influences there are on the property in the style cascade.)
> c) that setting attributeType="XML" means "animate the presentation
attribute".
Yes! I'll grant you, I do indeed make *that* assumption, and I think it's
a warranted one to make. According to SVG 1.1 & 1.2T, attributeType="XML"
means "the value of 'attributeName' is the name of an XML attribute on
the target element". It sure sounds like the "font-size" presentational
attribute would fall into that category -- it's an XML attribute on the
<text> element.
FWIW, Opera and WebKit seem to make that assumption, too. The spec is a
bit unclear on exactly how attributeType="XML" & attributeType="CSS"
interact for presentational attributes, though, and no two SVG/SMIL
implementations robustly match on that. I actually posted to www-svg about
this issue in January, when I was working it out for Mozilla's SVG/SMIL
implementation. If you have a chance to offer any feedback on that
thread, it'd be much appreciated:
http://lists.w3.org/Archives/Public/www-svg/2010Jan/0066.html
http://lists.w3.org/Archives/Public/www-svg/2010Jan/0067.html
http://lists.w3.org/Archives/Public/www-svg/2010Jan/0075.html
> DH> IIUC, that
> DH> change would indeed fix the test (or, at worst, leave the rendering
> DH> unchanged, in browsers that accept unitless values for [effectively]
> DH> attributeType="CSS" animations)
>
> No, it would specify that what is to be animated is an (unknown,
non-existent) attribute called 'font-family' which is not a property.
Therte is no such attribute.
(I'm assuming you meant s/font-family/font-size/)
What? "not a property" / "no such attribute"? certainly 'font-size' is
both a property and an attribute! (and so is 'font-family', for that
matter :))
But anyway, are you saying that this animation...
<animate attributeName="font-size" attributeType="XML" ...>
...should have no effect at all? Please clarify, because I'm very
confused by this part of your response.
Note also that in paragraphs 7-8 of smil-animation 3.5...
http://www.w3.org/TR/smil-animation/#AnimationSandwichModel
... it basically says that attributeType="XML" means to create a
presentation value *for the XML attribute* (getting the base value from
the DOM, and passing the animated value into the style cascade). Whereas
for attributeType="CSS", it says we're supposed to effectively override
the final computed-value, and use the "normal" computed-value as the base
value for our animation. These are two distinctly different behaviors
(though they can produce the same outcome in simple cases), and (according
to SMIL) *that's* supposed to be what attributeType selects between. Both
behaviors are applicable to 'font-size', IIUC.
(There's similar language in the more recent SMIL3 smil-animation
component, too.)
Sorry for the long-winded response. :)
~Daniel
Received on Tuesday, 8 June 2010 16:55:03 UTC