Skip to content
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

Early customizable select feature #2301

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Early customizable select feature #2301

wants to merge 5 commits into from

Conversation

captainbrosset
Copy link
Contributor

Customizable select has been in discussions and in various states of prototypes for a few years already. It's feeling like the proposal is stabilizing now, and the feature has reached WHATWG stage 2 (soon stage 3). See this developer.chrome.com blog about it.

We've talked about how some (most?) features might need to get created early in the making, and I wanted to see what it felt like for this one.

@SachaG had asked for it in the past, in order to be able to link to it from State of HTML, where it's mentioned.

@github-actions github-actions bot added the feature definition Creating or defining new features or groups of features. label Nov 21, 2024
@captainbrosset
Copy link
Contributor Author

One obvious problem with creating this early feature is the lack of official spec. I think the most official artefact we have for this feature is the explainer on openui.org, which is what I've used for now, but which breaks the build.

@@ -0,0 +1,11 @@
name: Customizable <select>
description: The `<select>` element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS.
spec: https://open-ui.org/components/customizableselect/

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this the same link that's already there in the file?

@ddbeck ddbeck added the early features Feature definition work for features without shipping implementations label Jan 29, 2025
@captainbrosset
Copy link
Contributor Author

@captainbrosset
Copy link
Contributor Author

One obvious problem with creating this early feature is the lack of official spec. I think the most official artefact we have for this feature is the explainer on openui.org, which is what I've used for now, but which breaks the build.

Based on the html spec PR, there are actually multiple spec additions that cover what's needed for customizable select:

Spec PRs:

CSS spec PRs:

Accessibility PRs:

It might make sense to just allow the OpenUI explainer to our list of spec instead of waiting for all of these PRs to get merged and then to reference them all in the feature.

@captainbrosset
Copy link
Contributor Author

@ddbeck I think we should merge this pretty much as is, allowing the OpenUI explainer URL. Customizable select has been in the works for many years, it needs to exist on our repo. We can use this as a guinea pig for early features if we want.

@github-actions github-actions bot added the tools and infrastructure Project internal tooling, such as linters, GitHub Actions, or repo settings label Jan 30, 2025
Copy link
Collaborator

@ddbeck ddbeck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy with this, but before merging, I'd like the spec link exception to point at something that'll tell us when the specification story is resolved.

],
[
"https://open-ui.org/components/customizableselect/",
"Allowed because customizable select doesn't yet have a spec URL. And even when it does, it will be defined in multiple HTML, CSS, and ARIA specs. The OpenUI explainer is the only central place that defines the component at the moment."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a good issue or PR to link to that would prompt us to remove this exception? Basically, I want to know where to look when we have "real" spec links to replace this with.

Something like this?

Suggested change
"Allowed because customizable select doesn't yet have a spec URL. And even when it does, it will be defined in multiple HTML, CSS, and ARIA specs. The OpenUI explainer is the only central place that defines the component at the moment."
"Allowed because customizable select doesn't yet have a spec URL. And even when it does, it will be defined in multiple HTML, CSS, and ARIA specs. The OpenUI explainer is the only central place that defines the component at the moment. Remove when SOMEURL merges."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are multiple PRs, not just one. See my previous comment: #2301 (comment)
Out of those, I'm guessing it would be enough to link to the following ones:

whatwg/html#10586
whatwg/html#10629
whatwg/html#10633

@josepharhar are you able to help select one (or more, but ideally a small number) spec PR that would basically signify "that's it, customizable select is now in the spec"?

ddbeck added a commit to ddbeck/web-features that referenced this pull request Feb 11, 2025
Elchi3 pushed a commit that referenced this pull request Feb 12, 2025
* Remove selectlist feature

Superseded by #2301

* Remove scroll-marker draft

This looks premature, particularly without a process for early features.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
early features Feature definition work for features without shipping implementations feature definition Creating or defining new features or groups of features. tools and infrastructure Project internal tooling, such as linters, GitHub Actions, or repo settings
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants