Project status

Feature matrix

FakeSmile implements SVG animations partially. The table below contains the developement status of the latest revision.

Animation Content Set
animate Yes
animateColor Yes
animateTransform Yes
animateMotion Yes
set Yes
Animation Attribute Sets : Animation.attrib
xlink:href Yes
Animation Attribute Sets : AnimationAttribute.attrib
attributeName Yes
attributeType Yes
Animation Attribute Sets : AnimationTiming.attrib
begin Partial *
dur Yes
end Partial *
min No
max No
restart No
repeatCount Yes
repeatDur Yes
fill Yes
Animation Attribute Sets : AnimationValue.attrib
calcMode Partial *
values Yes
keyTimes Yes
keySplines Yes
from Yes
to Yes
by Yes
Animation Attribute Sets : AnimationAddtion.attrib
additive No
accumulate Yes
animateMotion
path Yes *
rotate No
keyPoints Yes
mpath Yes
animateTransform
type Yes
Data types
angle Yes
color Yes
coordinate Partial*
integer Yes
length Yes
list of xxx Partial*
number Yes
paint Yes
percentage Yes
transform-list Partial*
uri Yes
other Yes
Interface ElementTimeControl
beginElement() Yes
beginElementAt(seconds) Yes
endElement() Yes
endElementAt(seconds) Yes
Interface SVGAnimationElement
targetElement Yes
getStartTime() Yes
getCurrentTime() Yes
getSimpleDuration() No
Animation Events Attribute Module : AnimationEvents.attrib
onbegin No
onend No
onrepeat No
onload No
Interface TimeEvent
beginEvent No
endEvent No
repeatEvent No
view No
detail No
initTimeEvent() No
Timesheets
timesheet Yes
src Yes
media No
item Yes
select Yes
beginInc No
index() Yes
par No
seq No
excl No
prefetch No

Known bugs

  • begin and end attributes values :
    • #202579: accessKey-value not supported
    • #202581: wallclock-sync-value not supported
    • #202582: Negative clock-value offsets based on events do not work (offset ignored).
  • #202583: paced value is not supported (treated as linear)
  • #202585: The animations are scheduled with setTimeouts, which makes them out of sync after some time. Their start time should be recomputed.
  • #202586: <a xlink:href="[smil elem]"> does not start the target animation (by the way, I don't understand the expected behavior of test 29. If someone can point me out the spec for this...).
  • #202588: currentColor and inherited attribute values are not supported
  • #202589: The script doesn't override the DOMImplementation's hasFeature() function. (Thus don't use requireFeatures attribute)
  • #203193: Interpolation of qualified (i.e. with units: px,em,...) coordinates and lists of values doesn't work

Related Gecko specific issues

  • Because of this bug, events will never trigger from SVGElementInstances.
  • animatedMotion with a path attribute does not work in Gecko 1.8. Because getPointAtLength() throws an exception when called on dynamically created SVGPathElements (see test ...).
  • SVGPathSegList.normalizedPathSegList is not implemented. Thus, the script cannot animate non normalized path values (see test 83)
  • <switch> elements seem buggy too (see test 36) in Gecko 1.8.

Official test suite results :

#ResultcommentReason
22/4additive
3PASSbuggy in gecko and webkitunqualified (no units) value for font-size in CSS
4PASS
5PASS
6PASSbuggy in gecko 1.8
7PASS
8FAILbuggy in gecko 1.8rotate
9PASS
10PASS
11FAILcalcMode="paced"
12PASS
13PASS
14PASS
15FAILcalcMode="paced"
17PASS
19PASS
20FAIL<a href="#anim">
21FAIL<a href="#anim">
22PASS
23PASS
24FAILbuggy in gecko 1.8additive
25PASS
26PASS
27PASS
28PASS
29FAIL<a href="#anim">
304/6buggy in gecko 1.8additive
31PASS
32PASS
33PASS
34PASS
36PASSbuggy in gecko 1.8animated switch
37PASS
395/6sync + I don't understand the expected behavior
40PASSmultiple x/y values in gecko
4110/33additive + inheritance
44PASS
465/15inheritance
52PASSbuggy in webkit ?
6010/14negative offset based on event + accessKey
615/6accessKey
6210/14negative offset based on event + accessKey + wallclock
635/6accessKey
64PASS
653/8min
667/9max
672/6restart
68PASS
69PASS
70PASS
7714/18text-anchor + font-size
78PASS
80PASS
813/6additive
821/4paced
833/6non normalized path
84FAILcurrentColor + inherit
85FAILcurrentColor

Valid XHTML 1.0 Strict Valid CSS