| <!DOCTYPE HTML> | |
| <title>Document.prototype.elementsFromPoint on SVG text content elements</title> | |
| <link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-document-elementsfrompoint"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="resources/elementsFromPoint.js"></script> | |
| <style> | |
| html, body { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| #svg { | |
| margin: 100px; | |
| background-color: rgba(0,180,0,0.2); | |
| } | |
| text { | |
| font-size: 50px; | |
| } | |
| </style> | |
| <div id='sandbox'> | |
| <svg id='svg' width='300' height='300'> | |
| <defs> | |
| <path id="path" d="M10,170h1000"/> | |
| </defs> | |
| <text id="text1" x="10" y="50">Some text</text> | |
| <text id="text2" x="10" y="110"><tspan id="tspan1">Some text</tspan></text> | |
| <text id="text3"><textPath id="textpath1" xlink:href="#path">Some text</textPath></text> | |
| <text id="text4" x="10" y="230">Text under<tspan id="tspan2" x="10">Text over</tspan></text> | |
| </svg> | |
| </div> | |
| <script> | |
| test(function() { | |
| assertElementsFromPoint('document', 125, 125, | |
| [text1, svg, sandbox, document.body, document.documentElement]); | |
| }, 'elementsFromPoint for a point inside a <text>'); | |
| test(function() { | |
| assertElementsFromPoint('document', 125, 185, | |
| [tspan1, svg, sandbox, document.body, document.documentElement]); | |
| }, 'elementsFromPoint for a point inside a <tspan> nested in a <text> without content'); | |
| test(function() { | |
| assertElementsFromPoint('document', 125, 245, | |
| [textpath1, svg, sandbox, document.body, document.documentElement]); | |
| }, 'elementsFromPoint for a point inside a <textPath> nested in a <text> without content'); | |
| test(function() { | |
| assertElementsFromPoint('document', 125, 305, | |
| [tspan2, text4, svg, sandbox, document.body, document.documentElement]); | |
| }, 'elementsFromPoint for a point inside an overlapping <tspan> nested in a <text>'); | |
| </script> |