Comments (20)
While migrating compat data from MDN tables, I tried to check whether existing version_added
data was actually correct / accurate (out of curiosity, and to detect misleading instances of "it works in this version [but I didn't check previous versions]") and found some cases where it wasn't (from what I found).
In this case, references not only would have helped me in this verification process, but providing them also allows me to be transparent about why I came to another conclusion (w.r.t. version_added
, which can be hard to determine objectively on a binary scale, cf. discussion about implementation_status
) than the people before me that added the data on MDN in the first place.
Regarding the concern about the expectation these references may create, I would argue that BCD is, for one thing, already creating the expectation of providing reliable compat data. But can it really live up to this expectation without providing references that allow verification?
Then again, it's one thing to build these references directly into the schema, and another one to require them as a means of justification for all changes to BCD themselves. In fact, most PRs already seem to include references, and reviewers do (systematically?) ask for sources, if they aren't given already (this might be facilitated with a PR template).
So maybe that's actually the root of the question: Where should we put these references [that inevitably exist already]? Does it suffice to list them in the PR? Should they also be in the commit messages themselves? Or do we also want to provide them in a structured, machine-readable way as part of the BCD?
If I was given the choice, I would probably add them to the data itself, by analogy with Wikipedia.
from browser-compat-data.
So, I've noticed a few cases:
-
A feature isn't implemented, we then link to the bug that implements the feature, see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#Browser_compatibility
I think this is a good candidate to be in a property called e.g. "implementation_bug". -
The feature is implemented, we still link to the bug that implemented it, see https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within
I think we shouldn't do this. The bug doesn't add value anymore. -
The feature is implemented behind a pref and thus needs a note anyway. The note should ideally contain the bug that will remove the pref, see https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events/Using_Pointer_Events#Browser_compatibility
-
The feature used to have or has bugs, which almost always need explanation in a note or an own section, so that the reader knows what those issues are/were. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString#Browser_compatibility
I think what I would want is a property called "implementation_bug" (or similar) for case 1 and just notes for the other cases 2, 3, and 4.
from browser-compat-data.
Part of the reason I didn't suggest this was that I wanted notes to be treated as plain text
Formatted notes improve the readability and transport more information. Therefore I vote for using/keeping formatting in notes. Though that discussion should probably rather happen in #114.
- The feature is implemented, we still link to the bug that implemented it, see https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within
I think we shouldn't do this. The bug doesn't add value anymore.
I've asked about that some time ago and the consensus back then was tending to keep the bug as reference for the compat data.
In this regard, it would make sense to reuse the implementation_bug
property.
Anyway, I'm still not convinced that having a separate property for this is necessary, but I also don't have a strong opinion against it. Regarding the migration from the static contents to the structured data it definitely means more work.
Sebastian
from browser-compat-data.
I propose instead the name "implementation_status", which can then have the values:
- "under consideration"
- "partial"
- "not planned"
Or a numeric value, which is treated as a bug/issue number.
from browser-compat-data.
Hi,
I'd like to add that I'd find links to related issues to be useful as sources for the provided data. I am not familiar with the process to update the data you have here, but it would be nice to have the data backed by links. It would be similar to Wikipedia's references. I am not sure how to check the origin of data today.
from browser-compat-data.
@teoli2003 , can we include this in the new schema proposal?
from browser-compat-data.
Yes, sure!
A few questions:
- Do we want to link to issues (read: problem) only?
- If not, do we want to be able to distinguish between bugs and issues like "Not enabled, this is the enabling bug"?
- What will happen when a issue is fixed, do we remove the bug # or do we want to store the information that from version X to version Y there was issue Z ?
from browser-compat-data.
I didn't file this, but my interpretation is that this is for situations where the feature hasn't been implemented yet, or has been partially implemented, but the browser has a bug open to implement it. So the user can follow the bug to get an idea of when it might land.
So it's not just general "bugs associated with this feature".
So it could be an optional extra field, if the feature has no support or experimental (preffed-off) support, like:
{tracking-bug: [url]}
If the feature is fully supported (even if it is buggy!), this isn't ever present. But that's just my interpretation of this.
from browser-compat-data.
I think links to bugs should be part of the notes' text as it's currently done on MDN. Note that there may be more than one bug related to a feature and the note can explain the situation better than just a URL.
Sebastian
from browser-compat-data.
Part of the reason I didn't suggest this was that I wanted notes to be treated as plain text, and then it would be complicated to make them behave like links. And URLs that aren't links just seem silly.
I agree though, that if these bugs are just general bugs around the feature, or if there's any nuanced explanation to be done, then unstructured notes are the right way to go. But it seems that in many cases there is one tracking bug for a feature, and in these cases it seems that it would be helpful to give them a place in the schema so they can be consistently exposed to users.
from browser-compat-data.
I like the idea of using a property or properties for bug links by inserting a "bug-url" field or similar anywhere it makes sense.
from browser-compat-data.
I'm concerned about creating the expectation that MDN is a place that has or is trying to have complete bug information. Having an explicit place for it would give that impression. I'm not sure that accomplishing it is practical.
from browser-compat-data.
I think @jpmedley has a really good point: there is no way we can have this information complete.
from browser-compat-data.
Yeah, it would be a nightmare to try to accurately convey all this information, for all browsers we provide BCD on.
My thought is that (at least for Fx), as long as we have the version_added field filed in accurately with a version number, we should be able to then go and look up the bug details in the developer rel notes (e.g. https://developer.mozilla.org/en-US/Firefox/Releases/60). All added details should be put inside the documents.
that way we could keep the bug details there, and keep the BCD cleaner.
from browser-compat-data.
As noted above, there are different situations where we have added bugs to the compat tables or compat data. Always adding bugs for all features stored in this data set is indeed a non-goal.
I still think adding links to bugs for situation 1, like done here https://github.com/mdn/browser-compat-data/blob/master/api/NavigationPreloadManager.json#L24, is useful. That could be in the note like we've done that for now for NavigationPreloadManager, or we introduce implementation_bug
.
from browser-compat-data.
Yeah, I could see that being useful, as long as it isn't mandatory. It would need to support arrays, so that we could have implementation bugs included from multiple browsers.
from browser-compat-data.
Certainly not mandatory and only really used when there is no support, but you want info whether or not the vendor considers adding it and where they are with that.
I would see this at the browser level and maybe it could just be "implementation".
"chrome": {
"implementation": "123456",
"version_added": false
},
"edge": {
"implementation": "under consideration",
"version_added": false
},
"firefox": {
"implementation": "123456",
"version_added": false
},
Once the bug / the status info is resolved, this gets removed and version_added
has a version:
"chrome": {
"version_added": "60"
},
"edge": {
"version_added": "18"
},
"firefox": {
"version_added": "66
},
(I guess this would also help https://platform-status.mozilla.org/ to just use this repo as its underlying database.)
from browser-compat-data.
Cool, this all makes sense to me, thanks for the further explanation. I am happy with this as a proposal.
from browser-compat-data.
I also agree that this should only be used to flag bugs that are directly related to the implementation state of the feature, and should not be used for any other purpose or to note the bug that implemented the feature.
from browser-compat-data.
For those confused (like me) why data from impl_url
JSON fields are not yet visible in actual MDN BCD tables, it is a YARI feature under PR mdn/yari#6376
(There are few dozens of entries with impl_url
filled; for example I wondered why I don't see those merged with e.g. #17353 at https://developer.mozilla.org/en-US/docs/Web/CSS/:has#browser_compatibility )
from browser-compat-data.
Related Issues (20)
- http.methods - It says that Edge didn't support the usual HTTP requests (GET, HEAD, POST, PUT, etc.) before 12. I don't think that's correct. HOT 1
- html.global_attributes.autocomplete - the attribute should not regard as a global html attribute
- html.global_attributes.popover - `popovertarget` and `popovertargetaction` should not regard as html global attribute
- api.ClipboardEvent.clipboardData - Incorrect availability banner HOT 1
- css.properties.letter-spacing - <Google chrome handle letter spacing diff> HOT 1
- html.textarea.spellcheck - duplicated global attributes
- api.fetch - Safari 17.2 supports setting priority of fetch HOT 3
- html.elements.image - <SUMMARIZE THE PROBLEM> HOT 1
- http.headers.Alt-Svc - Safari Alt-Svc compatibility is outdated
- html.elements.mark - Support in screen readers is mixed HOT 15
- http.status.503 - <SUMMARIZE YOUR PROBLEM> HOT 1
- http.status.504 - <SUMMARIZE THE PROBLEM> HOT 1
- api.File.type - duplicated data between `api.File.type` and `api.Blob.type`
- css.selectors.has - Baseline status banner incorrect HOT 1
- api.RTCRtpReceiver.transform - Chrome support encoded stream transform HOT 3
- api.HTMLAnchorElement.hrefTranslate&html.elements.a.hreftranslate - Missing browser compat data HOT 1
- api.KeyboardEvent.keyCode - <SUMMARIZE THE PROBLEM> HOT 1
- webextensions.api.userScripts - Chrome now supports userscripts HOT 2
- css.selectors.host - Discrepancies between the baseline widget and the full compatibility table HOT 1
- css.properties.font-family - < is not working> HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from browser-compat-data.