mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-28 10:37:17 +02:00
LibWeb: Ensure |= value selector handles multiple segments correctly
Previously, the `|=` would not compare strings containing `-` characters correctly because it would only compare the element attribute up to the first `-` character.
This commit is contained in:
committed by
Sam Atkins
parent
1c3d849b8b
commit
74c803c87b
Notes:
github-actions[bot]
2025-04-28 10:30:50 +00:00
Author: https://github.com/tcl3 Commit: https://github.com/LadybirdBrowser/ladybird/commit/74c803c87bc Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4495 Reviewed-by: https://github.com/AtkinsSJ ✅
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CSS Test: lang attribute selector - att |= val</title>
|
||||
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/>
|
||||
<link rel="author" title="Eira Monstad, Opera Software ASA" href="mailto:public-testsuites@opera.com"/>
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#attribute-selectors"/>
|
||||
<link rel="match" href="../../../../../expected/wpt-import/css/CSS2/selector/attribute-value-selector-009-ref.html" />
|
||||
<meta name="flags" content="nonHTML"/>
|
||||
<meta name="assert" content="lang attribute selector with 'att |= val' in XHTML should be case sensitive, and match hyphen-separated list"/>
|
||||
<style type="text/css"><![CDATA[
|
||||
div[title |= "es"] { color:white;background-color:green; }
|
||||
p[title |= "es"] { color:white;background-color:green; }
|
||||
div[title |= "en-GB"] { color:white;background-color:green; }
|
||||
p[title |= "fr"] { color:white;background-color:green; }
|
||||
em[title |= "de"] { color:white;background-color:green; }
|
||||
div[lang=" no"] { color:white;background-color:green; }
|
||||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div title="es">This line should be green</div>
|
||||
<div title="es-MX">This line should be green</div>
|
||||
|
||||
<div title="en-GB">This line should be green</div>
|
||||
<div title="en-GB-scouse">This line should be green</div>
|
||||
|
||||
<p title="es">This line should be green <em>and this should be green too</em></p>
|
||||
|
||||
<div lang="no">This line should NOT be green</div>
|
||||
<div title="ES">This line should NOT be green</div>
|
||||
<div title="MX-es">This line should NOT be green</div>
|
||||
|
||||
<div title="en-US">This line should NOT be green</div>
|
||||
<div title="en">This line should NOT be green</div>
|
||||
|
||||
<div title="fr">This line should NOT be green<p>This line should NOT be green</p></div>
|
||||
<p title="de">This line should NOT be green <em>and this should not be green either</em></p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CSS Test: lang attribute selector - att |= val</title>
|
||||
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
|
||||
<link rel="author" title="Eira Monstad, Opera Software ASA" href="mailto:public-testsuites@opera.com">
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#attribute-selectors">
|
||||
<link rel="match" href="../../../../../expected/wpt-import/css/CSS2/selector/attribute-value-selector-010-ref.html" />
|
||||
<meta name="flags" content="HTMLonly">
|
||||
<meta name="assert" content="lang attribute selector with 'att |= val' in HTML should not be case sensitive, and match hyphen-separated list">
|
||||
<style type="text/css">
|
||||
div[lang |= "es"] { color:white;background-color:green; }
|
||||
p[lang |= "es"] { color:white;background-color:green; }
|
||||
div[lang |= "en-GB"] { color:white;background-color:green; }
|
||||
p[lang |= "fr"] { color:white;background-color:green; }
|
||||
em[lang |= "de"] { color:white;background-color:green; }
|
||||
div[xml:lang |= "it"] { color:white;background-color:green; }
|
||||
div[lang |= "ch"] { color:white;background-color:green; }
|
||||
div[lang=" no"] { color:white;background-color:green; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div lang="es">This line should be green</div>
|
||||
<div lang="es-MX">This line should be green</div>
|
||||
<div lang="ES">This line should be green</div>
|
||||
|
||||
<div lang="en-GB">This line should be green</div>
|
||||
<div lang="en-GB-scouse">This line should be green</div>
|
||||
|
||||
<p lang="es">This line should be green <em>and this should be green too</em></p>
|
||||
|
||||
<div lang="no">This line should NOT be green</div>
|
||||
<div lang="MX-es">This line should NOT be green</div>
|
||||
|
||||
<div lang="en-US">This line should NOT be green</div>
|
||||
<div lang="en">This line should NOT be green</div>
|
||||
|
||||
<div lang="fr">This line should NOT be green<p>This line should NOT be green</p></div>
|
||||
<p lang="de">This line should NOT be green <em>and this should not be green either</em></p>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user