- Notifications
You must be signed in to change notification settings - Fork2.9k
Define the<selectedcontent>
element#10633
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Conversation
The `<selectedoption>` element is part of the customizable `<select>`proposal:whatwg#9799It allows authors to declaratively clone the contents of the currentlyselected `<option>` of a `<select>` and style it independently for usein a base appearance `<select>`'s button.The timing of cloning has been discussed here:whatwg#10520The selectedoption element has been discussed generally here:w3c/csswg-drafts#10242
It seems this is missing a lot of the boilerplate that new elements normally have as well as changes to content models, indexes, etc. See also this checklist at the top of
|
I recreated the [original PR](w3c/html-aam#566) by@josepharharThe `<selectedoption>` element is part of the [customizable select feature](whatwg/html#9799) and is being added to HTML [here](whatwg/html#10633).## Implementation* WPT tests:web-platform-tests/wpt#45096* Implementations (link to issue or when done, link to commit): * WebKit: TODO * Gecko: TODO * Blink:https://chromium.googlesource.com/chromium/src/+/18b5eac27b14b409503aa8047cf9358082a0e0dfCo-authored-by: Joey Arhar@josepharhar
Thanks!
|
This still seems incomplete. Where does the |
Uh oh!
There was an error while loading.Please reload this page.
Thanks, I updated the content model of the button element |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
@domfarolino sorry, I missed your mention of me since I've already been mentioned in this thread, github doesn't make it clear when someone has been re-mentioned. the html aam (2344) PR is waiting on this to merge. It hasn't had any updates since I made some wording changes to a note in February. There are various other HTML AAM PRs related to customizable select which are also ready to go once everything is ready to merge into the HTML spec. the aria in html pr (528) is essentially ready to go as well. No more spec updates needed, just some issues to file against conformance checkers. |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
@josepharhar not sure if this is the PR to comment on or not, but per our chat discussion it's probably worth calling out that while Someone can still benefit from broader styling capabilitiesand still define option element label text using the attributeif their customized select does not contain a button part (and thus no selectedcontent element). Maybe it makes sense to call this out? that way, if someone does attempt to use label attributes when defining their options, it's made clear "if you want to do this, then you shouldn't use the button part/selectedconent elements. but, to have greater control, use child content of the option to define your labels, which will also allow for more styling capabilities for represented the selected content in the select's collapsed state. or you know... word smith as you see fit |
Thanks Scott! I added a note here:bcd9669 |
These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarhar@chromium.org>Reviewed-by: Dominic Farolino <dom@chromium.org>Cr-Commit-Position: refs/heads/main@{#1458866}
These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarhar@chromium.org>Reviewed-by: Dominic Farolino <dom@chromium.org>Cr-Commit-Position: refs/heads/main@{#1458866}
These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarhar@chromium.org>Reviewed-by: Dominic Farolino <dom@chromium.org>Cr-Commit-Position: refs/heads/main@{#1458866}
…content>,Automatic update from web-platform-testsAdd MutationObserver tests for <selectedcontent>These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarhar@chromium.org>Reviewed-by: Dominic Farolino <dom@chromium.org>Cr-Commit-Position: refs/heads/main@{#1458866}--wpt-commits: 23b9c427c9115a1b40b95e4e4099c353a985c958wpt-pr: 52476Differential Revision:https://phabricator.services.mozilla.com/D249370
…content>,Automatic update from web-platform-testsAdd MutationObserver tests for <selectedcontent>These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarhar@chromium.org>Reviewed-by: Dominic Farolino <dom@chromium.org>Cr-Commit-Position: refs/heads/main@{#1458866}--wpt-commits: 23b9c427c9115a1b40b95e4e4099c353a985c958wpt-pr: 52476Differential Revision:https://phabricator.services.mozilla.com/D249370
…content>,Automatic update from web-platform-testsAdd MutationObserver tests for <selectedcontent>These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarhar@chromium.org>Reviewed-by: Dominic Farolino <dom@chromium.org>Cr-Commit-Position: refs/heads/main@{#1458866}--wpt-commits: 23b9c427c9115a1b40b95e4e4099c353a985c958wpt-pr: 52476Differential Revision:https://phabricator.services.mozilla.com/D249370
…content>,Automatic update from web-platform-testsAdd MutationObserver tests for <selectedcontent>These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarharchromium.org>Reviewed-by: Dominic Farolino <domchromium.org>Cr-Commit-Position: refs/heads/main{#1458866}--wpt-commits: 23b9c427c9115a1b40b95e4e4099c353a985c958wpt-pr: 52476Differential Revision:https://phabricator.services.mozilla.com/D249370UltraBlame original commit: c92c496cf3b9513fb0279fdb8afa468388d866ff
…content>,Automatic update from web-platform-testsAdd MutationObserver tests for <selectedcontent>These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarharchromium.org>Reviewed-by: Dominic Farolino <domchromium.org>Cr-Commit-Position: refs/heads/main{#1458866}--wpt-commits: 23b9c427c9115a1b40b95e4e4099c353a985c958wpt-pr: 52476Differential Revision:https://phabricator.services.mozilla.com/D249370UltraBlame original commit: c92c496cf3b9513fb0279fdb8afa468388d866ff
…content>,Automatic update from web-platform-testsAdd MutationObserver tests for <selectedcontent>These were requested here:whatwg/html#10633 (comment)There are failing test expectations added for the virtual test suiteswhere CustomizableSelect is disabled, where the <selectedcontent>element is not enabled.Change-Id: Ib2906a5c8d70ae5ea5cccb6d899c79b29ea45e5eReviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/6471702Commit-Queue: Joey Arhar <jarharchromium.org>Reviewed-by: Dominic Farolino <domchromium.org>Cr-Commit-Position: refs/heads/main{#1458866}--wpt-commits: 23b9c427c9115a1b40b95e4e4099c353a985c958wpt-pr: 52476Differential Revision:https://phabricator.services.mozilla.com/D249370UltraBlame original commit: c92c496cf3b9513fb0279fdb8afa468388d866ff
estelle commentedMay 20, 2025
Permdn/content#39411; "Dynamic modifications to the selected This has usability and security risks. If the option can be updated without the content of the We don't want to add anything to the web platform that may potentially break things, make a form control less accessible, or add any vulnerabilities. |
I don't think this is possible without JS. To get this behavior, youneed JS manipulating the DOM in a very particular way: the
If the malicious code has DOM access, isn't this already true?
This would submit the value "1000000" even though the user sees "1". |
estelle commentedMay 22, 2025
If the site is using JS, will it ever break the <selectid=purchase_quantity><optionvalue=1000000> 1</option></select> while the above is currently and has always been possible, if the following is ever possible, the implementation needs to be fixed: <selectid=purchase_quantity><button><selectedcontent>1</selectedcontent></button><optionselected> 10</option></select> This being pseudo-markup: Where "selected" is not necessarily an attribute, but rather the current state |
This PR won't be merged and will instead be included in a bigger PR including all customizable select PRs:#10548 |
titoBouzout commentedJun 17, 2025
An element that modifies the page by adding/removing elements seems like a bad idea. It will break any code that expects the structure of the html to be the same as it was served. |
Uh oh!
There was an error while loading.Please reload this page.
The
<selectedcontent>
element is part of the customizable<select>
proposal:#9799It allows authors to declaratively clone the contents of the currently selected
<option>
of a<select>
and style it independently for use in a base appearance<select>
's button.Some details on the cloning behavior, which were decided on in order to always make sure that the selectedcontent element is up to date and in order to reduce developer confusion:
</option>
end tag is parsed during HTML parsing.Fixes#10520
The selectedcontent element has been discussed generally here:w3c/csswg-drafts#10242
html-aria PR:w3c/html-aria#528
html-aam PR:w3c/aria#2344
(SeeWHATWG Working Mode: Changes for more details.)
/form-control-infrastructure.html (diff )
/form-elements.html (diff )
/index.html (diff )
/indices.html (diff )
/infrastructure.html (diff )
/interactive-elements.html (diff )
/parsing.html (diff )