diff --git a/source b/source index dce024a305f..1b2b61b79f9 100644 --- a/source +++ b/source @@ -3230,12 +3230,14 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
The list of options for a select
- element consists of all the option
element children of the select
- element, and all the option
element children of all the optgroup
element
- children of the select
element, in tree order.
To get the list of options given a
+ select
element select:
Let options be « ».
For each node of select's
+ descendants in tree order except the descendants
+ which are select
elements and their subtrees:
If node is an option
element, then append node to options.
Return options.
The required
attribute is a boolean attribute. When specified, the user will be required to select
@@ -53608,34 +53625,6 @@ interface HTMLSelectElement : HTMLElement {
to false.
The option
HTML element insertion
- steps, given insertedNode, are:
If insertedNode's parent is a select
element, or
- insertedNode's parent is an optgroup
element whose parent is a
- select
element, then run that select
element's selectedness
- setting algorithm.
The option
HTML element removing
- steps, given removedNode and oldParent, are:
If oldParent is a select
element, or oldParent is an
- optgroup
element whose parent is a select
element, then run that
- select
element's selectedness setting algorithm.
The optgroup
HTML element removing
- steps, given removedNode and oldParent, are:
If oldParent is a select
element and removedNode has an
- option child, then run oldParent's selectedness setting
- algorithm.
If an option
element in the list of
options asks for a reset, then run that
select
element's selectedness setting algorithm.
The option
HTML element insertion steps, given
+ insertedOption, are:
For each ancestor of insertedOption's ancestors in reverse tree order:
+ +If ancestor is a select
element, then run the selectedness
+ setting algorithm given ancestor and return.
The option
HTML element removing steps, given
+ removedOption and oldParent, are:
For each ancestor of oldParent's inclusive ancestors in reverse tree order:
+ +If ancestor is a select
element, then run the selectedness
+ setting algorithm given ancestor and return.
option.selected
Several of these modes, namely "in head", "in body", "in - table", and "in select", are special, in - that the other modes defer to them at various times. When the algorithm below says that the user - agent is to do something "using the rules for the m insertion - mode", where m is one of these modes, the user agent must use the rules - described under the m insertion mode's section, but must leave - the insertion mode unchanged unless the rules in m themselves - switch the insertion mode to a new value.
+ data-x="insertion mode: in body">in body", and "in + table", are special, in that the other modes defer to them at various times. When the + algorithm below says that the user agent is to do something "using the rules for the + m insertion mode", where m is one of these modes, the user agent must use + the rules described under the m insertion mode's section, but must leave + the insertion mode unchanged unless the rules in m themselves switch the + insertion mode to a new value.When the insertion mode is switched to "text" or "in table text", the original insertion @@ -125193,37 +125208,6 @@ dictionary StorageEventInit : EventInit { parsing algorithm (fragment case), set node to the context element passed to that algorithm.
-If node is a select
element, run these substeps:
If last is true, jump to the step below labeled - done.
Let ancestor be node.
Loop: If ancestor is the first node in the stack of - open elements, jump to the step below labeled done.
Let ancestor be the node before ancestor in the - stack of open elements.
If ancestor is a template
node, jump to the step below
- labeled done.
If ancestor is a table
node, switch the insertion
- mode to "in select in table"
- and return.
Jump back to the step labeled loop.
Done: Switch the insertion mode to "in select" and return.
If node is a td
or th
element and last is
false, then switch the insertion mode to "in
cell" and return.
th
marquee
object
select
template
mi
mo
template
in the HTML namespaceThe stack of open elements is said to have a particular element in select scope when it has that element in the specific scope consisting of all element types - except the following:
- -optgroup
in the HTML namespaceoption
in the HTML namespaceNothing happens if at any time any of the elements in the stack of open elements
are moved to a new location in, or removed from, the Document
tree. In particular,
the stack is not changed in this situation. This can cause, amongst other strange effects, content
@@ -130115,6 +130089,18 @@ document.body.appendChild(text);
p
element in button scope, then close a p
element.
If the stack of open elements has a
+ select
element in scope, then:
Generate implied end tags.
If the stack of open elements has an
+ option
element in scope or has an
+ optgroup
element in scope, then this is a parse
+ error.
Insert an HTML element for the token. Immediately pop the current node off the stack of open elements.
@@ -130184,25 +130170,68 @@ document.body.appendChild(text);Reconstruct the active formatting elements, if any.
+If the stack of open elements has a
+ select
element in scope, then:
Insert an HTML element for the token.
+Parse error.
Set the frameset-ok flag to "not ok".
+Pop elements from the stack of open elements until a select
+ element has been popped from the stack.
Otherwise:
+ +Reconstruct the active formatting elements, if any.
Insert an HTML element for the token.
Set the frameset-ok flag to "not ok".
If the stack of open elements has a
+ select
element in scope, then:
Generate implied end tags except for optgroup
+ elements.
If the stack of open elements has an
+ option
element in scope, then this is a parse error.
Otherwise:
+ +If the current node is an option
element, then pop the
+ current node off the stack of open elements.
If the insertion mode is one of "in - table", "in caption", "in table body", "in row", or "in cell", then switch the - insertion mode to "in select in - table". Otherwise, switch the insertion mode to "in select".
+Reconstruct the active formatting elements, if any.
+ +Insert an HTML element for the token.
If the current node is an option
element, then pop the
- current node off the stack of open elements.
If the stack of open elements has a
+ select
element in scope, then:
Generate implied end tags.
If the stack of open elements has an
+ option
element in scope or has an
+ optgroup
element in scope, then this is a parse
+ error.
Otherwise, if the current node is an option
element, then pop the
+ current node from the stack of open elements.
Reconstruct the active formatting elements, if any.
@@ -131330,231 +131359,6 @@ document.body.appendChild(text); same time, nor can it have neither when the close the cell algorithm is invoked. -When the user agent is to apply the rules for the "in - select" insertion mode, the user agent must handle the token as follows:
- -Parse error. Ignore the token.
-Insert the token's character.
-Insert a comment.
-Parse error. Ignore the token.
-Process the token using the rules for the "in body" insertion mode.
-If the current node is an option
element, pop that node from the
- stack of open elements.
Insert an HTML element for the token.
-If the current node is an option
element, pop that node from the
- stack of open elements.
If the current node is an optgroup
element, pop that node from the
- stack of open elements.
Insert an HTML element for the token.
-If the current node is an option
element, pop that node from the
- stack of open elements.
If the current node is an optgroup
element, pop that node from the
- stack of open elements.
Insert an HTML element for the token. Immediately pop the current - node off the stack of open elements.
- -Acknowledge the token's self-closing flag, if it is set.
-First, if the current node is an option
element, and the node
- immediately before it in the stack of open elements is an optgroup
- element, then pop the current node from the stack of open
- elements.
If the current node is an optgroup
element, then pop that node from
- the stack of open elements. Otherwise, this is a parse error; ignore
- the token.
If the current node is an option
element, then pop that node from
- the stack of open elements. Otherwise, this is a parse error; ignore
- the token.
If the stack of open elements does not have a select
element in select scope, this is a parse
- error; ignore the token. (fragment case)
Otherwise:
- -Pop elements from the stack of open elements until a select
element
- has been popped from the stack.
Reset the insertion mode appropriately.
-Parse error.
- - -If the stack of open elements does not have a select
element in select scope, ignore the token.
- (fragment case)
Otherwise:
- -Pop elements from the stack of open elements until a select
element
- has been popped from the stack.
Reset the insertion mode appropriately.
- - -It just gets treated like an end tag.
-Parse error.
- - -If the stack of open elements does not have a select
element in select scope, ignore the token.
- (fragment case)
Otherwise:
- -Pop elements from the stack of open elements until a select
element
- has been popped from the stack.
Reset the insertion mode appropriately.
- - -Reprocess the token.
-Process the token using the rules for the "in head" insertion mode.
-Process the token using the rules for the "in body" insertion mode.
-Parse error. Ignore the token.
-When the user agent is to apply the rules for the "in select in table" insertion mode, the user agent must handle the - token as follows:
- -Parse error.
- - -Pop elements from the stack of open elements until a select
element
- has been popped from the stack.
Reset the insertion mode appropriately.
- - -Reprocess the token.
-Parse error.
- -If the stack of open elements does not have an element in table scope that is an HTML - element with the same tag name as that of the token, then ignore the token.
- -Otherwise:
- - -Pop elements from the stack of open elements until a select
element
- has been popped from the stack.
Reset the insertion mode appropriately.
- - -Reprocess the token.
-Process the token using the rules for the "in select" insertion mode.
-When the user agent is to apply the rules for the "in