Status: FAIL | Duration: 12ms | Subtests: 0/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi
/css/css-pseudo/selection-originating-underline-order.html
<!doctype html> <meta charset="utf-8"> <!-- see “Selection regression tests” in README.md --> <title>CSS Pseudo-Elements Test: originating underlines remain under unselected parts when selecting text</title> <link rel="author" name="Delan Azabani" href="mailto:dazabani@igalia.com"> <link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#painting"> <link rel="help" href="https://www.w3.org/TR/CSS22/zindex.html#painting-order"> <link rel="match" href="selection-originating-underline-order-ref.html"> <meta name="assert" value="This test verifies that selecting text does not cause originating underline decorations, which should always paint under text, to paint over unselected parts."> <script src="support/selections.js"></script> <link rel="stylesheet" href="support/highlights.css"> <link rel="stylesheet" href="/fonts/ahem.css"> <style> * { text-decoration-skip-ink: none; text-decoration-skip: none; } main { font: 80px/1 Ahem; margin: 0.5em; width: min-content; text-decoration: 0.25em red solid underline; /* try to keep decoration between ascent and descent */ text-underline-offset: -0.5em; } main::selection { background: transparent; color: blue; } </style> <p>Test passes if there is no red below and two squares, entirely blue (left) and entirely black (right). <main class="highlight_reftest">XX</main> <script> const target = document.querySelector("main"); selectRangeWith(range => { range.selectNodeContents(target); range.setStart(target.childNodes[0], 0); range.setEnd(target.childNodes[0], 1); }); </script>
/css/css-pseudo/selection-originating-underline-order-ref.html
<!doctype html> <meta charset="utf-8"> <link rel="author" name="Delan Azabani" href="mailto:dazabani@igalia.com"> <link rel="stylesheet" href="support/highlights.css"> <link rel="stylesheet" href="/fonts/ahem.css"> <style> * { text-decoration-skip-ink: none; text-decoration-skip: none; } main { font: 80px/1 Ahem; margin: 0.5em; width: min-content; /* Edge on Windows anti-aliases Ahem for some reason, which allows the tip of the test underline to show through, so we still need this underline despite seeming unnecessary. */ text-decoration: 0.25em currentColor solid underline; /* try to keep decoration between ascent and descent */ text-underline-offset: -0.5em; } main > span { color: blue; /* Edge on Windows anti-aliases Ahem for some reason, which allows the tip of the test underline to show through, so we still need this underline despite seeming unnecessary. */ text-decoration: 0.25em blue solid underline; /* try to keep decoration between ascent and descent */ text-underline-offset: -0.5em; } </style> <p>Test passes if there is no red below and two squares, entirely blue (left) and entirely black (right). <main class="highlight_reftest"><span>X</span>X</main>