-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define the <selectedcontent>
element
#10633
base: main
Are you sure you want to change the base?
Conversation
The `<selectedoption>` element is part of the customizable `<select>` proposal: whatwg#9799 It 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. The timing of cloning has been discussed here: whatwg#10520 The 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 @josepharhar The `<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/+/18b5eac27b14b409503aa8047cf9358082a0e0df Co-authored-by: Joey Arhar @josepharhar
Thanks!
|
This still seems incomplete. Where does the |
Thanks, I updated the content model of the button element |
In response to feedback from @dbaron, I made the one selectedcontent element which receives updates be the first one in tree order instead of the first one to be inserted. I also removed the select descendant selectedoption elements list. |
Since we are only planning to support one <selectedcontent> element in <select>, this patch only performs a clone into the first <selectedcontent> in tree order. This is in response to feedback here: whatwg/html#10633 (comment) This patch also removes the logic which clears <selectedcontent> elements when they are removed/disconnected. Change-Id: I1580ec9f12df463d1f5134905e3e527cfefa694d
Since we are only planning to support one <selectedcontent> element in <select>, this patch only performs a clone into the first <selectedcontent> in tree order. This is in response to feedback here: whatwg/html#10633 (comment) This patch also removes the logic which clears <selectedcontent> elements when they are removed/disconnected. Change-Id: I1580ec9f12df463d1f5134905e3e527cfefa694d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6043186 Reviewed-by: David Baron <[email protected]> Commit-Queue: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1399301}
Since we are only planning to support one <selectedcontent> element in <select>, this patch only performs a clone into the first <selectedcontent> in tree order. This is in response to feedback here: whatwg/html#10633 (comment) This patch also removes the logic which clears <selectedcontent> elements when they are removed/disconnected. Change-Id: I1580ec9f12df463d1f5134905e3e527cfefa694d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6043186 Reviewed-by: David Baron <[email protected]> Commit-Queue: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1399301}
…ent> element, a=testonly Automatic update from web-platform-tests Only update first appended <selectedcontent> element Since we are only planning to support one <selectedcontent> element in <select>, this patch only performs a clone into the first <selectedcontent> in tree order. This is in response to feedback here: whatwg/html#10633 (comment) This patch also removes the logic which clears <selectedcontent> elements when they are removed/disconnected. Change-Id: I1580ec9f12df463d1f5134905e3e527cfefa694d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6043186 Reviewed-by: David Baron <[email protected]> Commit-Queue: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1399301} -- wpt-commits: 2331838b392c5802a97e5623769e0ad0b7b7102f wpt-pr: 49804
…ent> element, a=testonly Automatic update from web-platform-tests Only update first appended <selectedcontent> element Since we are only planning to support one <selectedcontent> element in <select>, this patch only performs a clone into the first <selectedcontent> in tree order. This is in response to feedback here: whatwg/html#10633 (comment) This patch also removes the logic which clears <selectedcontent> elements when they are removed/disconnected. Change-Id: I1580ec9f12df463d1f5134905e3e527cfefa694d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6043186 Reviewed-by: David Baron <[email protected]> Commit-Queue: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1399301} -- wpt-commits: 2331838b392c5802a97e5623769e0ad0b7b7102f wpt-pr: 49804
Since we are only planning to support one <selectedcontent> element in <select>, this patch only performs a clone into the first <selectedcontent> in tree order. This is in response to feedback here: whatwg/html#10633 (comment) This patch also removes the logic which clears <selectedcontent> elements when they are removed/disconnected. Change-Id: I1580ec9f12df463d1f5134905e3e527cfefa694d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6043186 Reviewed-by: David Baron <[email protected]> Commit-Queue: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1399301}
Adding a proper backlink to: mozilla/standards-positions#1142 I'm worried about breaking the implied invariant that the parser creates exactly one element node per (possibly implied) non-erroneous start tag. I don't at this time have a concrete end-to-end scenario of what badness exactly may ensue, but it's a bad sign about breaking an invariant leading to issues that then need addressing that there's already a remark about preventing infinite loops upthread and a separate issue about the timing of cloning (#10520). In the error handling case where one element per start tag does not hold, the spec says "Create an element for the token for which the element node was created, in the HTML namespace" instead of cloning a formatting element. This is in response to https://www.w3.org/Bugs/Public/show_bug.cgi?id=6743 , which was motivated by avoidance of data flows from the live DOM into the tree builder algorithm. However, it looks like the Do I understand correctly that cloning into the regular DOM instead of a UA shadow DOM came from w3c/csswg-drafts#10242 (comment) ? |
Yes. We had many lengthy discussions about this, since cloning into shadow DOM avoids a few problems. But it also introduced a myriad of issues that were much more serious than the ones posed by cloning into regular DOM. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK I think this LGTM!
I would like some clarification in the OP as to whether #10520 is fully resolved and fixed by this PR. And we'll need to check the rest of the boxes in the OP and fill out the needed information. I'll add the DNM label until these are satisfied.
This sort of makes us match the spec more closely: whatwg/html#10633 (comment) When there is a <selectedcontent> inside nested <select>s, we were adding the <selectedcontent> to all <select>'s descendant selectedcontent element lists. This was probably fine but it also wasn't removed properly in HTMLSelectedContentElement::RemovedFrom, so I'm adding an early return to prevent adding the <selectedcontent> to the upper <select>'s list of descendant selectedcontent elements. Change-Id: I1591ce192ec3033f32de319e4cb5431aec19cfa3 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6196578 Reviewed-by: Dominic Farolino <[email protected]> Commit-Queue: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1412608}
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.The timing of cloning has been discussed here: #10520
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
(See WHATWG 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 )