I think this is a very exciting improvement to the web platform so thanks for all the work! That said, I would want to know more about the interoperability picture. Both Mozilla and WebKit have been scarily passive on their standard position issues, even if they have excited engineers working on the spec. When could a web developer expect this to work all across the web?

/Daniel

On 2025-01-28 17:55, Joey Arhar wrote:
> There's an impressive amount of related spec work here, and not all of it landed. How should we think about this? Is everything on track to land, or are some issues/PRs non-blockers to the feature?

Yes they're on track to land once editorial review has completed, and no blocking concerns have been raised other than the two mentioned in the "Anticipated spec changes" section of the intent to ship. It's possible other vendors will raise new concerns but we haven't heard any.

> How should we think about the tests that we are failing?

Some of the tests are flaky, as you can see since some are passing in Edge (Windows) but not Chrome (Linux) or vice-versa. There are some open bugs about the flakiness that we are working on, but it's important to note that the feature itself works correctly.

On Tue, Jan 28, 2025 at 8:36 AM Mike Taylor <miketa...@chromium.org> wrote:

    On 1/28/25 11:03 AM, Joey Arhar wrote:

    > Please request the various bits in your chromestatus entry, thanks.

    Done
    Thanks, Joey.

    On Tue, Jan 28, 2025 at 7:17 AM Mike Taylor
    <miketa...@chromium.org> wrote:

        Please request the various bits in your chromestatus entry,
        thanks.

        On 1/24/25 1:20 PM, Joey Arhar wrote:


                Contact emails

        jar...@chromium.org <mailto:jar...@chromium.org>,
        mas...@chromium.org, dan...@microsoft.com


                Explainer

        https://open-ui.org/components/select
        <https://open-ui.org/components/select>


                Specification

        https://github.com/whatwg/html/issues/9799
        <https://github.com/whatwg/html/issues/9799>(see sub-PRs
        linked there)


    There's an impressive amount of related spec work here, and not
    all of it landed. How should we think about this? Is everything on
    track to land, or are some issues/PRs non-blockers to the feature?


                Design docs

        https://open-ui.org/components/select
        <https://open-ui.org/components/select>


                Summary


        Customizable <select> allows developers to take complete
        control of the rendering of <select>, including the ability
        to fully customize both the in-page “button” element as well
        as the popup picker, with arbitrary content within options.
        Developers can opt in to this new behavior with a simple CSS
        declaration that uses a new `base-select` value for the
        `appearance` property.


        This new capability has been in development for a very long
        time, starting in late 2019
        <https://www.youtube.com/watch?v=ZFvPLrKZywA>in earnest
        (with the original explainer
        
<https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ControlUICustomization/explainer.md>from
        June 2020). Due to that early work, two other platform APIs
        were identified as prerequisites for customizable-<select>:
        the popover API and anchor positioning. Now, with both of
        those APIs landed in standards and browsers, the
        customizable-<select> is unblocked.


        Once the customizable-<select> feature began to get
        discussed in standards (at OpenUI in 2020
        
<https://github.com/openui/open-ui/issues?q=is%3Aissue%20label%3Aselect%20sort%3Acreated-asc>,
        and in WHATWG
        <https://github.com/whatwg/html/issues/9799>and CSSWG in
        mid-2023), it rapidly evolved. Not only did the names of the
        elements change (<selectmenu>, <selectlist>, then <select>,
        etc.) but the shape of the API changed considerably. It
        evolved from a very shadow-DOM centric API using things like
        the slot attribute to a more HTML-like API using new
        elements such as the <selectedcontent> element. The
        WHATWG/CSSWG/OpenUI joint task force worked through the
        question of how to opt-in to the new behavior, selecting
        among a new element, an HTML attribute, a CSS property, or
        something else, and arrived at a consensus of using the CSS
        appearanceproperty. Many discussions were had (e.g. in
        OpenUI <https://github.com/openui/open-ui/issues/540>and
        WHATWG <https://github.com/whatwg/html/issues/10317>) about
        the content model and the allowed set of controls, to ensure
        the new control is accessible and rational, while still
        providing a very flexible, powerful API to developers.
        Overall, the standards process shaped this API into
        something that follows platform conventions, has natural
        naming and methods to achieve goals, and builds naturally
        upon recently added features such as popover, anchor
        positioning, interactivity:inert, and many others. In
        addition, the construction of the customizable-<select> API
        has been a huge catalyst to find other missing platform
        features and quirks, such as corner cases
        <https://github.com/whatwg/html/pull/10770>in the popover API.


        Throughout this process, we’ve worked hard to reach out to
        the developer community, to ensure all common use cases are
        supported, there aren’t lingering compat issues, and the new
        customizable-<select> control is as accessible as possible.
        In some cases, e.g. the necessary changes to the HTML parser
        to allow arbitrary content, there is still some compat risk.
        We are working hard to increase our confidence that we can
        ship those changes via (separate
        <https://chromestatus.com/feature/5145948356083712>) Finch
        testing and rollout. However, at this point, we are
        confident that we have reached a stable API shape with a low
        level of risk.


                Blink component

        Blink>Forms>Select


                Search tags

        select <https://chromestatus.com/features#tags:select>,
        custom select
        <https://chromestatus.com/features#tags:custom%20select>,
        controls <https://chromestatus.com/features#tags:controls>,
        form controls
        <https://chromestatus.com/features#tags:form%20controls>,
        custom controls
        <https://chromestatus.com/features#tags:custom%20controls>,
        custom form controls
        <https://chromestatus.com/features#tags:custom%20form%20controls>


                TAG review

        https://github.com/w3ctag/design-reviews/issues/1007
        <https://github.com/w3ctag/design-reviews/issues/1007>


                TAG review status

        Issues resolved


                Risks



                Interoperability and Compatibility

        Interop risk is low because we have been designing this
        feature closely with Apple and Mozilla during the
        standardization process over the last 15 months.


        Changing the HTML parser for <select> elements is a
        prerequisite for this change and has some compat risks,
        which had a separate intent here:
        
https://groups.google.com/a/chromium.org/g/blink-dev/c/5_9-Qkvlj2M/m/Q96A126vAAAJ
        
<https://groups.google.com/a/chromium.org/g/blink-dev/c/5_9-Qkvlj2M/m/Q96A126vAAAJ>


        Gecko: No signal

        https://github.com/mozilla/standards-positions/issues/1060
        <https://github.com/mozilla/standards-positions/issues/1060>


        WebKit: No signal

        https://github.com/WebKit/standards-positions/issues/386
        <https://github.com/WebKit/standards-positions/issues/386>


        Web developers: Very strongly positive

        https://2024.stateofhtml.com/en-US/features/#reading_list
        <https://2024.stateofhtml.com/en-US/features/#reading_list>


        Other signals:


                Ergonomics

        None in particular.



                Activation

        Clear documentation will be required to help developers
        understand the opt in and how to style and replace various
        parts of the new select element. We already have some
        documentation here but will create another blog post for
        launching the feature:

         *

            https://developer.chrome.com/blog/rfc-customizable-select
            <https://developer.chrome.com/blog/rfc-customizable-select>

         *

            https://una.im/select-updates/
            <https://una.im/select-updates/>



                Security

        The picker for customizable select does not extend outside
        of the web contents like an appearance:auto select does, so
        there should not be any new capabilities exposed which would
        have security considerations.



                WebView application risks

        Does this intent deprecate or change behavior of existing
        APIs, such that it has potentially high risk for Android
        WebView-based applications?

        None



                Debuggability

        The customizable select should already be fairly debuggable
        via existing DevTools features. The new select does add a
        few new pseudo-elements, which have been added to DevTools.



                Will this feature be supported on all six Blink
                platforms (Windows, Mac, Linux, ChromeOS, Android,
                and Android WebView)?

        Yes


                Is this feature fully tested by web-platform-tests
                
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?

        Yes

        
https://wpt.fyi/results/html/semantics/forms/the-select-element/customizable-select
        
<https://wpt.fyi/results/html/semantics/forms/the-select-element/customizable-select>


    How should we think about the tests that we are failing?


                Flag name on about://flags

        None


                Finch feature name

        CustomizableSelect


                Non-finch justification

        None


                Requires code in //chrome?

        False


                Tracking bug

        https://crbug.com/40146374 <https://crbug.com/40146374>


                Estimated milestones

        134



                Anticipated spec changes


        Customizable select is currently in stage 2
        <https://whatwg.org/stages#stage2>in WHATWG. We have had
        spec PRs open for review since August of last year
        <https://github.com/whatwg/html/pull/10548>, and we have
        been repeatedly asking for reviews and feedback at WHATNOT
        meetings. However, we have not received stage 3
        <https://whatwg.org/stages#stage3>approval yet, which means
        that the other implementers have not yet signed off on the
        final design. These are the only remaining open issues that
        have been raised, and we don’t anticipate any significant
        changes based on the resolutions of these:

         *

            Should alt text be included in select.value?
            <https://github.com/whatwg/html/issues/10317>

         *

            How should we write about user interactions and events
            in the spec? <https://github.com/whatwg/html/issues/10762>


                Link to entry on the Chrome Platform Status

        https://chromestatus.com/feature/5737365999976448
        <https://chromestatus.com/feature/5737365999976448>


        This intent message was generated by Chrome Platform Status
        <https://chromestatus.com/>.


-- You received this message because you are subscribed to the
        Google Groups "blink-dev" group.
        To unsubscribe from this group and stop receiving emails
        from it, send an email to blink-dev+unsubscr...@chromium.org.
        To view this discussion visit
        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btw%2BX5UTWoDCGNUCpEUHYh%2BhgddTgOerGHugFnBGbQnb-Rg%40mail.gmail.com
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btw%2BX5UTWoDCGNUCpEUHYh%2BhgddTgOerGHugFnBGbQnb-Rg%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btw%2BnT5aX9dncP%2BQ2gUDzYKpYsD2ZJUCQXHAJJnrLR8WHsA%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btw%2BnT5aX9dncP%2BQ2gUDzYKpYsD2ZJUCQXHAJJnrLR8WHsA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/d396f6af-cb1e-4112-9b7d-4eb7fc8de5cd%40gmail.com.

Reply via email to