diff --git a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html
index e92b089b052acf..03fbc5100134bb 100644
--- a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html
+++ b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html
@@ -9,20 +9,23 @@
assert_root_color_scheme("dark", "Meta color-scheme initially 'dark'.");
meta.removeAttribute("name");
- assert_root_color_scheme("normal", "Removed name attribute from meta color-scheme.");
+ assert_root_color_scheme("light", "Removed name attribute from meta color-scheme.");
meta.setAttribute("name", "color-scheme");
assert_root_color_scheme("dark", "Set meta name to color-scheme.");
meta.setAttribute("content", "");
- assert_root_color_scheme("normal", "Set content attribute of meta color-scheme to empty string.");
+ assert_root_color_scheme("light", "Set content attribute of meta color-scheme to empty string.");
meta.setAttribute("content", ",,invalid");
- assert_root_color_scheme("normal", "Set content attribute of meta color-scheme to an invalid value.");
+ assert_root_color_scheme("light", "Set content attribute of meta color-scheme to an invalid value.");
meta.setAttribute("content", "light");
assert_root_color_scheme("light", "Set content attribute of meta color-scheme to 'light'.");
+ meta.setAttribute("content", "dark");
+ assert_root_color_scheme("dark", "Set content attribute of meta color-scheme to 'dark'.");
+
meta.removeAttribute("content");
- assert_root_color_scheme("normal", "Removed the content attribute of meta color-scheme.");
+ assert_root_color_scheme("light", "Removed the content attribute of meta color-scheme.");
diff --git a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-empty-content-value.html b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-empty-content-value.html
index b6a1ecbb851fe9..cd13acd12ccac5 100644
--- a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-empty-content-value.html
+++ b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-empty-content-value.html
@@ -6,5 +6,5 @@
diff --git a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-insert.html b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-insert.html
index faac2bf3155bda..4e3e401fabaafe 100644
--- a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-insert.html
+++ b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-insert.html
@@ -12,11 +12,11 @@
return meta;
}
- assert_root_color_scheme("normal", "Initial color-scheme");
+ assert_root_color_scheme("light", "Initial color-scheme");
- document.head.appendChild(createMeta("light"));
- assert_root_color_scheme("light", "Inserted meta color-scheme applies");
+ document.head.appendChild(createMeta("dark"));
+ assert_root_color_scheme("dark", "Inserted meta color-scheme applies");
- document.head.insertBefore(createMeta("dark"), document.head.lastChild);
- assert_root_color_scheme("dark", "Inserted meta color-scheme before existing in head applies");
+ document.head.insertBefore(createMeta("light"), document.head.lastChild);
+ assert_root_color_scheme("light", "Inserted meta color-scheme before existing in head applies");
diff --git a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-no-content-value.html b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-no-content-value.html
index 9cb8febe4b89f1..9e1b55e87385e2 100644
--- a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-no-content-value.html
+++ b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-no-content-value.html
@@ -6,5 +6,5 @@
diff --git a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-head.html b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-head.html
index 409abb694df3c9..594ec8bbb35576 100644
--- a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-head.html
+++ b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-head.html
@@ -9,5 +9,5 @@
diff --git a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html
index 8457dde6fa37cb..8e7ef809108e01 100644
--- a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html
+++ b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html
@@ -11,5 +11,5 @@
dark.remove();
assert_root_color_scheme("light", "Second meta applies after first one is removed.");
light.remove();
- assert_root_color_scheme("normal", "Initial color-scheme with both meta elements removed.");
+ assert_root_color_scheme("light", "Initial color-scheme with both meta elements removed.");
diff --git a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-shadow-tree.html b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-shadow-tree.html
index 1e0e2d956278b2..15f2b23a99663d 100644
--- a/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-shadow-tree.html
+++ b/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-shadow-tree.html
@@ -14,5 +14,5 @@
meta.setAttribute("content", "dark");
root.appendChild(meta);
- assert_root_color_scheme("normal", "Meta color-scheme in shadow tree does not apply.");
+ assert_root_color_scheme("light", "Meta color-scheme in shadow tree does not apply.");
diff --git a/html/semantics/document-metadata/the-meta-element/color-scheme/support/compute-root-color-scheme.js b/html/semantics/document-metadata/the-meta-element/color-scheme/support/compute-root-color-scheme.js
index 8ceddbc40bf2cd..16de8485c046c7 100644
--- a/html/semantics/document-metadata/the-meta-element/color-scheme/support/compute-root-color-scheme.js
+++ b/html/semantics/document-metadata/the-meta-element/color-scheme/support/compute-root-color-scheme.js
@@ -1,7 +1,27 @@
'use strict';
-function assert_root_color_scheme(expected, description) {
+function assert_root_color_scheme(expected_used_scheme, description) {
+ function get_used_root_color_scheme() {
+ let light = get_system_color("only light", "CanvasText");
+ let dark = get_system_color("only dark", "CanvasText");
+ assert_not_equals(light, dark, "CanvasText system color should be different with light and dark color schemes");
+ let root = getComputedStyle(document.documentElement).color;
+ assert_in_array(root, [light, dark], "Root color scheme should be either light or dark, or the text needs to be extended for newer color-schemes");
+ return root == light ? "light" : "dark";
+ }
+
+ function get_system_color(scheme, color) {
+ let div = document.createElement("div");
+ div.style.color = color;
+ div.style.colorScheme = scheme;
+
+ document.documentElement.appendChild(div);
+ let computed = getComputedStyle(div).color;
+ div.remove();
+ return computed;
+ }
+
test(() => {
- assert_equals(getComputedStyle(document.documentElement).colorScheme, expected), "Check root element color scheme";
+ assert_equals(get_used_root_color_scheme(), expected_used_scheme);
}, description);
}