-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Data guideline for all false features #10619
Comments
#6809 wants to allow things with tracking issues, since there have been requests to keep items that are expected to be shipped soon-ish. I think the tracking issues should help us see whether the items are still relevant. |
In general, here's what I want to include:
Here's a scenario I want to avoid: It happens from time to time that someone comes to BCD with a PR to add all- So I'm supportive of the idea that all- |
We don't have to disallow all- Correct me if I am wrong, but you are trying to avoid a situation were contributors add all- I don't think it's a technical issue, I think there is a problem with MDN/BCD workflow. If you understand why developers add all- Currently, when you create a new page for your favorite new feature, the "Browser compatibility" section shows the following message: This notice is a call to action to add Browser Compatibility Data. I can safely guess that most MDN contributors don't know BCD guidelines and policies, they just want to document the feature. We can't force everyone read the rules and follow the guidelines but we can change the Contributors won't try to add new JSON files with all- Note 1: I could be complete wrong, I'm talking from my perspective as MDN contributor. Note 2: If there are other platforms that are consuming BCD data, you need to check their workflows too. |
It's true that this could be ameliorated a bit on MDN by defaulting to or having an opt-in path to an all- It would also push this problem onto consumers. For example, MDN would report all- In any case, I want a guideline because we've been trimming features from BCD and it'd be nice to have a real guideline to cite, rather than saying stuff like, "well, usually…". 😆 |
I've been removing all-false features and would be happy if it was just not allowed in BCD. |
Does anyone have a script for listing the remaining all-falsy (false or null) features? |
#6809? You can tweak it a bit to include |
A couple weeks ago, @Elchi3 and I had a chat about this topic, partly stemming from what's ultimately reflected in #11813: some web features (in this case, WebXR) would be all This raises another possible exception to the all- |
Thanks Daniel! In #11813 I'm exercising the idea of allowing all-
So, I'm thinking 1. is always needed and if additionally either 2. or 3. are given, then all- |
I don't really get the case of other browsers that aren't in BCD supporting a feature. There would be no place to add a note about that, so how would we keep track of this fact and prevent the features from being removed or flagged by a future lint? |
We probably won't keep track of this but have a goal to add the supporting browser to BCD. |
I'm a contributor adding #12125 and would like to provide a perspective for why I think it would be useful to have an all false row in this case. The feature I'm looking at is Input Event, whose specifications has two levels, and the main page (https://developer.mozilla.org/en-US/docs/Web/API/InputEvent) links to the level 2 specs. From reading the current compatibility table I would thus expect all conforming browsers to support both levels, but in reality level 2 is fairly new and only Safari has partial support for it. The alternative would be to explicitly split out level 1 and level 2 as rows, but it would also be nice to be able to see more granular support. |
Shouldn't it link to both level 1 and 2 when both are active? Level 2 items will eventually be merged to level 1 (e.g. w3c/input-events#115 (comment)) so support items should be granular than that to prevent future confusion. |
@Elchi3, @foolip, @gsnedders, and I had a chat about this topic yesterday. Some highlights on the shape of the problem itself:
Toward actual solutions, this stuff came up:
I think making a list of good and bad all- |
A concrete example here is I was curious about what the My concrete belief remains that having everything that appears in a spec (or, more realistically, in a spec in browser-specs) is reasonable, even if the answer is "nothing supports it". |
Hmm, in that case what should happen when no browser intend to implement something but only some non-browser software do? I believe this is the case for at least one CSS property (but I don't recall which one it is). |
I'd still say we should document that, because someone might see it in a spec and wonder where it is supported. (I'd presume it's something print-media related?) |
Exactly. |
Both Bikeshed and ReSpec supports inline BCD data table; I think those tools should assume the lack of BCD data as no support and render the table as such. (Should Yari do the same? 🤔) |
That to me seems like a significant assumption! Hopefully we aren't adding many things to specs that never get any implementation, hence I don't think it's too burdensome to add them. |
Yeah, but I think several of them may get removed without any implementation and be forgotten, requiring mass cleanup after some time. |
For features that are in a spec but for which there's no implementation activity at all yet, I think those shouldn't be in MDN or BCD. I agree it could be useful for browser vendors or people involved with standardization, but these features don't exist for web developers, and it seems to me a net negative for developers to document these features. I think I'd be a bit annoyed if I saw a feature that might solve a problem for me, read some documentation, and then learn that it's not supported anywhere. |
I think this would be particularly hard on contributors to MDN. This would mask an incorrectly typed feature identifier as unsupported, when it's really an error. If we want to allow presumptive all- That's a possible route forward, but it will require us to have a similar discussion for MDN. When do we cover stuff? When do we drop things? Perhaps that should be an editorial decision managed separately from inclusion in BCD; I'll raise this in the next editorial meeting, to figure out the mood toward that idea. |
One option is for Yari to have a clear note at the top of any page it had for a feature unsupported in any browser, and similarly other consumers of BCD could make their own decisions about what to do with all-false features. I stand by my view that there is value in having it documented, though what consumers of BCD do may well depend on their individual audience expects. |
I get this for sure, but conversely I hope that adoption of a feature into MDN can be started in parallel with implementation activity. From my perspective as someone involved with the Temporal proposal, it would be a shame if an extensive feature like Temporal were to be shipped in browsers and available for developers, and only at that point would the editorial process of reviewing the MDN documentation start. |
@gsnedders if something is done on the MDN side to either hide these features entirely, or put them at the bottom of compat tables, then my main concern would be addressed. There would still be a challenge in deciding which all-false features should be added to BCD, since there are many are unlikely to ever get implementer interest, but that's seems doable to write down as a guideline. @ptomato I agree that starting the documentation process well before something ships is a good idea. If there were a way to do that "behind a flag" in MDN and BCD there would be no tension here at all. And for anything that's behind a flag in some browser, it's already possible to add that to BCD and MDN, not a case of all-false features. Or are there parts of Temporal that have no implementation at all yet which are still important to add to MDN/BCD? |
No, it's more that implementation is in progress in Chrome, Firefox, and Safari, but Temporal is the largest TC39 proposal ever (we think) so both the implementation and the merging of documentation into MDN will take nontrivial amounts of time. |
Could be great if MDN can have a draft document explicitly marked as such in that case, or even just a draft PR with auto-rendered preview. (mdn/content already previews PRs) |
@ptomato I agree there's an interesting process problem to solve here, namely how to produce high quality documentation that's ready to go at the time a feature first ships in some browser. But if there is implementation in progress now, it doesn't seem like a case of an all-false feature, since experimental features behind flags can be represented in BCD. I take this issue to be about features for which there simply is no code written in any browser engine repo. |
In the most-recent MDN editorial call that I attended (just over a week ago), I put, roughly, this question to authors: should MDN cover something that BCD says is all-
OK, now I'll editorialize a bit with my takeaways: The editorial discussion immediately gravitated to content's relationship with specifications. I'd go so far as to say that, from the content perspective, the scope of the problem is limited to features that are specified but unimplemented. To me, this suggests that:
That leaves part 3, displaying the data usefully by warning about all- |
One fix might be that such pages could be excluded from the site render when everything is false. You would want a report or something similar listing items in this state so that you could clean them out occasionally. This would create a space for more drafting before a feature is released. Part of the reason for the enormous backlog of undocumented features the tendency of developer shops to build and move on/forget.
As stated above, this is more common with CSS than with API. Regarding APIs be careful . There's a razor thin window between stabilization of new spec churn and implementation in a browser.
I can take this back to the Chrome Status crew as a use case for how we display that something is shipping or is being removed. In our case, it's not enough to show that something is shipping in a certain version. The status of a feature with regard to Chrome's approval process isn't currently shown, but I believe we're planning to.
Specs get out of date and sometimes when vendors get around to implementing lagging features they no longer make sense so they drop them. I wish I had stats on how often this happens. I don't.
I agree, but I think resource problem is blocking any policy solution we could craft. There aren't enough people documenting platform changes.
This is actually another mine field. Dropped, but previously implemented features must be deprecated and removed in browsers. We do this in phases in Chrome so that site owners have time to rewrite code. Developers may need to refer to what an old feature did to account for all their use cases in new code. (Archive is still a thing, right?)
I really like this idea. This is best accomplished with the help fo reps from vendors since they are best able to read their internal tea leaves. |
Can this be made linter-friendly, requiring a new field that links to the relevant comment/thread? 👀 I still wonder #6809 can be used for this. |
If there's a |
Honestly I'd like to see how things go if we just do the first two, personally? |
OK, I think the next step here is to talk to @sideshowbarker about what needs to happen to bring |
#11430 has a spec-URL linter from @queengooborg that I think is ready for merging |
Coming back to this about a year later, I think that we've pretty much established that all-false features aren't allowed. We have a guideline that says that all-false features with an abandoned spec can be considered irrelevant and removed, but we've also been saying "no" to PRs that add features set to all false, and recommending content writers use the |
What's our data guideline around all
false
features?I've been removing irrelevant and amazingly old features that are all
false
, like:However, these are irrelevant features are different from new features that web developers want information on.
Rachel says:
Do we really want to disallow all
false
features in all cases?If the answer is yes, then it leads to some communication problems on MDN: mdn/content#5118 (and potentially on other BCD consumers, such as caniuse)
The text was updated successfully, but these errors were encountered: