- From: Cyril Concolato <cyril.concolato@enst.fr>
- Date: Thu, 07 Sep 2006 10:33:33 +0200
- To: www-smil@w3.org
Dear SMIL experts,
I sent an email [1] on the SVG Public Mailing List concerning problems
that I have when implementing SVG, SMIL and CSS together. In this email,
I proposed changes to the SMIL specification to clarify some aspects
about CSS inheritance and animation. Someone suggested to post the SMIL
part of the comments on this reflector. Here they are.
A) Typo:
"The animation effect function of an element is the function which
includes the affect of the underlying value and accounts for repeating
and freezing of the element."
should read:
"The animation effect function of an element is the function which
includes the _effect_ of the underlying value and accounts for repeating
and freezing of the element. "
B) The following sentences from the animation sandwich model are at best
confusing, if not contradictory. They should be clarified.
"The remainder of this discussion uses the generic term OM for both the
XML DOM [DOM2] as well as the CSS-OM."
and
"Note that animations manipulate the presentation value coming out of
the OM in which the attribute is defined, and pass the resulting value
on to the next layer of document processing. This does not replace or
override any of the normal document OM processing cascade. "
and
"The values produced by the animation are written into an override
stylesheet for that element, which may be obtained using the
getOverrideStyle() method. These new values then affect the cascade and
are reflected in a new computed value (and thus, modified presentation)."
Saying in one sentence that the presentation value does not override the
OM value and, in the other sentence, saying that it is obtained using a
function named 'override' is confusing. Then saying that the
presentation value affects the cascade while the first sentence says
that it does not override the normal document cascade is also confusing.
Then, I could not find a definition of CSS OM value, is it the CSS
specified value ? Please use defined terminology and link terms to their
definition.
C) For properties, the specification seems to say that the base value is
the computed value ("is read using the (readonly) getComputedStyle()
method"), but it also says that the result of the animation, the
presentation value, becomes the new computed value ("reflected in a new
computed value"). This looks like the result of the animation is
modifying the input of the animation. If true, for additive animations,
depending on the number of evaluations of the animation, one could get
different result. I don't think this is what is wanted here. These
sentences are confusing. I think it should say that "the new computed
value" is only used for display, or by other animations, or for
inheritance, but it should say that for the next computation of this
animation the getComputeStyle function will not return that "new
computed value" but will reevaluate the computed value as if that
animation had not happen.
D) The main problem with the way animation and inheritance is described
is that the text is spread over several specifications (DOM Core, DOM
CSS, DOM View, CSS, SMIL). It is really is a big challenge to understand
it. I'm not sure I understand it even after having read all of them and
implemented (most of it). It would help if algorithms in pseudo-code
were given for attributes and for properties.
Best regards,
Cyril Concolato
[1] http://lists.w3.org/Archives/Public/www-svg/2006Sep/0003.html
Received on Thursday, 7 September 2006 08:32:06 UTC