Status: FAIL | Duration: 11ms | Subtests: 0/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi
/css/css-pseudo/highlight-painting-shadows-horizontal.html
<!doctype html> <meta charset="utf-8"> <title>CSS Pseudo-Elements Test: Shadows on highlights horizontal text</title> <link rel="author" name="Stephen Chenney" href="mailto:schenney@igalia.com"> <link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> <link rel="match" href="highlight-painting-shadows-horizontal-ref.html"> <meta name="assert" value="::selection and ::target-text both with shadows are painted in the correct order, including originating element shadows"> <meta name="fuzzy" content="0-32;0-20"> <script src="support/selections.js"></script> <style> :root { line-height: 1; white-space: pre; } p { font-size: 2em; color: black; text-shadow: 0.1em 0.1em rgba(0,0,0,0.5); position: absolute; top: 10px; left: 10px; } p::selection { color: green; text-shadow: -0.25em -0.25em rgba(0,128,0,0.5); } p::target-text { color: blue; text-shadow: 0.25em 0.25em rgba(0,0,128,0.5); } </style> <p>partially selected target</p> <script> window.location.hash = "#:~:text=target"; const target = document.querySelector("p"); selectRangeWith(range => { range.selectNodeContents(target); range.setStart(target.childNodes[0], 4); range.setEnd(target.childNodes[0], 21); }); </script>
/css/css-pseudo/highlight-painting-shadows-horizontal-ref.html
<!doctype html> <meta charset="utf-8"> <title>CSS Pseudo-Elements Test: Shadows on highlights horizontal text - reference</title> <link rel="author" name="Stephen Chenney" href="mailto:schenney@igalia.com"> <style> :root { line-height: 1; white-space: break-spaces; } #originating_shadow { font-size: 2em; color: transparent; text-shadow: 0.1em 0.1em rgba(0,0,0,0.5); position: absolute; z-index: 0; top: 10px; left: 10px; } #originating_text { font-size: 2em; color: black; position: absolute; z-index: 7; top: 10px; left: 10px; } #selection_only { font-size: 2em; color: green; text-shadow: -0.25em -0.25em rgba(0,128,0,0.5), 0.1em 0.1em rgba(0,0,0,0.5); position: absolute; z-index: 5; top: 10px; } #target { font-size: 2em; color: blue; text-shadow: 0.25em 0.25em rgba(0,0,128,0.5), 0.1em 0.1em rgba(0,0,0,0.5); position: absolute; z-index: 3; top: 10px; } #both_text { font-size: 2em; color: green; position: absolute; z-index: 4; top: 10px; } #both_shadow { font-size: 2em; color: transparent; text-shadow: 0.25em 0.25em rgba(0,0,128,0.5), -0.25em -0.25em rgba(0,128,0,0.5), 0.1em 0.1em rgba(0,0,0,0.5); position: absolute; z-index: 2; top: 10px; } </style> <p id="originating_shadow">part</p> <p id="originating_text">part</p> <p id="selection_only">ially selected </p> <p id="both_text">ta</p> <p id="both_shadow">ta</p> <p id="target">rget</p> <script> originatingCS = getComputedStyle(originating_text); selection_only.style.left = (parseFloat(originatingCS.width) + parseFloat(originatingCS.left)).toString() + "px"; selectionCS = getComputedStyle(selection_only); both_text.style.left = (parseFloat(selectionCS.width) + parseFloat(selectionCS.left)).toString() + "px"; both_shadow.style.left = both_text.style.left; bothCS = getComputedStyle(both_text); target.style.left = (parseFloat(bothCS.width) + parseFloat(bothCS.left)).toString() + "px"; </script>