blob: e4fe6e682e63f9382f920fbabf2126fc80640308 [file] [edit]
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>CSS Pseudo-Elements Test: ::selection overlay drawn over the ::grammar-error overlay</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-painting">
<link rel="match" href="reference/selection-overlay-and-grammar-001-ref.html">
<meta content="" name="flags">
<meta name="assert" content="In this test, the div::selection pseudo-element must be drawn over the div::grammar-error overlay.">
<!--
The initial version of this test was relying on color
composition and was predicting a lime-green-ish (#7FBF80:
slightly desaturated lime green) background color for "thing".
"#7fbf80 color description : Slightly desaturated lime green"
https://www.colorhexa.com/7fbf80
This test does not rely on color composition but the
test nevertheless verifies the ::selection overlay drawn
over the ::grammar-error overlay.
-->
<style>
div
{
font-size: 60px;
line-height: 90px;
}
div::selection
{
background-color: rgba(0%, 50%, 100%, 0.5);
/*
a very lite blue color
according to
https://www.colorhexa.com/7fbfff
*/
color: yellow;
}
div::grammar-error
{
background-color: yellow;
color: red;
}
</style>
<script>
function startTest()
{
var targetRange = document.createRange();
/* We first create an empty range */
targetRange.selectNodeContents(document.getElementById("test"));
/* Then we set the range boundaries to the children of div#test */
window.getSelection().addRange(targetRange);
/* Finally, we now select such range of content */
document.getElementById("test").blur();
/*
Some browsers, like Chromium 80+, will
transfer focus to a selected element
like a contenteditable div and
therefore style the border of
such element. We remove such
focus with the blur() method.
*/
}
</script>
<body onload="startTest();">
<p>PREREQUISITE: User agent needs to have an enabled and capable grammar error module. If it does not, then this test does not apply to such user agent.
<p>Test passes
<ul>
<li>if each glyph of the sentence is yellow
<li>if "thing" has a desaturated lime green background
<li>if the other words have a very lite blue background and
<li>if there is no red.
</ul>
<div contenteditable="true" id="test">Many thing can happen.</div>