Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 45403e2

Browse files
josepharharchromium-wpt-export-bot
authored andcommittedDec 18, 2023
Allow <button> and <datalist> in <select>
As per the spec discussion, we are going to allow <button>s in <select> to replace the opener button and <datalist>s in <select> to replace the listbox instead of creating a <selectlist> element. whatwg/html#9799 Bug: 1511354 Change-Id: If2ee766c57faf655ab31c6714be7fd682efcc177
1 parent 7c738f7 commit 45403e2

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<!DOCTYPE html>
2+
<link rel=author href="mailto:jarhar@chromium.org">
3+
<link rel=help href="https://github.com/whatwg/html/issues/9799">
4+
<script src="/resources/testharness.js"></script>
5+
<script src="/resources/testharnessreport.js"></script>
6+
7+
<select id=s1>
8+
<div>div 1</div>
9+
<button>button</button>
10+
<div>div 2</div>
11+
<datalist>
12+
<option>option</option>
13+
</datalist>
14+
<div>div 3</div>
15+
</select>
16+
17+
<select id=s2>
18+
<div>div 1</div>
19+
<button>
20+
<span>level 1</span>
21+
<button>
22+
<span>level 2</span>
23+
</button>
24+
</button>
25+
<div>div 2</div>
26+
</select>
27+
28+
<select id=s3>
29+
<button>button
30+
</select>
31+
32+
<select id=s4>
33+
<datalist>datalist
34+
</select>
35+
36+
<select id=s5>
37+
<button>
38+
<select></select>
39+
</button>
40+
</select>
41+
42+
<script>
43+
test(() => {
44+
assert_equals(document.getElementById('s1').innerHTML, `
45+
div 1
46+
<button>button</button>
47+
div 2
48+
<datalist>
49+
<option>option</option>
50+
</datalist>
51+
div 3
52+
`);
53+
}, '<button>s and <datalist>s should be allowed in <select>.');
54+
55+
test(() => {
56+
assert_equals(document.getElementById('s2').innerHTML, `
57+
div 1
58+
<button>
59+
<span>level 1</span>
60+
</button><button>
61+
<span>level 2</span>
62+
</button>
63+
64+
div 2
65+
`);
66+
}, 'Nested <button>s in <select> should be flattened out.');
67+
68+
test(() => {
69+
assert_equals(document.getElementById('s3').innerHTML, `
70+
<button>button
71+
</button>`);
72+
}, '</select> should close <button>.');
73+
74+
test(() => {
75+
assert_equals(document.getElementById('s4').innerHTML, `
76+
<datalist>datalist
77+
</datalist>`);
78+
}, '</select> should close <datalist>.');
79+
80+
test(() => {
81+
assert_equals(document.getElementById('s5').innerHTML, `
82+
<button>
83+
</button>`);
84+
}, '<select> in <button> in <select> should remove inner <select>.');
85+
</script>

0 commit comments

Comments
 (0)
Please sign in to comment.