Support <selectedcontent> in <select multiple>#12430
Open
josepharhar wants to merge 25 commits into
Open
Conversation
This PR improves the "clear a select's non-primary selectedcontent elements" algorithm by making it create a list of selectedcontent elements to modify separately from modifying them in order to prevent the list of elements to change while iterating. Fixes whatwg#11880
This PR makes sure that the contents of the selectedcontent element stay up to date when the selected option is changed in the selectedness setting algorithm. This issue was found here: web-platform-tests/wpt#55849 (comment)
In order to make the selectedness setting algorithm match implementations, this PR makes the selectedness setting algorithm avoid changing the selectedness of option elements which haven't ran their insertion steps yet by checking whether the options have their cached nearest ancestor select element assigned yet or not. This was discussed here: whatwg#11825
…electedcontentredo
…contentredo Merged the PRs, now I need to do the selectedcontent rewrite to clone into all descendant selectedcontent elements.
This PR adds support for using the selectedcontent element in a select
element with the multiple attribute by cloning each of the option
elements into the selectedcontent element.
Each cloned option will be wrapped by a generated div element inside the
selectedcontent element, so the resulting DOM would look like this:
```html
<select multiple size=1>
<selectedcontent>
<div>one</div>
<div>two</div>
</selectedcontent>
<option selected>one</option>
<option selected>two</option>
<option>three</option>
</select>
```
Fixes whatwg#12342
Contributor
Author
|
This PR is currently based on the other PR to rewrite a bunch of selectedcontent stuff, and therefore includes all of its contents: #12263 When that PR is merged, the diff of this one should be easier to read. Here is a diff which shows the actual changes of this proposal by diffing the other PR with this one: https://github.com/josepharhar/html/compare/selectedcontentredo...josepharhar:html:selectedcontentmultiple?expand=1 |
keithamus
reviewed
May 12, 2026
Comment on lines
+59533
to
+59541
| <li><p>If <var>option</var> is <span data-x="concept-option-selectedness">selected</span>, then | ||
| <span data-x="list append">append</span> <var>option</var> to | ||
| <var>selectedOptions</var>.</p></li> | ||
| </ol> | ||
| </li> | ||
|
|
||
| <li><p>If <var>select</var> has the <code data-x="attr-select-multiple">multiple</code> | ||
| attribute, then run <span>clone multiple options into a <code>selectedcontent</code></span> given | ||
| <var>selectedOptions</var> and <var>selectedcontent</var>.</p></li> |
Member
There was a problem hiding this comment.
Would it make more sense here to do something like:
- Let isMulitple be true if select has the multiple attribute.
- For each option in select's list of options.
- If option is not selected then continue.
- If isMultiple is false, run clone an option into a selectedcontent given option and selectedcontent, and return.
- Append option to selectedoptions given selectedOptions and selectedcontent.
- If selectedoptions is empty, then run clear a selectedcontent given selectedcontent.
- Otherwise, run clone multiple options into a selectedcontent given selectedOptions and selectedcontent.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds support for using the selectedcontent element in a select
element with the multiple attribute by cloning each of the option
elements into the selectedcontent element.
Each cloned option will be wrapped by a generated div element inside the
selectedcontent element, so the resulting DOM would look like this:
Fixes #12342
(See WHATWG Working Mode: Changes for more details.)
/form-elements.html ( diff )