Status: FAIL | Duration: 59ms | Subtests: 0/4 | Open test on wpt.live | wpt.fyi
Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)
| Subtest | Status | Message |
|---|---|---|
| <animateTransform> 'type' attribute missing/invalid value default, "type" attribute is "translate" | FAIL | cannot convert 'null' or 'undefined' to object |
| <animateTransform> 'type' attribute missing/invalid value default, missing "type" attribute | FAIL | cannot convert 'null' or 'undefined' to object |
| <animateTransform> 'type' attribute missing/invalid value default, invalid "type" attribute | FAIL | cannot convert 'null' or 'undefined' to object |
| <animateTransform> 'type' attribute missing/invalid value default, removed "type" attribute | FAIL | cannot convert 'null' or 'undefined' to object |
/svg/animations/scripted/animatetransform-type-missing-value-default.html
<!doctype html> <title><animateTransform> 'type' attribute missing/invalid value default</title> <link rel="help" href="https://w3c.github.io/svgwg/specs/animations/#AnimateTransformElementTypeAttribute"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <svg height="10"> <rect width="10" height="10" fill="blue"> <animateTransform attributeName="transform" type="translate" fill="freeze" dur="1s" from="10 0" to="10 0"/> </rect> <rect width="10" height="10" fill="blue"> <animateTransform attributeName="transform" fill="freeze" dur="1s" from="30 0" to="30 0"/> </rect> <rect width="10" height="10" fill="blue"> <animateTransform attributeName="transform" type="foo" fill="freeze" dur="1s" from="50 0" to="50 0"/> </rect> <rect width="10" height="10" fill="blue"> <animateTransform attributeName="transform" type="foo" fill="freeze" dur="1s" from="70 0" to="70 0"/> </rect> </svg> <script> const animations = document.querySelectorAll('animateTransform'); async_test(t => { animations[0].addEventListener('beginEvent', t.step_func_done(function() { let ctm = animations[0].targetElement.getCTM(); assert_equals(ctm.e, 10); assert_equals(ctm.f, 0); })); }, document.title + ', "type" attribute is "translate"'); async_test(t => { animations[1].addEventListener('beginEvent', t.step_func_done(function() { let ctm = animations[1].targetElement.getCTM(); assert_equals(ctm.e, 30); assert_equals(ctm.f, 0); })); }, document.title + ', missing "type" attribute'); async_test(t => { animations[2].addEventListener('beginEvent', t.step_func_done(function() { let ctm = animations[2].targetElement.getCTM(); assert_equals(ctm.e, 0); assert_equals(ctm.f, 0); })); }, document.title + ', invalid "type" attribute'); async_test(t => { animations[3].addEventListener('beginEvent', t.step_func(function() { animations[3].removeAttribute('type'); window.requestAnimationFrame(t.step_func_done(function() { let ctm = animations[3].targetElement.getCTM(); assert_equals(ctm.e, 70); assert_equals(ctm.f, 0); })); })); }, document.title + ', removed "type" attribute'); </script>