From 8e171386857e6998920e19952259c6d9c7a720b5 Mon Sep 17 00:00:00 2001
From: Joey Arhar
Run maybe clone option into select button given + insertedNode.
The removing steps for the HTML Standard, given @@ -1838,6 +1841,9 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
If removedNode's popover
attribute is not in
the no popover state, then run the hide
popover algorithm given removedNode, false, false, and false.
Run maybe clone option into select button given + oldParent.
A The child concept
The following terms are defined in CSS Anchor Positioning: CSSANCHOR If element's node document is not fully active, then
return. If element's parent is a If element has a form owner then switch on element's To get the option element ancestor select given an For each ancestor of option's ancestors: If ancestor is a Return null. To maybe clone option into select button, given an For each ancestor of element's ancestors: If all of the following conditions are true: ancestor is an ancestor has a non-null option element ancestor
+ select; ancestor's option element ancestor select is rendered as a
+ drop-down box; ancestor's selectedness
+ is true, then set ancestor's option element ancestor select's select
+ fallback button text to the value of ancestor's label. Whenever an The activation behavior of an Let select be the option element ancestor select given
+ option. If select is null, then return. Set option's selectedness to
+ true. Set option's dirtiness to
+ true. Send If select is being rendered as a drop-down box with base
+ appearance: Run the hide popover algorithm given the first item in select's
+ select popover slot's assigned nodes.
+
@@ -53096,6 +53110,10 @@ interface HTMLButtonElement : HTMLElement {
select
element, then
+ show the picker, if applicable given element's parent and
+ return.type
attribute's state, then:option
+ option:
+
+
+
+
+ select
, then return
+ ancestor.Element
+ element:
+
+
+
+
+
+
+
+ option
element;option
option's selectedness is set to true, run maybe clone
+ option into select button given option.option
option is to run the
+ following steps:
+
+
select
update notifications given
+ select.
+
+
option.selected
optgroup
element children
providing headers for groups of options where applicable.
select
elements which render as a drop-down box support a base
+ appearance in addition to native appearance and primitive
+ appearance.
When a select
is being rendered as a drop-down box with a base
+ appearance, it is expected to render as if it has the following shadow
+ root:
<slot id="select-button-slot">
+ <div id="select-fallback-button-text"></div>
+</slot>
+<div id="select-popover" popover="auto">
+ <slot id="select-popover-slot"></slot>
+</div>
+
+ Since base appearance is determined by computing style, it isn't
+ possible to swap this DOM structure when switching appearance. Implementations can always include
+ the DOM structure for base appearance when the select
is rendered as a
+ drop-down box and then choose to include or exclude it from the layout tree in order
+ to control whether it gets rendered or not.
select
elements rendered as a drop-down box with base
+ appearance each contain the following elements as shown with ID attributes in the above
+ HTML:
A select button slot, which is a slot
.
Select fallback button text, which is a div
.
A select popover, which is a div
.
A select popover slot, which is a slot
.
The implicit anchor element of the select popover element is the
+ select
element shadow host of the shadow host in which select popover
+ resides.
The shadow root used for select
's drop-down box
+ base appearance must have its slot assignment set to "manual
". The shadow root must also have delegates focus
+ set to true if select button slot has an assigned node.
Without delegates focus set to true, the select
itself
+ would receive focus instead of the button
which is slotted into the select
+ button slot.
select
elements rendered as a drop-down box with base
+ appearance must render as if they are using manual slot assignment with the
+ following base select slotting algorithm to assign
+ their child nodes to slots. To perform the base select slotting algorithm, given a
+ select
element select:
Let firstButton be null.
Let otherChildren be « ».
For each Node
child in
+ select's children:
If child is a button
and firstButton is null, then set
+ firstButton to child.
Otherwise, append child to + otherChildren.
Set select's select button slot's manually assigned + nodes to firstButton.
Set select's select popover slot's manually assigned + nodes to otherChildren.
An optgroup
element is expected to be rendered by displaying the element's label
attribute.
An option
element is expected to be rendered by displaying the element's label, indented under its optgroup
element if it
- has one.
option
is being rendered in a select
which is being
+ rendered as a drop-down box with base appearance, then the
+ option
is expected to render all of its children rather than by displaying its label.
Each sequence of one or more child hr
element siblings may be rendered as a single
separator.