Comments (9)
Here’s a checklist with URLs for the targets of all caniuse annotations in the HTML spec.
All the URLs that are checked off are ones for which we have corresponding MDN annos.
All the URLs that aren’t checked off are ones for which we’re missing corresponding MDN annos.
checklist
- https://html.spec.whatwg.org/#animation-frames
- https://html.spec.whatwg.org/#atob
- https://html.spec.whatwg.org/#attr-fae-form
- https://html.spec.whatwg.org/#attr-fieldset-disabled
- https://html.spec.whatwg.org/#attr-iframe-sandbox
- https://html.spec.whatwg.org/#attr-iframe-srcdoc
- https://html.spec.whatwg.org/#attr-img-srcset
- https://html.spec.whatwg.org/#attr-input-accept
- https://html.spec.whatwg.org/#attr-input-maxlength
- https://html.spec.whatwg.org/#attr-input-multiple
- https://html.spec.whatwg.org/#attr-input-placeholder
- https://html.spec.whatwg.org/#attr-ol-reversed
- https://html.spec.whatwg.org/#attr-script-async
- https://html.spec.whatwg.org/#attr-script-defer
- https://html.spec.whatwg.org/#attr-script-type
- https://html.spec.whatwg.org/#attr-tabindex
- https://html.spec.whatwg.org/#attributes-for-form-submission
- https://html.spec.whatwg.org/#audiotracklist-and-videotracklist-objects
- https://html.spec.whatwg.org/#autofill
👉 mdn/browser-compat-data#5984 - https://html.spec.whatwg.org/#autofocusing-a-form-control:-the-autofocus-attribute
- https://html.spec.whatwg.org/#broadcasting-to-other-browsing-contexts
- https://html.spec.whatwg.org/#browser-state
- https://html.spec.whatwg.org/#channel-messaging
- https://html.spec.whatwg.org/#client-side-form-validation
- https://html.spec.whatwg.org/#color-state-(type=color)
- https://html.spec.whatwg.org/#contenteditable
- https://html.spec.whatwg.org/#crossDocumentMessages
- https://html.spec.whatwg.org/#custom-elements
- https://html.spec.whatwg.org/#custom-handlers
- https://html.spec.whatwg.org/#date-state-(type=date)
- https://html.spec.whatwg.org/#dnd
- https://html.spec.whatwg.org/#dom-a-rellist
- https://html.spec.whatwg.org/#dom-createimagebitmap
- https://html.spec.whatwg.org/#dom-document-currentscript
- https://html.spec.whatwg.org/#dom-document-head
- https://html.spec.whatwg.org/#dom-history-pushstate
- https://html.spec.whatwg.org/#dom-img-naturalwidth
- https://html.spec.whatwg.org/#dom-input-indeterminate
- https://html.spec.whatwg.org/#dom-textarea/input-setselectionrange
- https://html.spec.whatwg.org/#downloading-resources
- https://html.spec.whatwg.org/#drawing-text-to-the-bitmap
- https://html.spec.whatwg.org/#embedding-custom-non-visible-data-with-the-data-*-attributes
- https://html.spec.whatwg.org/#event-input-input
🐞 buried in one giant anno - https://html.spec.whatwg.org/#event-pageshow
🐞 buried in one giant anno - https://html.spec.whatwg.org/#forms
- https://html.spec.whatwg.org/#input-modalities:-the-inputmode-attribute
- https://html.spec.whatwg.org/#lazy-loading-attributes
👉 mdn/browser-compat-data#5985 - https://html.spec.whatwg.org/#link-type-modulepreload
👉 mdn/browser-compat-data#5980 - https://html.spec.whatwg.org/#link-type-noopener
👉 mdn/browser-compat-data/pull/5978 - https://html.spec.whatwg.org/#link-type-noreferrer
👉 mdn/browser-compat-data/pull/5983 - https://html.spec.whatwg.org/#meta-theme-color
👉 mdn/browser-compat-data/pull/5970 - https://html.spec.whatwg.org/#navigator.hardwareconcurrency
- https://html.spec.whatwg.org/#network
- https://html.spec.whatwg.org/#number-state-(type=number)
- https://html.spec.whatwg.org/#offline
👎 deprecated — application cache - https://html.spec.whatwg.org/#path2d-objects
- https://html.spec.whatwg.org/#ping
- https://html.spec.whatwg.org/#range-state-(type=range)
- https://html.spec.whatwg.org/#rel-icon
👉 mdn/browser-compat-data/pull/5972 - https://html.spec.whatwg.org/#sections
🤔 we don’t really need an anno for this - https://html.spec.whatwg.org/#selector-read-only
🐞 buried in one giant anno - https://html.spec.whatwg.org/#server-sent-events
- https://html.spec.whatwg.org/#shared-workers-introduction
- https://html.spec.whatwg.org/#spelling-and-grammar-checking
- https://html.spec.whatwg.org/#stop-parsing
- https://html.spec.whatwg.org/#storage
- https://html.spec.whatwg.org/#svg-0
🤔 we don’t really need an anno for this - https://html.spec.whatwg.org/#telephone-state-(type=tel)
- https://html.spec.whatwg.org/#text-(type=text)-state-and-search-state-(type=search)
- https://html.spec.whatwg.org/#the-audio-element
- https://html.spec.whatwg.org/#the-canvas-element
- https://html.spec.whatwg.org/#the-constraint-validation-api
- https://html.spec.whatwg.org/#the-datalist-element
- https://html.spec.whatwg.org/#the-details-element
- https://html.spec.whatwg.org/#the-dialog-element
- https://html.spec.whatwg.org/#the-hashchangeevent-interface
- https://html.spec.whatwg.org/#the-hidden-attribute
- https://html.spec.whatwg.org/#the-innertext-idl-attribute
- https://html.spec.whatwg.org/#the-maxlength-and-minlength-attributes
- https://html.spec.whatwg.org/#the-meter-element
- https://html.spec.whatwg.org/#the-offscreencanvas-interface
- https://html.spec.whatwg.org/#the-pattern-attribute
- https://html.spec.whatwg.org/#the-picture-element
- https://html.spec.whatwg.org/#the-progress-element
- https://html.spec.whatwg.org/#the-readonly-attribute
- https://html.spec.whatwg.org/#the-ruby-element
- https://html.spec.whatwg.org/#the-template-element
- https://html.spec.whatwg.org/#the-video-element
- https://html.spec.whatwg.org/#the-wbr-element
- https://html.spec.whatwg.org/#the-xhtml-syntax
🤔 we don’t really need an anno for this - https://html.spec.whatwg.org/#unhandled-promise-rejections:event-unhandledrejection
from html-build.
cc @whatwg/documentation
from html-build.
Here for now are some responses about the specific cases @domenic found in his spot check:
Examples of where caniuse is better:
- https://html.spec.whatwg.org/#atob maybe; caniuse more detail but it's not obvious those details are accurate.
https://html.spec.whatwg.org/#dom-btoa and https://html.spec.whatwg.org/#dom-atob at this point seem to have what looks to be pretty-complete details
(Also MDN has 2 entries for Firefox and 2 for Firefox for Android, which is bad.)
That’s since been fixed.
- https://html.spec.whatwg.org/#dom-createimagebitmap missing Edge
The MDN anno there and Can I Use anno there both now show version 79 for Edge.
After this, I’ll post a comment with checklist for all 91 of the current caniuse annos we have.
from html-build.
Amazing work; thank you!
https://html.spec.whatwg.org/#offline
👎 deprecated — application cache
I think MDN should still have data for this, especially because it will soon start showing "upper ranges" where the feature was removed. But, I don't think adding such data needs to block our work on removing caniuse boxes, since about the time that data becomes extra-useful, we'll be removing the feature from the spec anyway, so the annotation wouldn't even be visible.
🤔 we don’t really need an anno for this
For SVG and XHTML I kind of like the historical value of knowing when browsers started supporting those. But, it's not really important for 99% of readers, so yeah, probably best to omit.
from html-build.
fwiw, if you are curious about how the two data sets compare: I researched this here mdn/browser-compat-data#4051. Let me know if there are any questions.
from html-build.
So I came around to deciding it’d kind of be a UX regression for readers of the spec if we removed any caniuse annotations that didn’t have corresponding MDN annotations.
I think it’d also be a UX regression if we quit providing readers with information about the fact that caniuse has a page associated with a particular feature.
Therefore I made some changes to https://github.com/w3c/mdn-spec-links which ensure:
- Every current caniuse.com anno in the spec now has a corresponding MDN anno.
- Every MDN anno for which there’s a corresponding caniuse.cm page now has a link to the caniuse.com page
Below is the complete set of has-caniuse-annotation anchors. We should review to confirm that each now also has an MDN anno, and to confirm that the MDN anno has a caniuse.com link.
- https://html-mdn.herokuapp.com/output/#animation-frames
- https://html-mdn.herokuapp.com/output/#atob
- https://html-mdn.herokuapp.com/output/#attr-fae-form
- https://html-mdn.herokuapp.com/output/#attr-fieldset-disabled
- https://html-mdn.herokuapp.com/output/#attr-iframe-sandbox
- https://html-mdn.herokuapp.com/output/#attr-iframe-srcdoc
- https://html-mdn.herokuapp.com/output/#attr-img-srcset
- https://html-mdn.herokuapp.com/output/#attr-input-accept
- https://html-mdn.herokuapp.com/output/#attr-input-maxlength
- https://html-mdn.herokuapp.com/output/#attr-input-multiple
- https://html-mdn.herokuapp.com/output/#attr-input-placeholder
- https://html-mdn.herokuapp.com/output/#attr-ol-reversed
- https://html-mdn.herokuapp.com/output/#attr-script-async
- https://html-mdn.herokuapp.com/output/#attr-script-defer
- https://html-mdn.herokuapp.com/output/#attr-script-type
- https://html-mdn.herokuapp.com/output/#attr-tabindex
- https://html-mdn.herokuapp.com/output/#attributes-for-form-submission
- https://html-mdn.herokuapp.com/output/#audiotracklist-and-videotracklist-objects
- https://html-mdn.herokuapp.com/output/#autofill
- https://html-mdn.herokuapp.com/output/#autofocusing-a-form-control:-the-autofocus-attribute *
- https://html-mdn.herokuapp.com/output/#broadcasting-to-other-browsing-contexts
- https://html-mdn.herokuapp.com/output/#browser-state *
- https://html-mdn.herokuapp.com/output/#channel-messaging
- https://html-mdn.herokuapp.com/output/#client-side-form-validation
- https://html-mdn.herokuapp.com/output/#color-state-(type=color)
- https://html-mdn.herokuapp.com/output/#contenteditable
- https://html-mdn.herokuapp.com/output/#crossDocumentMessages *
- https://html-mdn.herokuapp.com/output/#custom-elements
- https://html-mdn.herokuapp.com/output/#custom-handlers
- https://html-mdn.herokuapp.com/output/#date-state-(type=date)
- https://html-mdn.herokuapp.com/output/#dnd
- https://html-mdn.herokuapp.com/output/#dom-a-rellist
- https://html-mdn.herokuapp.com/output/#dom-createimagebitmap
- https://html-mdn.herokuapp.com/output/#dom-document-currentscript
- https://html-mdn.herokuapp.com/output/#dom-document-head
- https://html-mdn.herokuapp.com/output/#dom-history-pushstate
- https://html-mdn.herokuapp.com/output/#dom-img-naturalwidth
- https://html-mdn.herokuapp.com/output/#dom-input-indeterminate
- https://html-mdn.herokuapp.com/output/#dom-textarea/input-setselectionrange
- https://html-mdn.herokuapp.com/output/#downloading-resources
- https://html-mdn.herokuapp.com/output/#drawing-text-to-the-bitmap
- https://html-mdn.herokuapp.com/output/#embedding-custom-non-visible-data-with-the-data-*-attributes
- https://html-mdn.herokuapp.com/output/#event-input-input
- https://html-mdn.herokuapp.com/output/#event-pageshow
- https://html-mdn.herokuapp.com/output/#forms
- https://html-mdn.herokuapp.com/output/#input-modalities:-the-inputmode-attribute
- https://html-mdn.herokuapp.com/output/#lazy-loading-attributes
- https://html-mdn.herokuapp.com/output/#link-type-modulepreload
- https://html-mdn.herokuapp.com/output/#link-type-noopener
- https://html-mdn.herokuapp.com/output/#link-type-noreferrer
- https://html-mdn.herokuapp.com/output/#meta-theme-color
- https://html-mdn.herokuapp.com/output/#navigator.hardwareconcurrency
- https://html-mdn.herokuapp.com/output/#network
- https://html-mdn.herokuapp.com/output/#number-state-(type=number)
- https://html-mdn.herokuapp.com/output/#offline
- https://html-mdn.herokuapp.com/output/#path2d-objects
- https://html-mdn.herokuapp.com/output/#ping
- https://html-mdn.herokuapp.com/output/#range-state-(type=range)
- https://html-mdn.herokuapp.com/output/#rel-icon
- https://html-mdn.herokuapp.com/output/#sections
- https://html-mdn.herokuapp.com/output/#selector-read-only
- https://html-mdn.herokuapp.com/output/#server-sent-events
- https://html-mdn.herokuapp.com/output/#shared-workers-introduction
- https://html-mdn.herokuapp.com/output/#spelling-and-grammar-checking
- https://html-mdn.herokuapp.com/output/#stop-parsing
- https://html-mdn.herokuapp.com/output/#storage
- https://html-mdn.herokuapp.com/output/#svg-0
- https://html-mdn.herokuapp.com/output/#telephone-state-(type=tel)
- https://html-mdn.herokuapp.com/output/#text-(type=text)-state-and-search-state-(type=search)
- https://html-mdn.herokuapp.com/output/#the-audio-element
- https://html-mdn.herokuapp.com/output/#the-canvas-element
- https://html-mdn.herokuapp.com/output/#the-constraint-validation-api
- https://html-mdn.herokuapp.com/output/#the-datalist-element
- https://html-mdn.herokuapp.com/output/#the-details-element
- https://html-mdn.herokuapp.com/output/#the-dialog-element
- https://html-mdn.herokuapp.com/output/#the-hashchangeevent-interface
- https://html-mdn.herokuapp.com/output/#the-hidden-attribute
- https://html-mdn.herokuapp.com/output/#the-innertext-idl-attribute
- https://html-mdn.herokuapp.com/output/#the-maxlength-and-minlength-attributes
- https://html-mdn.herokuapp.com/output/#the-meter-element
- https://html-mdn.herokuapp.com/output/#the-offscreencanvas-interface
- https://html-mdn.herokuapp.com/output/#the-pattern-attribute
- https://html-mdn.herokuapp.com/output/#the-picture-element
- https://html-mdn.herokuapp.com/output/#the-progress-element
- https://html-mdn.herokuapp.com/output/#the-readonly-attribute
- https://html-mdn.herokuapp.com/output/#the-ruby-element
- https://html-mdn.herokuapp.com/output/#the-template-element
- https://html-mdn.herokuapp.com/output/#the-video-element
- https://html-mdn.herokuapp.com/output/#the-wbr-element
- https://html-mdn.herokuapp.com/output/#the-xhtml-syntax
- https://html-mdn.herokuapp.com/output/#unhandled-promise-rejections:event-unhandledrejection
from html-build.
So I came around to deciding it’d kind of be a UX regression for readers of the spec if we removed any caniuse annotations that didn’t have corresponding MDN annotations.
I agree, thus this issue, saying that we should make sure MDN has data for everything :).
I think it’d also be a UX regression if we quit providing readers with information about the fact that caniuse has a page associated with a particular feature.
I'm not sure I agree with this. Caniuse seems like just a worse version of MDN compat data. (In that, the community seems to be rallying around MDN compat data. And also, MDN pages have documentation.) What is the value in linking to both?
Every current caniuse.com anno in the spec now has a corresponding MDN anno.
Yay!
Every MDN anno for which there’s a corresponding caniuse.cm page now has a link to the caniuse.com page
I'm not sure I see the need for this. It also requires us to continue downloading and dealing with caniuse.json
, which I was hoping to remove and thus simplify the build process. (That's pretty far down on the priority of constituencies, though.)
Thoughts welcome, and feel free to reach out on IRC if you'd like more real-time discussion... in the end I'm happy to trust your judgment on this area more than my own, and have you be the owner of any ultimate decisions. But I think it's worth talking things through.
from html-build.
So I came around to deciding it’d kind of be a UX regression for readers of the spec if we removed any caniuse annotations that didn’t have corresponding MDN annotations.
I agree, thus this issue, saying that we should make sure MDN has data for everything :).
I think it’d also be a UX regression if we quit providing readers with information about the fact that caniuse has a page associated with a particular feature.
I'm not sure I agree with this. Caniuse seems like just a worse version of MDN compat data.
I think that may not be a fair characterization.
(In that, the community seems to be rallying around MDN compat data.
It’s not an either-or. I think a lot of developers still find some value in Caniuse. It’s still widely used. One thing that I think people find appealing about it is the way the data is presented and the options that are provided for filtering it and viewing it in different ways — the site UI.
And also, MDN pages have documentation.) What is the value in linking to both?
What I wrote above and also what @Elchi3 alluded to in #213 (comment) here and wrote about in detail at mdn/browser-compat-data#4051
Every MDN anno for which there’s a corresponding caniuse.cm page now has a link to the caniuse.com page
I'm not sure I see the need for this. It also requires us to continue downloading and dealing with
caniuse.json
,
No, it doesn’t require that. I instead wrote a mechanism that adds the Caniuse data upstream in the https://github.com/w3c/mdn-spec-links JSON files — and not just for the HTML spec but also for all other specs in https://github.com/w3c/mdn-spec-links which Caniuse has links to.
which I was hoping to remove and thus simplify the build process.
Yeah, we’ll still be able to remove it. See #237 and whatwg/wattsi#124
from html-build.
Alright, I'm convinced; thanks for walking me through it. And the unobtrusive way you've added caniuse links is pretty attractive. I'll go review some PRs now.
from html-build.
Related Issues (20)
- For parse errors, wattsi server build not emitting second error report with source line numbers HOT 1
- Redeploy fails if no files have changed HOT 2
- curls inside build.sh should retry a couple times
- Update highlighter once it updates widlparser
- Build does not fail on invalid Web IDL HOT 5
- Review Drafts have MDN in them; they should not HOT 2
- --password warning HOT 2
- MDN boxes sometimes have multiple entries for the same browser HOT 3
- Build failing, potentially Python? HOT 2
- Migrate to Python 3 HOT 2
- Use Docker Hub pdfsizeopt instead of downloading from GitHub
- Document why macOS cannot do HTTP/2 by default HOT 2
- Consider a "fast mode" for local iteration HOT 3
- .pre-process-main.pl can be simplified or rolled into Wattsi HOT 2
- Add service worker support
- html-build repo is missing License text file
- "Improvements to the CI Docker build" broken PDF links HOT 1
- `.cache` folder is not created by `build.sh` HOT 1
- Docker build fails on M1 MacBook HOT 5
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 html-build.