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

"Experimental should be set to false as the feature is supported in multiple browser engines" rule is too strict #23968

Closed
1 of 2 tasks
SelenIT opened this issue Jul 28, 2024 · 2 comments · Fixed by #24023
Closed
1 of 2 tasks
Labels
docs Issues or pull requests regarding the documentation of this project. linter Issues or pull requests regarding the tests / linter of the JSON files.

Comments

@SelenIT
Copy link
Contributor

SelenIT commented Jul 28, 2024

What type of issue is this?

Linter issue

What is the issue?

"Experimental should be set to false as the feature is supported in multiple browser engines" rule forces to mark features with de facto support as non-experimental regardless their actual standardisation status

What behavior were you expecting?

There should be no strict dependency between de facto support and experimental status of the feature. There are features with a quite good support (though not complete interoperable) despite being in early stage of standardisation process. The rule itself is useful, but it probably should generate a warning rather than an error.

What version(s) of BCD is the issue present in?

  • The current BCD release
  • The current version of the main branch

Do you have anything more you want to share?

The background-clip:text CSS feature (its status I tried to update in PR #23966) is an example case where de facto implementation status and standardisation status do not match. It was introduced as a non-standard (vendor-prefixed) extension in WebKit engine, became widely popular because of the popularity of WebKit/Blink browsers, and was added to Firefox for compatibility (though its implementation still has many open issues). However, it's still only specified in the CSS Backgrounds 4 Editor's Draft which is marked as "Not Ready For Implementation". Marking such a feature as "non-experimental" feels really wrong :(

@queengooborg
Copy link
Contributor

BCD's experimental status is defined as the history of browser support, and is not defined by the standards track at all. This is because a specification may still be in early draft stages, but all browsers had implemented the spec; or a specification has been a final draft for a long time, but a browser had only just implemented the feature.

In regards to your PR, the message is displayed because both Chrome and Safari support the feature without any caveats, so experimental status should indeed be false.

@SelenIT
Copy link
Contributor Author

SelenIT commented Jul 29, 2024

Thanks a lot for the clarification! My initial understanding was based on the schema description page saying that experimental: false "means the functionality is mature and no significant changes are expected in the future", which might be not the case for an early draft feature regardless its implementation status (there were cases when well-supported features got significantly rewritten, e.g. CSS Gradients syntax) 😳

I guess this issue can be closed as invalid. However, it would be nice to have a special kind of warning for features that are on standards track, with decent de facto support, not deprecated, but also not stable/mature in the spec terms and thus likely subject to change in the future, even if "experimental" doesn't fit there.

@queengooborg queengooborg added docs Issues or pull requests regarding the documentation of this project. linter Issues or pull requests regarding the tests / linter of the JSON files. labels Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Issues or pull requests regarding the documentation of this project. linter Issues or pull requests regarding the tests / linter of the JSON files.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants