Here are all the remaining Web APIs without PRs, plus their subfeatures (Spreadsheet Source):
Web/API/BluetoothDevice](https://developer.mozilla.org/en-US/docs/Web/API/BluetoothDevice) (#2611)Web/API/BluetoothDevice/adDataWeb/API/BluetoothDevice/connectGATTWeb/API/BluetoothDevice/deviceClassWeb/API/BluetoothDevice/gattWeb/API/BluetoothDevice/gattServerWeb/API/BluetoothDevice/idWeb/API/BluetoothDevice/nameWeb/API/BluetoothDevice/productIDWeb/API/BluetoothDevice/productVersionWeb/API/BluetoothDevice/uuidsWeb/API/BluetoothDevice/vendorIDWeb/API/BluetoothDevice/vendorIDSourceWeb/API/Coordinates](https://developer.mozilla.org/docs/Web/API/Coordinates) (#2587)Web/API/Coordinates/accuracyWeb/API/Coordinates/altitudeWeb/API/Coordinates/altitudeAccuracyWeb/API/Coordinates/headingWeb/API/Coordinates/latitudeWeb/API/Coordinates/longitudeWeb/API/Coordinates/speedWeb/API/Element](https://developer.mozilla.org/en-US/docs/Web/API/Element)Web/API/File/webkitRelativePath](https://developer.mozilla.org/en-US/docs/Web/API/File/webkitRelativePath) (#2791)Web/API/FileException](https://developer.mozilla.org/en-US/docs/Web/API/FileException) (#2790)Web/API/HTMLIFrameElement/setNfcFocus](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/setNfcFocus) (#2877)Web/API/HTMLInputElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement) (#2881 / #2884)Web/API/HTMLInputElement/labelsWeb/API/HTMLInputElement/setSelectionRangeWeb/API/HTMLInputElement/webkitdirectoryWeb/API/IDBFactory/open-obsolete](https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/open-obsolete) (redirected)Web/API/MediaDevices](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices) (#2472)Web/API/MediaDevices/enumerateDevicesWeb/API/MediaDevices/getSupportedConstraintsWeb/API/MediaDevices/getUserMediaWeb/API/MediaDevices/ondevicechangeWeb/API/NamedNodeMap](https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap) (#1682)Web/API/NamedNodeMap/lengthWeb/API/NamedNodeMap/getNamedItemWeb/API/NamedNodeMap/setNamedItemWeb/API/NamedNodeMap/removeNamedItemWeb/API/NamedNodeMap/itemWeb/API/NamedNodeMap/getNamedItemNSWeb/API/NamedNodeMap/setNamedItemNSWeb/API/NamedNodeMap/removeNamedItemNSWeb/API/Navigator/maxTouchPoints](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/maxTouchPoints) (#2508)Web/API/ReadableByteStreamController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController) (#2768)Web/API/ReadableByteStreamController/ReadableByteStreamControllerWeb/API/ReadableByteStreamController/byobRequestWeb/API/ReadableByteStreamController/desiredSizeWeb/API/ReadableByteStreamController/closeWeb/API/ReadableByteStreamController/enqueueWeb/API/ReadableByteStreamController/errorWeb/API/ReadableStreamBYOBReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBReader) (#2767)Web/API/ReadableStreamBYOBReader/ReadableStreamBYOBReaderWeb/API/ReadableStreamBYOBReader/closedWeb/API/ReadableStreamBYOBReader/cancelWeb/API/ReadableStreamBYOBReader/readWeb/API/ReadableStreamBYOBReader/releaseLockWeb/API/ReadableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController) (#2667)Web/API/ReadableStreamDefaultController/ReadableStreamDefaultControllerWeb/API/ReadableStreamDefaultController/desiredSizeWeb/API/ReadableStreamDefaultController/closeWeb/API/ReadableStreamDefaultController/enqueueWeb/API/ReadableStreamDefaultController/errorWeb/API/ReadableStreamDefaultReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader) (#2663)Web/API/ReadableStreamDefaultReader/ReadableStreamDefaultReaderWeb/API/ReadableStreamDefaultReader/closedWeb/API/ReadableStreamDefaultReader/cancelWeb/API/ReadableStreamDefaultReader/readWeb/API/ReadableStreamDefaultReader/releaseLockWeb/API/RTCRtpTransceiverDirection](https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiverDirection) (#2608)Web/API/RTCRtpTransceiverInit](https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiverInit) (#2610)Web/API/RTCRtpTransceiverInit/directionWeb/API/RTCRtpTransceiverInit/sendEncodingsWeb/API/RTCRtpTransceiverInit/streamsWeb/API/ScriptProcessorNode](https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode) (#2665)Web/API/ScriptProcessorNode/bufferSizeWeb/API/ScriptProcessorNode/onaudioprocessWeb/API/SVGFEColorMatrixElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement) (#2607)Web/API/WritableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultController) (#2664)Web/API/WritableStreamDefaultController/WritableStreamDefaultControllerWeb/API/WritableStreamDefaultController/errorWeb/API/XDomainRequest](https://developer.mozilla.org/en-US/docs/Web/API/XDomainRequest) (#2507)Web/API/XDomainRequest/abortWeb/API/XDomainRequest/onerrorWeb/API/XDomainRequest/onloadWeb/API/XDomainRequest/onprogressWeb/API/XDomainRequest/ontimeoutWeb/API/XDomainRequest/openWeb/API/XDomainRequest/responseTextWeb/API/XDomainRequest/sendWeb/API/XDomainRequest/timeoutGetting very close to the end! :D There are also a few dozen CSS features to move over, as well as a small handful of SVG and HTML features.
There's also Web/API/PermissionStatus/status, which was excluded from #2284 because the subfeature was deprecated. Not sure if we should include that.
(In reply to @connorshea from https://github.com/mdn/browser-compat-data/issues/2467#issuecomment-404954935)
There's also
Web/API/PermissionStatus/status, which was excluded from #2284 because the subfeature was deprecated. Not sure if we should include that.
Did any browser ship a working implementation at any point before it was deprecated?
If yes, then we should add it.
P.S.: You can create nested task lists: (click to expand)
- [ ] Item 1
- [x] Item 1 Sub-item 1
- [ ] Item 1 Sub-item 2
- [x] Item 2
- [x] Item 2 Sub-item 1
- [x] Item 2 Sub-item 2
- [ ] Item 3
- [ ] Item 3 Sub-item 1
- [x] Item 3 Sub-item 2
I didn’t add checkboxes to each subfeature since I figured most of the features would be done with their subfeatures all at once.
And yeah I believe a browser implemented the status property previously, so we should add it.
Element has 77 subfeatures according to the MDN sidebar (34 properties + 43 methods), though some of them are inherited from other APIs. 🤔#2316 completes the data for some of them, but not all of them.
EDIT: I've opened #2494 to track all the Element subfeatures.
Worth noting that Entity and EntityReference are obsolete and don't seem to have any browser support. We should probably not migrate them so I've removed them from the list.
Removed window.URL and window.StaticRange because the pages were deleted.
I've opened PRs for RTCRtpTransceiverInit, RTCRtpTransceiverDirection, and SVGFEColorMatrixElement.
I got #2611 merged, which completed the Web Bluetooth API in this repository.
@ExE-Boss what does that mean for BluetoothDevice?
EDIT: It was completed in #2611, I thought it wasn't included last time I checked.
I've found a few more:
https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent/CompositionEvent
https://developer.mozilla.org/en-US/docs/Web/API/Connection/onchange
https://developer.mozilla.org/en-US/docs/Web/API/Credential/iconURL
https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementationRegistry
https://developer.mozilla.org/en-US/docs/Web/API/DOMQuad
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/attachevent
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/fireEvent
https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/searchParams
https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitEntries
https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation/ontypechange
https://developer.mozilla.org/en-US/docs/Web/API/notification/Notification
https://developer.mozilla.org/en-US/docs/Web/API/Notification/sticky
https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext/startRendering(promise)
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/currentRemoteDescription
EventTarget.attachEvent(), EventTarget.detachEvent(), and EventTarget.fireEvent(): #2660CompositionEvent constructor: #2661 NetworkInformation/ontypechange but the browser compat table is weird (e.g. Chrome is unsupported but Chrome for Android is supported?), the article also hasn't been updated in over three years.@Elchi3 Some notes on those pages:
Connection.onchange should be redirected to NetworkInformation.onchange, because the main Connection API already redirects to NetworkInformation, and the spec only mentions NetworkInformation.onchange, nothing about a Connection.onchange.iconURL doesn't seem to be a property of Credential, only a property of CredentialUserData, FederatedCredentialInit, and PasswordCredentialData. See the sections where the term iconURL is defined in the spec. I think the article should maybe be deleted?Opened a few more PRs:
Thanks for your PRs! Really helpful to finish this. :+1:
I was going to do NetworkInformation/ontypechange but the browser compat table is weird (e.g. Chrome is unsupported but Chrome for Android is supported?), the article also hasn't been updated in over three years.
This can make sense as network information is much more interesting on mobile devices often enough.
DOMImplementationRegistry has no browser support based on the table, the article hasn't been updated in 3 years, and the API is marked obsolete. Unless we can find something suggesting that a browser has implemented it, should we delete the article?
Deleted.
Ditto for DOMImplementationSource?
Deleted.
I think
Connection.onchangeshould be redirected toNetworkInformation.onchange, because the mainConnectionAPI already redirects toNetworkInformation, and the spec only mentionsNetworkInformation.onchange, nothing about aConnection.onchange.
Redirected.
iconURLdoesn't seem to be a property ofCredential, only a property ofCredentialUserData,FederatedCredentialInit, andPasswordCredentialData. See the sections where the term iconURL is defined in the spec. I think the article should maybe be deleted?
Deleted.
HTMLHyperlinkElementUtils/searchParams is a really weird article and the spec doesn't seem to have anything about searchParams anymore.
Deleted.
Notification.sticky doesn't seem to have been implemented in any browser and is no longer in the spec.
Deleted.
The Notification constructor table has a bunch of extra subfeatures that I think are repetitive of the parent article, so we can probably just remove those and only have compat data for the constructor?
Yes, I think just the constructor data would be fine.
OfflineAudioContext/startRendering (promise) should probably be merged into OfflineAudioContext/startRendering, I would assume? The compat table for the latter page already tracks the promise-based version.
Yes, we should merge these. No compat data updates needed then. I will need a closer look if we want to move something over to the main article.
HTMLInputElement/webkitEntries scares me because the entire HTMLInputElement API scares me :D
:D
So that leaves us with this:
@Elchi3 those two have been merged :) #2788 and #2686
So I've put together a file that contains literally all the data from the old table for HTMLInputElement -- probably a little too much. I was just about to submit a PR, however the npm run test fails with an error regarding the JSON schema:
File : api/HTMLInputElement.json
JSON schema – 1 error(s)
item['api']['HTMLInputElement'] should NOT have additional properties
Not sure what I'm doing differently from all the other API files I see.
I'd love to submit a PR of my fork's dedicated branch but I'd hate to submit a non-functioning one. Any advice?
@vinyldarkscratch I’d say it’s fine to open a PR, and it’d help us figure out what the issue is :) based on the error I’d say you spelled a property wrong or got the hierarchy wrong somewhere.
With #2770 now merged, the Web/API/Element task checkbox can now be checked.
@vinyldarkscratch I did a quick "bisect" by deleting half the file and then checking if the linter still failed, and kept doing that until I had just the part of the file that was failing. It looks like the linter doesn't like that you have a feature called checkValidity(), but it passes just fine if you remove the ().
Yeah, the only valid characters for feature names have to match the ^(?!__compat)[a-zA-Z_0-9-$@]+$ regular expression.
Oh my gosh, I feel dumb now, I totally missed the fact that I put parentheses in the feature name... XD Thanks, @connorshea, for looking into it! PR incoming soon. :wink:
@vinyldarkscratch someone else opened a PR for HTMLInputElement, though it’s only got a small number of the subfeatures so ¯\_(ツ)_/¯ I’d say you should still open yours.
@ExE-Boss would the better-errors package have made those error messages easier to understand in this case? #2143
@Elchi3 you’ll have to choose what to do between #2881 and #2884. Maybe merge the first one and then the second can be rebased on top of it? 2884 is definitely more comprehensive.
(In reply to @connorshea from https://github.com/mdn/browser-compat-data/issues/2467#issuecomment-425469400)
@ExE-Boss would the better-errors package have made those error messages easier to understand in this case? #2143
Yes, it would. #2338 makes it so that schema validation errors are highlighted with a red underline in the log (see here for an example).
HTMLInputElement was merged and the article was updated, so I'm closing this issue. 🎉
Most helpful comment
(In reply to @connorshea from https://github.com/mdn/browser-compat-data/issues/2467#issuecomment-425469400)
Yes, it would. #2338 makes it so that schema validation errors are highlighted with a red underline in the log (see here for an example).