For a given set of browsers what APIs are still considred experimental, and how long have they been experimental?
Below is a list of features that are marked as "Experimental" in Safari and Firefox
| API | First Browser | Date | Last Browser | Date | Days in experimentation | Notes |
|---|---|---|---|---|---|---|
| api.AudioSession 📋 | Safari | 3/27/2023 | 1296 | |||
| api.AudioSession.type 📋 | Safari | 3/27/2023 | 1296 | |||
| api.BarcodeDetector 📋 | Safari | 9/18/2023 | 1121 | Chrome: Supported on ChromeOS and macOS only.Chrome: Before Chrome 113, on macOS Ventura (13) and above, this interface silently failed. See bug 40245611.Chrome: Supported on macOS only.Edge: Supported on macOS only.Edge: Before Chrome 113, on macOS Ventura (13) and above, this interface silently failed. See bug 40245611.Opera: Supported on macOS only.Opera: Before Chrome 113, on macOS Ventura (13) and above, this interface silently failed. See bug 40245611. | ||
| api.BarcodeDetector.BarcodeDetector 📋 | Safari | 9/18/2023 | 1121 | Chrome: Supported on ChromeOS and macOS only.Chrome: Supported on macOS only.Edge: Supported on macOS only.Opera: Supported on macOS only. | ||
| api.BarcodeDetector.detect 📋 | Safari | 9/18/2023 | 1121 | Chrome: Supported on ChromeOS and macOS only.Chrome: Supported on macOS only.Edge: Supported on macOS only.Opera: Supported on macOS only. | ||
| api.BarcodeDetector.getSupportedFormats_static 📋 | Safari | 9/18/2023 | 1121 | Chrome: Supported on ChromeOS and macOS only.Chrome: Supported on macOS only.Edge: Supported on macOS only.Opera: Supported on macOS only. | ||
| api.BufferedChangeEvent 📋 | Safari | 9/18/2023 | 1121 | |||
| api.BufferedChangeEvent.BufferedChangeEvent 📋 | Safari | 9/18/2023 | 1121 | |||
| api.BufferedChangeEvent.addedRanges 📋 | Safari | 9/18/2023 | 1121 | |||
| api.BufferedChangeEvent.removedRanges 📋 | Safari | 9/18/2023 | 1121 | |||
| api.CSSPageDescriptors 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.margin 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.margin-bottom 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.margin-left 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.margin-right 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.margin-top 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.marginBottom 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.marginLeft 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.marginRight 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.marginTop 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.page-orientation 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.pageOrientation 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageDescriptors.size 📋 | Firefox | 8/6/2024 | 798 | |||
| api.CSSPageRule.style.type_CSSPageDescriptors | Firefox | 8/6/2024 | 798 | |||
| api.CSSPositionTryDescriptors 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.align-self 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.alignSelf 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.block-size 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.blockSize 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.bottom 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.height 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inline-size 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inlineSize 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inset 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inset-block 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inset-block-end 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inset-block-start 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inset-inline 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inset-inline-end 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.inset-inline-start 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.insetBlock 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.insetBlockEnd 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.insetBlockStart 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.insetInline 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.insetInlineEnd 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.insetInlineStart 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.justify-self 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.justifySelf 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.left 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-block 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-block-end 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-block-start 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-bottom 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-inline 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-inline-end 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-inline-start 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-left 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-right 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.margin-top 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginBlock 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginBlockEnd 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginBlockStart 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginBottom 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginInline 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginInlineEnd 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginInlineStart 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginLeft 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginRight 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.marginTop 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.max-block-size 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.max-height 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.max-inline-size 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.max-width 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.maxBlockSize 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.maxHeight 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.maxInlineSize 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.maxWidth 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.min-block-size 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.min-height 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.min-inline-size 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.min-width 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.minBlockSize 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.minHeight 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.minInlineSize 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.minWidth 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.place-self 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.placeSelf 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.position-anchor 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.position-area 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.positionAnchor 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.positionArea 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.right 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.top 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryDescriptors.width 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryRule 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryRule.name 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPositionTryRule.style 📋 | Firefox | 10/1/2024 | 742 | |||
| api.CSSPseudoElement 📋 | Firefox | 4/7/2020 | 2380 | |||
| api.CSSPseudoElement.element 📋 | Firefox | 4/7/2020 | 2380 | |||
| api.CSSPseudoElement.type 📋 | Firefox | 4/7/2020 | 2380 | |||
| api.CloseWatcher 📋 | Firefox | 10/29/2024 | 714 | |||
| api.CloseWatcher.CloseWatcher 📋 | Firefox | 10/29/2024 | 714 | |||
| api.CloseWatcher.cancel_event 📋 | Firefox | 10/29/2024 | 714 | |||
| api.CloseWatcher.close 📋 | Firefox | 10/29/2024 | 714 | |||
| api.CloseWatcher.close_event 📋 | Firefox | 10/29/2024 | 714 | |||
| api.CloseWatcher.destroy 📋 | Firefox | 10/29/2024 | 714 | |||
| api.CloseWatcher.requestClose 📋 | Firefox | 10/29/2024 | 714 | |||
| api.Credential.isConditionalMediationAvailable_static 📋 | Safari | 9/12/2022 | 1492 | |||
| api.DataCue 📋 | Safari | 9/19/2017 | 3311 | |||
| api.DataCue.DataCue 📋 | Safari | 9/19/2017 | 3311 | |||
| api.DataCue.type 📋 | Safari | 9/19/2017 | 3311 | |||
| api.DataCue.value 📋 | Safari | 9/19/2017 | 3311 | |||
| api.DataTransfer.addElement | Firefox | 6/30/2009 | 6314 | |||
| api.DataTransfer.mozCursor | Firefox | 6/30/2009 | 6314 | |||
| api.DataTransfer.mozSourceNode | Firefox | 3/22/2011 | 5684 | |||
| api.DataTransfer.mozUserCancelled | Firefox | 6/30/2009 | 6314 | |||
| api.DeprecationReportBody 📋 | Firefox | 1/29/2019 | 2814 | Firefox: Not supported in workers | ||
| api.DeprecationReportBody.anticipatedRemoval 📋 | Firefox | 1/29/2019 | 2814 | |||
| api.DeprecationReportBody.columnNumber 📋 | Firefox | 1/29/2019 | 2814 | |||
| api.DeprecationReportBody.id 📋 | Firefox | 1/29/2019 | 2814 | |||
| api.DeprecationReportBody.lineNumber 📋 | Firefox | 1/29/2019 | 2814 | |||
| api.DeprecationReportBody.message 📋 | Firefox | 1/29/2019 | 2814 | |||
| api.DeprecationReportBody.sourceFile 📋 | Firefox | 1/29/2019 | 2814 | |||
| api.Directory | Firefox | 6/10/2014 | 4508 | |||
| api.Directory.getFiles | Firefox | 8/2/2016 | 3724 | |||
| api.Directory.getFilesAndDirectories | Firefox | 11/3/2015 | 3997 | |||
| api.Directory.name | Firefox | 6/10/2014 | 4508 | |||
| api.Directory.path | Firefox | 11/3/2015 | 3997 | |||
| api.Document.featurePolicy | Firefox | 9/3/2019 | 2597 | |||
| api.Document.getBoxQuads 📋 | Firefox | 7/22/2014 | 4466 | |||
| api.Element.animate.options_iterationComposite_parameter 📋 | Firefox | 8/25/2020 | 2240 | |||
| api.Element.ariaActiveDescendantElement 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Element.ariaControlsElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Element.ariaDescribedByElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Element.ariaDetailsElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Element.ariaErrorMessageElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Element.ariaFlowToElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Element.ariaLabelledByElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Element.ariaOwnsElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Element.getBoxQuads 📋 | Firefox | 7/22/2014 | 4466 | |||
| api.ElementInternals.ariaActiveDescendantElement 📋 | Safari | 3/27/2023 | 1296 | |||
| api.ElementInternals.ariaControlsElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.ElementInternals.ariaDescribedByElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.ElementInternals.ariaDetailsElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.ElementInternals.ariaErrorMessageElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.ElementInternals.ariaFlowToElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.ElementInternals.ariaLabelledByElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.ElementInternals.ariaOwnsElements 📋 | Safari | 3/27/2023 | 1296 | |||
| api.FeaturePolicy | Firefox | 1/29/2019 | 2814 | |||
| api.FeaturePolicy.allowedFeatures | Firefox | 1/29/2019 | 2814 | |||
| api.FeaturePolicy.allowsFeature | Firefox | 1/29/2019 | 2814 | |||
| api.FeaturePolicy.features | Firefox | 10/22/2019 | 2548 | |||
| api.FeaturePolicy.getAllowlistForFeature | Firefox | 1/29/2019 | 2814 | |||
| api.FetchEvent.respondWith.resource_url | Firefox | 3/13/2018 | 3136 | |||
| api.FontFace.variationSettings 📋 | Firefox | 9/5/2018 | 2960 | |||
| api.Gamepad.hand 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.Gamepad.hapticActuators 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.Gamepad.pose 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.Gamepad.secure_context_required | Firefox | 8/10/2021 | 1890 | |||
| api.GamepadButton.secure_context_required | Firefox | 8/10/2021 | 1890 | |||
| api.GamepadEvent.secure_context_required | Firefox | 8/10/2021 | 1890 | |||
| api.GamepadPose 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.angularAcceleration 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.angularVelocity 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.hasOrientation 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.hasPosition 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.linearAcceleration 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.linearVelocity 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.orientation 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.position 📋 | Firefox | 8/8/2017 | 3353 | |||
| api.GamepadPose.secure_context_required | Firefox | 8/10/2021 | 1890 | |||
| api.HTMLAnchorElement.attributionSourceId 📋 | Safari | 3/14/2022 | 1674 | |||
| api.HTMLElement.autocorrect 📋 | Safari | 4/26/2021 | 1996 | |||
| api.HTMLElement.focus.options_focusVisible_parameter | Firefox | 8/23/2022 | 1512 | |||
| api.HTMLIFrameElement.featurePolicy | Firefox | 9/3/2019 | 2597 | |||
| api.HTMLInputElement.selectionchange_event 📋 | Firefox | 9/7/2021 | 1862 | Chrome: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <input> elements.Chrome Android: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <input> elements.Edge: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <input> elements.Quest Browser: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <input> elements.Opera: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <input> elements.Opera Android: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <input> elements.Samsung Internet: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <input> elements.WebView Android: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <input> elements. | ||
| api.HTMLOutputElement.HTMLOutputElement 📋 | Safari | 9/20/2021 | 1849 | |||
| api.HTMLTextAreaElement.selectionchange_event 📋 | Firefox | 9/7/2021 | 1862 | Chrome: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <textarea> elements.Chrome Android: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <textarea> elements.Edge: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <textarea> elements.Quest Browser: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <textarea> elements.Opera: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <textarea> elements.Opera Android: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <textarea> elements.Samsung Internet: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <textarea> elements.WebView Android: A selectionchange event is fired on Document, see Document's selectionchange event. See bug 40840956 for firing the event on <textarea> elements. | ||
| api.IDBDatabase.transaction.mode_parameter_readwriteflush | Firefox | 8/11/2015 | 4081 | |||
| api.ImageCapture 📋 | Firefox | 1/13/2015 | Safari | 3/5/2024 | 3339 | |
| api.ImageCapture.ImageCapture 📋 | Firefox | 1/13/2015 | Safari | 3/5/2024 | 3339 | |
| api.ImageCapture.getPhotoCapabilities 📋 | Safari | 3/5/2024 | 952 | |||
| api.ImageCapture.getPhotoSettings 📋 | Safari | 3/5/2024 | 952 | |||
| api.ImageCapture.takePhoto 📋 | Firefox | 1/13/2015 | Safari | 3/5/2024 | 3339 | Chrome: photoSettings parameter not supported.Chrome Android: photoSettings parameter not supported.Opera: photoSettings parameter not supported.Opera Android: photoSettings parameter not supported.Samsung Internet: photoSettings parameter not supported.WebView Android: photoSettings parameter not supported. |
| api.ImageCapture.track 📋 | Firefox | 1/13/2015 | Safari | 3/5/2024 | 3339 | |
| api.InputEvent.inputType.insertFromPasteAsQuotation | Firefox | 5/21/2019 | 2702 | |||
| api.IntersectionObserverEntry.IntersectionObserverEntry | Safari | 3/25/2019 | 2759 | |||
| api.ManagedMediaSource 📋 | Safari | 9/18/2023 | 1121 | |||
| api.ManagedMediaSource.ManagedMediaSource 📋 | Safari | 9/18/2023 | 1121 | |||
| api.ManagedMediaSource.endstreaming_event 📋 | Safari | 9/18/2023 | 1121 | |||
| api.ManagedMediaSource.startstreaming_event 📋 | Safari | 9/18/2023 | 1121 | |||
| api.ManagedMediaSource.streaming 📋 | Safari | 9/18/2023 | 1121 | |||
| api.ManagedSourceBuffer 📋 | Safari | 9/18/2023 | 1121 | |||
| api.ManagedSourceBuffer.bufferedchange_event 📋 | Safari | 9/18/2023 | 1121 | |||
| api.MediaDevices.selectAudioOutput 📋 | Firefox | 8/1/2023 | 1169 | |||
| api.Navigator.audioSession 📋 | Safari | 3/27/2023 | 1296 | |||
| api.Navigator.getAutoplayPolicy 📋 | Firefox | 4/11/2023 | 1281 | |||
| api.Navigator.getGamepads.secure_context_required | Firefox | 8/10/2021 | 1890 | |||
| api.Navigator.globalPrivacyControl 📋 | Firefox | 11/21/2023 | 1057 | Firefox: Opt-in to GPC using the Website Privacy Preference setting ( about:preferences#privacy) checkbox 'Tell websites not to sell or share my data', or by setting the preference privacy.globalprivacycontrol.enabled to true. | ||
| api.Navigator.registerProtocolHandler.scheme_parameter_ftp | Firefox | 3/8/2022 | 1680 | |||
| api.Navigator.registerProtocolHandler.scheme_parameter_ftps | Firefox | 3/8/2022 | 1680 | |||
| api.Navigator.registerProtocolHandler.scheme_parameter_sftp | Firefox | 3/8/2022 | 1680 | |||
| api.PerformanceResourceTiming.contentType 📋 | Firefox | 8/6/2024 | 798 | |||
| api.PushSubscriptionChangeEvent.PushSubscriptionChangeEvent 📋 | Safari | 10/24/2022 | 1450 | Safari on iOS: Notifications are supported in web apps saved to the home screen.WebView on iOS: Notifications are supported in web apps saved to the home screen. | ||
| api.RTCDataChannel.priority 📋 | Safari | 9/20/2021 | 1849 | |||
| api.RTCIdentityAssertion 📋 | Firefox | 8/11/2015 | 4081 | Firefox: The RTCIdentityAssertion interface itself is not present, but an object with the same properties is usedFirefox for Android: The RTCIdentityAssertion interface itself is not present, but an object with the same properties is used | ||
| api.RTCIdentityAssertion.idp 📋 | Firefox | 8/11/2015 | 4081 | |||
| api.RTCIdentityAssertion.name 📋 | Firefox | 8/11/2015 | 4081 | |||
| api.RTCStatsReport.type_outbound-rtp.totalEncodedBytesTarget 📋 | Firefox | 6/28/2022 | 1568 | |||
| api.RTCStatsReport.type_remote-inbound-rtp.packetsReceived 📋 | Firefox | 1/7/2020 | 2471 | |||
| api.ReadableStream.from_static 📋 | Firefox | 8/29/2023 | 1141 | |||
| api.ReadableStreamBYOBReader.read.options_min_parameter 📋 | Firefox | 1/7/2025 | 644 | |||
| api.ReportingObserver.worker_support | Firefox | 6/2/2020 | 2324 | |||
| api.SVGScriptElement.async | Firefox | 8/29/2023 | 1141 | |||
| api.SVGScriptElement.defer | Firefox | 8/29/2023 | 1141 | |||
| api.Selection.getComposedRanges 📋 | Safari | 9/18/2023 | 1121 | |||
| api.SourceBuffer.appendBufferAsync | Firefox | 9/5/2018 | 2960 | |||
| api.SourceBuffer.removeAsync | Firefox | 9/5/2018 | 2960 | |||
| api.SourceBuffer.textTracks 📋 | Safari | 10/16/2014 | 4380 | Safari on iOS: Exposed in Mobile Safari on iPad but not on iPhone. | ||
| api.SpeechGrammar 📋 | Firefox | 1/26/2016 | 3913 | Firefox: Note that currently only the speech synthesis part is available in Firefox Desktop - the speech recognition part will be available soon, once the required internal permissions are sorted out. | ||
| api.SpeechGrammar.SpeechGrammar | Firefox | 1/26/2016 | 3913 | Firefox: Note that currently only the speech synthesis part is available in Firefox Desktop - the speech recognition part will be available soon, once the required internal permissions are sorted out. | ||
| api.SpeechGrammar.src 📋 | Firefox | 1/26/2016 | 3913 | Firefox: Note that currently only the speech synthesis part is available in Firefox Desktop - the speech recognition part will be available soon, once the required internal permissions are sorted out. | ||
| api.SpeechGrammar.weight 📋 | Firefox | 1/26/2016 | 3913 | Firefox: Note that currently only the speech synthesis part is available in Firefox Desktop - the speech recognition part will be available soon, once the required internal permissions are sorted out. | ||
| api.SpeechRecognitionErrorEvent.SpeechRecognitionErrorEvent 📋 | Safari | 4/26/2021 | 1996 | |||
| api.SpeechRecognitionEvent.SpeechRecognitionEvent 📋 | Safari | 4/26/2021 | 1996 | |||
| api.Text.getBoxQuads 📋 | Firefox | 7/22/2014 | 4466 | |||
| api.VideoTrackGenerator 📋 | Safari | 9/16/2024 | 757 | |||
| api.VideoTrackGenerator.VideoTrackGenerator 📋 | Safari | 9/16/2024 | 757 | |||
| api.VideoTrackGenerator.muted 📋 | Safari | 9/16/2024 | 757 | |||
| api.VideoTrackGenerator.track 📋 | Safari | 9/16/2024 | 757 | |||
| api.VideoTrackGenerator.writable 📋 | Safari | 9/16/2024 | 757 | |||
| api.WebGLActiveInfo.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLBuffer.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLContextEvent.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLFramebuffer.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLProgram.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLRenderbuffer.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLRenderingContext.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLShader.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLShaderPrecisionFormat.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLTexture.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebGLUniformLocation.worker_support | Firefox | 9/20/2022 | 1484 | |||
| api.WebTransport.WebTransport.options_allowPooling_parameter 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransport.WebTransport.options_congestionControl_parameter 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransport.WebTransport.options_requireUnreliable_parameter 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransport.congestionControl 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransport.createBidirectionalStream.options_sendOrder_parameter 📋 | Firefox | 10/24/2023 | 1085 | |||
| api.WebTransport.createUnidirectionalStream.options_sendOrder_parameter 📋 | Firefox | 10/24/2023 | 1085 | |||
| api.WebTransport.getStats 📋 | Firefox | 6/6/2023 | 1225 | Firefox: Method is defined but throws a not-implemented error.Firefox for Android: Method is defined but throws a not-implemented error. | ||
| api.WebTransport.reliability 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransportBidirectionalStream.readable.returns_WebTransportReceiveStream 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransportBidirectionalStream.writable.returns_WebTransportSendStream 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransportReceiveStream 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransportReceiveStream.getStats 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransportSendStream 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransportSendStream.getStats 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransportSendStream.getWriter 📋 | Firefox | 6/6/2023 | 1225 | |||
| api.WebTransportSendStream.sendOrder 📋 | Firefox | 12/19/2023 | 1029 | |||
| api.WindowClient.ancestorOrigins 📋 | Safari | 9/12/2022 | 1492 | |||
| api.WorkerNavigator.globalPrivacyControl 📋 | Firefox | 11/21/2023 | 1057 | Firefox: Opt-in to GPC by setting the preference privacy.globalprivacycontrol.enabled to true. |
| API | First Browser | Date | Last Browser | Date | Days in experimentation | Notes |
|---|---|---|---|---|---|---|
| css.at-rules.media.prefers-reduced-transparency 📋 | Firefox | 5/9/2023 | 1253 | |||
| css.properties.-webkit-column-axis | Safari | 7/25/2012 | 5193 | |||
| css.properties.-webkit-column-progression | Safari | 10/22/2013 | 4739 | |||
| css.properties.-webkit-cursor-visibility | Safari | 10/22/2013 | 4739 | |||
| css.properties.-webkit-hyphenate-limit-after | Safari | 7/20/2011 | 5564 | |||
| css.properties.-webkit-hyphenate-limit-before | Safari | 7/20/2011 | 5564 | |||
| css.properties.-webkit-hyphenate-limit-lines | Safari | 7/25/2012 | 5193 | |||
| css.properties.-webkit-line-align | Safari | 7/25/2012 | 5193 | |||
| css.properties.-webkit-line-box-contain | Safari | 7/20/2011 | 5564 | |||
| css.properties.-webkit-line-grid | Safari | 7/25/2012 | 5193 | |||
| css.properties.-webkit-line-snap | Safari | 7/25/2012 | 5193 | |||
| css.properties.-webkit-mask-source-type | Safari | 10/22/2013 | 4739 | |||
| css.properties.-webkit-nbsp-mode | Safari | 6/8/2009 | 6336 | |||
| css.properties.-webkit-text-zoom | Safari | 9/20/2016 | 3675 | |||
| css.properties.animation-timeline 📋 | Firefox | 2/14/2023 | 1337 | |||
| css.properties.animation-timeline.scroll 📋 | Firefox | 2/14/2023 | 1337 | Firefox: Zero scroll range is treated as 100% but should be 0% (see bug 1780865).Firefox: Supports the deprecated horizontal and vertical axis values, and not the x and y values. | ||
| css.properties.animation-timeline.view 📋 | Firefox | 6/6/2023 | 1225 | |||
| css.properties.background-image.element 📋 | Firefox | 3/22/2011 | 5684 | |||
| css.properties.block-size.fit-content_function | Firefox | 8/10/2021 | 1890 | |||
| css.properties.break-after.always | Firefox | 1/7/2020 | 2471 | |||
| css.properties.break-before.always | Firefox | 1/7/2020 | 2471 | |||
| css.properties.content.none_applies_to_elements | Firefox | 8/10/2021 | 1890 | |||
| css.properties.counter-reset.reset_does_not_affect_siblings | Firefox | 10/20/2020 | 2184 | |||
| css.properties.counter-reset.reversed 📋 | Firefox | 1/11/2022 | 1736 | |||
| css.properties.font-synthesis-position 📋 | Firefox | 9/26/2023 | 1113 | |||
| css.properties.font-synthesis-position.auto 📋 | Firefox | 9/26/2023 | 1113 | |||
| css.properties.font-synthesis-position.none 📋 | Firefox | 9/26/2023 | 1113 | |||
| css.properties.grid-template-columns.masonry 📋 | Firefox | 6/2/2020 | 2324 | |||
| css.properties.grid-template-rows.masonry 📋 | Firefox | 6/2/2020 | 2324 | |||
| css.properties.height.fit-content_function 📋 | Firefox | 8/10/2021 | 1890 | |||
| css.properties.image-rendering.smooth 📋 | Firefox | 10/5/2021 | 1834 | |||
| css.properties.inline-size.fit-content_function | Firefox | 8/10/2021 | 1890 | |||
| css.properties.margin-trim 📋 | Safari | 3/27/2023 | 1296 | |||
| css.properties.margin-trim.block 📋 | Safari | 3/27/2023 | 1296 | |||
| css.properties.margin-trim.block-end 📋 | Safari | 3/27/2023 | 1296 | |||
| css.properties.margin-trim.block-start 📋 | Safari | 3/27/2023 | 1296 | |||
| css.properties.margin-trim.inline 📋 | Safari | 3/27/2023 | 1296 | |||
| css.properties.margin-trim.inline-end 📋 | Safari | 3/27/2023 | 1296 | |||
| css.properties.margin-trim.inline-start 📋 | Safari | 3/27/2023 | 1296 | |||
| css.properties.margin-trim.none 📋 | Safari | 3/27/2023 | 1296 | |||
| css.properties.max-block-size.fit-content_function | Firefox | 8/10/2021 | 1890 | |||
| css.properties.max-height.fit-content_function 📋 | Firefox | 8/10/2021 | 1890 | |||
| css.properties.max-inline-size.fit-content_function | Firefox | 8/10/2021 | 1890 | |||
| css.properties.max-width.fit-content_function 📋 | Firefox | 8/10/2021 | 1890 | |||
| css.properties.min-block-size.fit-content_function | Firefox | 8/10/2021 | 1890 | |||
| css.properties.min-height.fit-content_function 📋 | Firefox | 8/10/2021 | 1890 | |||
| css.properties.min-height.stretch | Safari | 9/30/2015 | 4031 | |||
| css.properties.min-inline-size.fit-content_function | Firefox | 8/10/2021 | 1890 | |||
| css.properties.min-width.fit-content_function 📋 | Firefox | 8/10/2021 | 1890 | |||
| css.properties.mix-blend-mode.plus-darker 📋 | Safari | 3/24/2020 | 2394 | |||
| css.properties.offset-path.margin-box 📋 | Safari | 9/16/2024 | 757 | |||
| css.properties.overflow-block.overlay | Firefox | 4/11/2023 | 1281 | |||
| css.properties.overflow-inline.overlay | Firefox | 4/11/2023 | 1281 | |||
| css.properties.ruby-position.alternate | Firefox | 4/19/2021 | 2003 | |||
| css.properties.scroll-timeline 📋 | Firefox | 3/14/2023 | 1309 | Firefox: The syntax of the shorthand property uses the fixed order of name and then the axis.Firefox: Supports the deprecated horizontal and vertical axis values, and not the x and y values.Firefox: The @scroll-timeline at-rule is replaced with the longhand properties scroll-timeline-name and scroll-timeline-axis and the shorthand property scroll-timeline. | ||
| css.properties.scroll-timeline-axis 📋 | Firefox | 3/14/2023 | 1309 | Firefox: The syntax of the shorthand property uses the fixed order of name and then the axis.Firefox: Supports the deprecated horizontal and vertical values, and not the x and y values.Firefox: The @scroll-timeline at-rule is replaced with the longhand properties scroll-timeline-name and scroll-timeline-axis and the shorthand property scroll-timeline. | ||
| css.properties.scroll-timeline-name 📋 | Firefox | 3/14/2023 | 1309 | Firefox: The syntax of the shorthand property uses the fixed order of name and then the axis.Firefox: The @scroll-timeline at-rule is replaced with the longhand properties scroll-timeline-name and scroll-timeline-axis and the shorthand property scroll-timeline. | ||
| css.properties.speak-as 📋 | Safari | 4/12/2018 | 3106 | |||
| css.properties.speak-as.digits 📋 | Safari | 4/12/2018 | 3106 | |||
| css.properties.speak-as.literal-punctuation 📋 | Safari | 4/12/2018 | 3106 | |||
| css.properties.speak-as.no-punctuation 📋 | Safari | 4/12/2018 | 3106 | |||
| css.properties.speak-as.normal 📋 | Safari | 4/12/2018 | 3106 | |||
| css.properties.speak-as.spell-out 📋 | Safari | 4/12/2018 | 3106 | |||
| css.properties.stroke-color 📋 | Safari | 3/24/2020 | 2394 | |||
| css.properties.text-decoration-skip 📋 | Safari | 3/25/2019 | 2759 | Chrome: Only supports the deprecated ink value.Chrome Android: Only supports the deprecated ink value.Opera: Only supports the deprecated ink value.Opera Android: Only supports the deprecated ink value.Safari: Supports only none, auto, and objects values.Safari: Supports only none, auto, and objects values.Safari on iOS: Supports only none, auto, and objects values.Safari on iOS: Supports only none, auto, and objects values.Samsung Internet: Only supports the deprecated ink value.WebView Android: Only supports the deprecated ink value.WebView on iOS: Supports only none, auto, and objects values.WebView on iOS: Supports only none, auto, and objects values. | ||
| css.properties.text-decoration-skip.auto 📋 | Safari | 3/24/2020 | 2394 | |||
| css.properties.text-decoration-skip.none 📋 | Safari | 3/24/2020 | 2394 | |||
| css.properties.text-emphasis-position.auto | Firefox | 10/29/2024 | 714 | |||
| css.properties.text-justify.auto 📋 | Firefox | 8/8/2017 | 3353 | |||
| css.properties.text-justify.inter-character 📋 | Firefox | 8/8/2017 | 3353 | |||
| css.properties.text-justify.inter-word 📋 | Firefox | 8/8/2017 | 3353 | |||
| css.properties.text-justify.none 📋 | Firefox | 8/8/2017 | 3353 | |||
| css.properties.view-timeline 📋 | Firefox | 6/6/2023 | 1225 | Firefox: Now supports the x and y values, and also the deprecated horizontal and vertical values. | ||
| css.properties.view-timeline-axis 📋 | Firefox | 6/6/2023 | 1225 | Firefox: Now supports the x and y values, and also the deprecated horizontal and vertical values. | ||
| css.properties.view-timeline-name 📋 | Firefox | 3/14/2023 | 1309 | |||
| css.properties.white-space-collapse.preserve-spaces 📋 | Firefox | 3/19/2024 | 938 | |||
| css.properties.width.fit-content_function 📋 | Firefox | 8/10/2021 | 1890 | |||
| css.selectors.-moz-first-node | Firefox | 1/7/2020 | 2471 | |||
| css.selectors.-moz-focus-inner | Firefox | 1/7/2020 | 2471 | |||
| css.selectors.-moz-last-node | Firefox | 1/7/2020 | 2471 | |||
| css.selectors.-moz-list-bullet | Firefox | 1/7/2020 | 2471 | |||
| css.selectors.-moz-list-number | Firefox | 1/7/2020 | 2471 | |||
| css.selectors.-moz-progress-bar | Firefox | 1/7/2020 | 2471 | |||
| css.types.color.system-color.mark_marktext_buttonborder 📋 | Firefox | 1/17/2023 | 1365 | |||
| css.types.image.element 📋 | Firefox | 11/14/2017 | 3255 | Firefox: -moz-element() is limited to background-image, background, border-image and border-image-source.Firefox: -moz-element() is limited to background-image and background.Firefox for Android: -moz-element() is limited to background-image, background, border-image and border-image-source.Firefox for Android: -moz-element() is limited to background-image and background. | ||
| css.types.ratio.number_value | Firefox | 6/30/2020 | 2296 |