commit 5d0fda1c660e0a388a6f4ed20004ce22cc68f54d
parent 8706711f8e3fdeaa30173f655dda716ca7a5f590
Author: Joey Arhar <jarhar@chromium.org>
Date: Wed, 7 Jan 2026 09:19:37 +0000
Bug 2008678 [wpt PR 57001] - Implement popover for customizable combobox, a=testonly
Automatic update from web-platform-tests
Implement popover for customizable combobox
This patch makes the datalist element support base appearance when it is
referenced by a base appearance text input element. When it has base
appearance, the datalist element becomes a popover even though it
doesn't have the popover attribute, and is rendered as normal web
content to show the options in a way that can be fully controlled by the
author.
Bug: 453705243
Change-Id: I585521d8bb232160651c0e733ec2a4c94b265491
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7065275
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Reviewed-by: Joey Arhar <jarhar@chromium.org>
Reviewed-by: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1564798}
--
wpt-commits: e17b64664f35bbc0414ba574973049d5fc0512ca
wpt-pr: 57001
Diffstat:
1 file changed, 29 insertions(+), 0 deletions(-)
diff --git a/testing/web-platform/tests/html/semantics/forms/customizable-combobox/datalist-popover.tentative.html b/testing/web-platform/tests/html/semantics/forms/customizable-combobox/datalist-popover.tentative.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://open-ui.org/components/combobox.explainer/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<style>
+input, datalist {
+ appearance: base;
+}
+</style>
+
+<input list=datalist>
+<datalist id=datalist>
+ <option>one</option>
+ <option>two</option>
+</datalist>
+
+<script>
+test(() => {
+ const input = document.querySelector('input');
+ const datalist = document.querySelector('datalist');
+ assert_false(datalist.matches(':popover-open'),
+ 'datalist should not be :popover-open at the start of the test.');
+ input.focus();
+ assert_true(datalist.matches(':popover-open'),
+ 'datalist should be :popover-open after focusing the input.');
+}, 'Focusing input should show datalist as a popover.');
+</script>