Re: does <set> add an attribute to node.attributes

Hi Brian,

--Original Message--:
>Just to clarify, not changing the DOM attribute values does seem to be
>normative. From SMIL 3.0:
>
>  The presentation value which results from applying an animation is
>not visible through the DOM.[1]

Thanks for clarifying.

>(That said, elsewhere there appear to be concessions for
>implementations where that is difficult.[2])
>
>However, SVG has added interfaces for querying these values.
>
>That, however, means that creating a snapshot does take a fair bit of
>code as one needs to go through SVG's animated type interfaces rather
>than just hasAttribute/getAttribute. That might be unfortunate, but
>it's the case regardless of whether the attribute is created or not.
>
>[1] http://www.w3.org/TR/SMIL/smil-DOM.html
>[2] http://www.w3.org/TR/SMIL/smil-animation.html#animationNS-AnimationSandwichModel
>"In some implementations of DOM, it may be difficult or impractical to
>maintain a presentation value as described..."

Similarly, these are from the same Rec:

'Specifically, animating an attribute defined in XML will modify
the presentation value before it is passed through the style sheet
cascade, using the XML DOM value as its base.'

Note, 'using the XML DOM value as its base'.

In the case of a 'to' animation, there's nothing
you can do without the base attribute.

Also:

'Animating an attribute or property defined in a style sheet
language will modify the presentation value passed through the
remainder of the cascade.'

So if it's CSS it's different.

If the target of the animation is an attribute and not a
property and the attribute isn't there, no animation
should happen since there is no XML DOM value.

Then there is also this important section:

'Some animations (e.g. animateMotion) will implicitly target an
attribute, or possibly several attributes (e.g. the "posX" and
"posY" attributes of some layout model). <snip/> For animation
elements that implicitly target attributes, the host language
designer must specify which attributes are implicitly targeted,
and the runtime must accordingly combine animations for the
respective attributes.'

So for implicitly targeted attributes, it's the host language
that defines the behaviour and none is defined in SVG.

Some implementers (Opera) have chosen to add one, that may
be a bug or a feature, the spec. doesn't define it.

Cameron expects the animation to happen without a base XML
DOM value, however in the case of some animations like 'to'
animations, etc. it's impossible to handle them without
a base value.

SVG needs to define if they run or not, and if they create
missing target attributes in the course of running a SMIL
animation.

What is correct behaviour is unknown right now from what
I can see.

If no attribute is to be created, then SVG needs to define
what happens, such as using the lacuna value for missing
attributes, but that has yet to be written down anywhere.

Alex

Received on Monday, 18 October 2010 02:34:18 UTC