<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Custom highlight pseudo elements across elements.</title>
  <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/#painting">
  <link rel="match" href="highlight-text-expected.html">
  <meta name="assert" content="Highlights should be able to be specified across elements.">
    <style>
    ::highlight(example-highlight1) {
        background-color: yellow;
        color:green;
    }
    ::highlight(example-highlight2) {
        background-color: blue;
        color:red;
    }
    ::highlight(example-highlight3) {
        background-color: purple;
        color:pink;
    }
    </style>
</head>
<body>
    <span id="text1">One two three</span>
    <span id="text2">four five six</span>
    <span id="text3">seven eight nine</span>
    <span id="text4">ten eleven twelve</span>
    <span id="text5">thirteen fourteen fifteen</span>

    <script>
        let textElement1 = document.getElementById('text1');
        let textElement2 = document.getElementById('text2');
        let textElement3 = document.getElementById('text3');
        let textElement4 = document.getElementById('text4');
        let textElement5 = document.getElementById('text5');
        let highlightRangeGroup1 = new HighlightRangeGroup(new StaticRange({startContainer: textElement1.childNodes[0], startOffset: 4, endContainer: textElement1.childNodes[0], endOffset: 7}));

        let highlightRangeGroup2 = new HighlightRangeGroup(new StaticRange({startContainer: textElement1.childNodes[0], startOffset: 10, endContainer: textElement2.childNodes[0], endOffset: 4}));
        highlightRangeGroup2.add(new StaticRange({startContainer: textElement2.childNodes[0], startOffset: 10, endContainer: textElement3.childNodes[0], endOffset: 5}));

        let highlightRangeGroup3 = new HighlightRangeGroup(new StaticRange({startContainer: textElement3.childNodes[0], startOffset: 10, endContainer: textElement5.childNodes[0], endOffset: 12}));

        CSS.highlights.set("example-highlight1", highlightRangeGroup1);
        CSS.highlights.set("example-highlight2", highlightRangeGroup2);
        CSS.highlights.set("example-highlight3", highlightRangeGroup3);
    </script>
</body>
</html>
