Status: FAIL | Duration: 62ms | Subtests: 0/3 | Open test on wpt.live | wpt.fyi
Data from commit:
96ff533 Remove hidden nodes from the acccessibility tree (#823) (2026-09-07)
| Subtest | Status | Message |
|---|---|---|
| Test for mpath when setting both href and xlink:href | FAIL | not a callable function |
| Test for mpath when removing href but we still have xlink:href | FAIL | not a callable function |
| Test for mpath when removing xlink:href but we still have href | FAIL | not a callable function |
/svg/linking/scripted/href-mpath-element.html
<!DOCTYPE html> <meta charset=utf-8> <title>Href - mpath element tests</title> <script src='/resources/testharness.js'></script> <script src='/resources/testharnessreport.js'></script> <script src='testcommon.js'></script> <body> <div id='log'></div> <svg id='svg' width='100' height='100' viewBox='0 0 100 100'></svg> <script> 'use strict'; promise_test(function(t) { var svg = document.getElementById('svg'); var path1 = createSVGElement(t, 'path', svg, { 'id': 'MyPath1', 'd': 'M 0,0 L 100,0' }); var path2 = createSVGElement(t, 'path', svg, { 'id': 'MyPath2', 'd': 'M 0,0 L 0,100' }); var rect = createSVGElement(t, 'rect', svg, { 'width': '10px', 'height': '10px' }); var animateMotion = createSVGElement(t, 'animateMotion', rect, { 'dur': '10s' }); var mpath = createSVGElement(t, 'mpath', animateMotion); mpath.setAttribute('href', '#MyPath1'); mpath.setAttributeNS(XLINKNS, 'xlink:href', '#MyPath2'); assert_equals(mpath.href.baseVal, '#MyPath1'); return waitEvent(animateMotion, 'beginEvent').then(function() { svg.pauseAnimations(); svg.setCurrentTime(1); var ctm = rect.getCTM(); assert_equals(ctm.e, 10); assert_equals(ctm.f, 0); svg.setCurrentTime(5); ctm = rect.getCTM(); assert_equals(ctm.e, 50); assert_equals(ctm.f, 0); }); }, 'Test for mpath when setting both href and xlink:href'); promise_test(function(t) { var svg = document.getElementById('svg'); var path1 = createSVGElement(t, 'path', svg, { 'id': 'MyPath1', 'd': 'M 0,0 L 100,0' }); var path2 = createSVGElement(t, 'path', svg, { 'id': 'MyPath2', 'd': 'M 0,0 L 0,100' }); var rect = createSVGElement(t, 'rect', svg, { 'width': '10px', 'height': '10px' }); var animateMotion = createSVGElement(t, 'animateMotion', rect, { 'dur': '10s' }); var mpath = createSVGElement(t, 'mpath', animateMotion); mpath.setAttribute('href', '#MyPath1'); mpath.setAttributeNS(XLINKNS, 'xlink:href', '#MyPath2'); return waitEvent(animateMotion, 'beginEvent').then(function() { svg.pauseAnimations(); svg.setCurrentTime(5); var ctm = rect.getCTM(); assert_equals(ctm.e, 50); assert_equals(ctm.f, 0); mpath.removeAttribute('href'); assert_equals(mpath.href.baseVal, '#MyPath2'); ctm = rect.getCTM(); assert_equals(ctm.e, 0); assert_equals(ctm.f, 50); }); }, 'Test for mpath when removing href but we still have xlink:href'); promise_test(function(t) { var svg = document.getElementById('svg'); var path1 = createSVGElement(t, 'path', svg, { 'id': 'MyPath1', 'd': 'M 0,0 L 100,0' }); var path2 = createSVGElement(t, 'path', svg, { 'id': 'MyPath2', 'd': 'M 0,0 L 0,100' }); var rect = createSVGElement(t, 'rect', svg, { 'width': '10px', 'height': '10px' }); var animateMotion = createSVGElement(t, 'animateMotion', rect, { 'dur': '10s' }); var mpath = createSVGElement(t, 'mpath', animateMotion); mpath.setAttribute('href', '#MyPath1'); mpath.setAttributeNS(XLINKNS, 'xlink:href', '#MyPath2'); return waitEvent(animateMotion, 'beginEvent').then(function() { svg.pauseAnimations(); svg.setCurrentTime(5); var ctm = rect.getCTM(); assert_equals(ctm.e, 50); assert_equals(ctm.f, 0); mpath.removeAttributeNS(XLINKNS, 'href'); assert_equals(mpath.href.baseVal, '#MyPath1'); ctm = rect.getCTM(); assert_equals(ctm.e, 50); assert_equals(ctm.f, 0); }); }, 'Test for mpath when removing xlink:href but we still have href'); </script> </body>