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 Firefox and Safari
| API | First Browser | Date | Last Browser | Date | Days in experimentation | Notes |
|---|---|---|---|---|---|---|
| api.Animation.commitStyles.endpoint_inclusive_commitStyles 📋 | Firefox | 8/19/2025 | 212 | |||
| api.AudioSession 📋 | Safari | 3/27/2023 | 1088 | |||
| api.AudioSession.type 📋 | Safari | 3/27/2023 | 1088 | |||
| api.AudioWorklet.port 📋 | Firefox | 4/29/2025 | 324 | |||
| api.AudioWorkletGlobalScope.port 📋 | Firefox | 4/29/2025 | 324 | |||
| api.BarcodeDetector 📋 | Safari | 9/18/2023 | 913 | 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 | 913 | 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 | 913 | 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 | 913 | 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 | 913 | |||
| api.BufferedChangeEvent.BufferedChangeEvent 📋 | Safari | 9/18/2023 | 913 | |||
| api.BufferedChangeEvent.addedRanges 📋 | Safari | 9/18/2023 | 913 | |||
| api.BufferedChangeEvent.removedRanges 📋 | Safari | 9/18/2023 | 913 | |||
| api.CSSCustomMediaRule 📋 | Firefox | 12/9/2025 | 100 | |||
| api.CSSFontFaceDescriptors 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.font-display 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.font-family 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.font-feature-settings 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.font-stretch 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.font-style 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.font-weight 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.font-width 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.fontDisplay 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.fontFamily 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.fontFeatureSettings 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.fontStretch 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.fontStyle 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.fontWeight 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.fontWidth 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.size-adjust 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.sizeAdjust 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.src 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.unicode-range 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSFontFaceDescriptors.unicodeRange 📋 | Safari | 9/15/2025 | 185 | |||
| api.CSSPageDescriptors.page-orientation 📋 | Firefox | 8/6/2024 | 590 | |||
| api.CSSPageDescriptors.pageOrientation 📋 | Firefox | 8/6/2024 | 590 | |||
| api.CSSPseudoElement 📋 | Firefox | 4/7/2020 | 2172 | |||
| api.CSSPseudoElement.element 📋 | Firefox | 4/7/2020 | 2172 | |||
| api.CSSPseudoElement.type 📋 | Firefox | 4/7/2020 | 2172 | |||
| api.CompressionStream.CompressionStream.zstd | Firefox | 4/29/2025 | 324 | |||
| api.Credential.isConditionalMediationAvailable_static 📋 | Safari | 9/12/2022 | 1284 | |||
| api.DataCue 📋 | Safari | 9/19/2017 | 3103 | |||
| api.DataCue.DataCue 📋 | Safari | 9/19/2017 | 3103 | |||
| api.DataCue.type 📋 | Safari | 9/19/2017 | 3103 | |||
| api.DataCue.value 📋 | Safari | 9/19/2017 | 3103 | |||
| api.DataTransfer.addElement | Firefox | 6/30/2009 | 6106 | |||
| api.DataTransfer.mozCursor | Firefox | 6/30/2009 | 6106 | |||
| api.DataTransfer.mozSourceNode | Firefox | 3/22/2011 | 5476 | |||
| api.DataTransfer.mozUserCancelled | Firefox | 6/30/2009 | 6106 | |||
| api.DecompressionStream.DecompressionStream.zstd | Firefox | 4/29/2025 | 324 | |||
| api.DeprecationReportBody 📋 | Firefox | 1/29/2019 | 2606 | Firefox: Not supported in workers | ||
| api.DeprecationReportBody.anticipatedRemoval 📋 | Firefox | 1/29/2019 | 2606 | |||
| api.DeprecationReportBody.columnNumber 📋 | Firefox | 1/29/2019 | 2606 | |||
| api.DeprecationReportBody.id 📋 | Firefox | 1/29/2019 | 2606 | |||
| api.DeprecationReportBody.lineNumber 📋 | Firefox | 1/29/2019 | 2606 | |||
| api.DeprecationReportBody.message 📋 | Firefox | 1/29/2019 | 2606 | |||
| api.DeprecationReportBody.sourceFile 📋 | Firefox | 1/29/2019 | 2606 | |||
| api.Directory | Firefox | 6/10/2014 | 4300 | |||
| api.Directory.getFiles | Firefox | 8/2/2016 | 3516 | |||
| api.Directory.getFilesAndDirectories | Firefox | 11/3/2015 | 3789 | |||
| api.Directory.name | Firefox | 6/10/2014 | 4300 | |||
| api.Directory.path | Firefox | 11/3/2015 | 3789 | |||
| api.Document.featurePolicy | Firefox | 9/3/2019 | 2389 | |||
| api.Document.getBoxQuads 📋 | Firefox | 7/22/2014 | 4258 | |||
| api.Document.parseHTML_static 📋 | Firefox | 2/24/2026 | 23 | |||
| api.Element.animate.options_iterationComposite_parameter 📋 | Firefox | 8/25/2020 | 2032 | |||
| api.Element.getBoxQuads 📋 | Firefox | 7/22/2014 | 4258 | |||
| api.FeaturePolicy | Firefox | 1/29/2019 | 2606 | |||
| api.FeaturePolicy.allowedFeatures | Firefox | 1/29/2019 | 2606 | |||
| api.FeaturePolicy.allowsFeature | Firefox | 1/29/2019 | 2606 | |||
| api.FeaturePolicy.features | Firefox | 10/22/2019 | 2340 | |||
| api.FeaturePolicy.getAllowlistForFeature | Firefox | 1/29/2019 | 2606 | |||
| api.FetchEvent.respondWith.resource_url | Firefox | 3/13/2018 | 2928 | |||
| api.Gamepad.hand 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.Gamepad.hapticActuators 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.Gamepad.pose 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.Gamepad.secure_context_required | Firefox | 8/10/2021 | 1682 | |||
| api.GamepadButton.secure_context_required | Firefox | 8/10/2021 | 1682 | |||
| api.GamepadEvent.secure_context_required | Firefox | 8/10/2021 | 1682 | |||
| api.GamepadPose 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.angularAcceleration 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.angularVelocity 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.hasOrientation 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.hasPosition 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.linearAcceleration 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.linearVelocity 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.orientation 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.position 📋 | Firefox | 8/8/2017 | 3145 | |||
| api.GamepadPose.secure_context_required | Firefox | 8/10/2021 | 1682 | |||
| api.HTMLAnchorElement.attributionSourceId 📋 | Safari | 3/14/2022 | 1466 | |||
| api.HTMLIFrameElement.featurePolicy | Firefox | 9/3/2019 | 2389 | |||
| api.HTMLInputElement.alpha 📋 | Safari | 3/31/2025 | 353 | |||
| api.HTMLInputElement.colorSpace 📋 | Safari | 3/31/2025 | 353 | |||
| api.HTMLOutputElement.HTMLOutputElement 📋 | Safari | 9/20/2021 | 1641 | |||
| api.IDBDatabase.transaction.mode_parameter_readwriteflush | Firefox | 8/11/2015 | 3873 | |||
| api.InputEvent.inputType.insertFromPasteAsQuotation | Firefox | 5/21/2019 | 2494 | |||
| api.IntersectionObserverEntry.IntersectionObserverEntry 📋 | Safari | 3/25/2019 | 2551 | |||
| api.ManagedMediaSource 📋 | Safari | 9/18/2023 | 913 | |||
| api.ManagedMediaSource.ManagedMediaSource 📋 | Safari | 9/18/2023 | 913 | |||
| api.ManagedMediaSource.endstreaming_event 📋 | Safari | 9/18/2023 | 913 | |||
| api.ManagedMediaSource.startstreaming_event 📋 | Safari | 9/18/2023 | 913 | |||
| api.ManagedMediaSource.streaming 📋 | Safari | 9/18/2023 | 913 | |||
| api.ManagedSourceBuffer 📋 | Safari | 9/18/2023 | 913 | |||
| api.ManagedSourceBuffer.bufferedchange_event 📋 | Safari | 9/18/2023 | 913 | |||
| api.MediaDevices.selectAudioOutput 📋 | Firefox | 8/1/2023 | 961 | |||
| api.MediaSession.setScreenshareActive 📋 | Safari | 3/31/2025 | 353 | |||
| api.Navigator.audioSession 📋 | Safari | 3/27/2023 | 1088 | |||
| api.Navigator.getAutoplayPolicy 📋 | Firefox | 4/11/2023 | 1073 | |||
| api.Navigator.getGamepads.secure_context_required | Firefox | 8/10/2021 | 1682 | |||
| api.Navigator.globalPrivacyControl 📋 | Firefox | 11/21/2023 | 849 | 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.Firefox for Android: Opt-in to GPC using the Enhanced Tracking Protection toggle 'Tell web sites not to share & sell data', or by setting the preference privacy.globalprivacycontrol.enabled to true. | ||
| api.Navigator.registerProtocolHandler.scheme_parameter_ftp | Firefox | 3/8/2022 | 1472 | |||
| api.Navigator.registerProtocolHandler.scheme_parameter_ftps | Firefox | 3/8/2022 | 1472 | |||
| api.Navigator.registerProtocolHandler.scheme_parameter_sftp | Firefox | 3/8/2022 | 1472 | |||
| api.Notification.navigate 📋 | Safari | 3/31/2025 | 353 | |||
| api.PerformanceResourceTiming.contentType 📋 | Firefox | 8/6/2024 | 590 | |||
| api.PushEvent.notification 📋 | Safari | 3/31/2025 | 353 | Safari on iOS: Notifications are supported in web apps saved to the home screen. | ||
| api.RTCDataChannel.priority 📋 | Safari | 9/20/2021 | 1641 | |||
| api.RTCIdentityAssertion 📋 | Firefox | 8/11/2015 | 3873 | 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 | 3873 | |||
| api.RTCIdentityAssertion.name 📋 | Firefox | 8/11/2015 | 3873 | |||
| api.RTCStatsReport.type_inbound-rtp.estimatedPlayoutTimestamp 📋 | Firefox | 8/19/2025 | 212 | |||
| api.RTCStatsReport.type_inbound-rtp.framesAssembledFromMultiplePackets 📋 | Firefox | 8/19/2025 | 212 | |||
| api.RTCStatsReport.type_inbound-rtp.freezeCount 📋 | Firefox | 8/19/2025 | 212 | |||
| api.RTCStatsReport.type_inbound-rtp.pauseCount 📋 | Firefox | 8/19/2025 | 212 | |||
| api.RTCStatsReport.type_inbound-rtp.totalAssemblyTime 📋 | Firefox | 8/19/2025 | 212 | |||
| api.RTCStatsReport.type_inbound-rtp.totalFreezesDuration 📋 | Firefox | 8/19/2025 | 212 | |||
| api.RTCStatsReport.type_inbound-rtp.totalPausesDuration 📋 | Firefox | 8/19/2025 | 212 | |||
| api.RTCStatsReport.type_outbound-rtp.totalEncodedBytesTarget 📋 | Firefox | 6/28/2022 | 1360 | |||
| api.RTCStatsReport.type_remote-inbound-rtp.packetsReceived 📋 | Firefox | 1/7/2020 | 2263 | |||
| api.ReadableStream.from_static 📋 | Firefox | 8/29/2023 | 933 | |||
| api.ReportingObserver.worker_support | Firefox | 6/2/2020 | 2116 | |||
| api.Request.destination.speculationrules | Safari | 12/12/2025 | 97 | |||
| api.SVGPathElement.getPathData 📋 | Firefox | 4/1/2025 | 352 | |||
| api.SVGPathElement.getPathSegmentAtLength 📋 | Firefox | 4/1/2025 | 352 | |||
| api.SVGPathElement.setPathData 📋 | Firefox | 4/1/2025 | 352 | |||
| api.SVGScriptElement.defer | Firefox | 8/29/2023 | 933 | |||
| api.ShadowRoot.referenceTarget | Safari | 9/15/2025 | Firefox | 3/24/2026 | 190 | |
| api.ShadowRoot.setHTML 📋 | Firefox | 2/24/2026 | 23 | |||
| api.SourceBuffer.appendBufferAsync | Firefox | 9/5/2018 | 2752 | |||
| api.SourceBuffer.removeAsync | Firefox | 9/5/2018 | 2752 | |||
| api.SourceBuffer.textTracks 📋 | Safari | 10/16/2014 | 4172 | Safari on iOS: Exposed in Mobile Safari on iPad but not on iPhone. | ||
| api.Text.getBoxQuads 📋 | Firefox | 7/22/2014 | 4258 | |||
| api.VideoTrackGenerator 📋 | Safari | 9/16/2024 | 549 | |||
| api.VideoTrackGenerator.VideoTrackGenerator 📋 | Safari | 9/16/2024 | 549 | |||
| api.VideoTrackGenerator.muted 📋 | Safari | 9/16/2024 | 549 | |||
| api.VideoTrackGenerator.track 📋 | Safari | 9/16/2024 | 549 | |||
| api.VideoTrackGenerator.writable 📋 | Safari | 9/16/2024 | 549 | |||
| api.WebGLActiveInfo.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLBuffer.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLContextEvent.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLFramebuffer.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLProgram.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLRenderbuffer.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLRenderingContext.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLShader.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLShaderPrecisionFormat.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLTexture.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.WebGLUniformLocation.worker_support | Firefox | 9/20/2022 | 1276 | |||
| api.Window.pushManager 📋 | Safari | 3/31/2025 | 353 | Safari on iOS: Notifications are supported in web apps saved to the home screen. | ||
| api.WindowClient.ancestorOrigins 📋 | Safari | 9/12/2022 | 1284 | |||
| api.WorkerNavigator.globalPrivacyControl 📋 | Firefox | 11/21/2023 | 849 | Firefox: Opt-in to GPC by setting the preference privacy.globalprivacycontrol.enabled to true.Firefox for Android: Opt-in to GPC using the Enhanced Tracking Protection toggle 'Tell web sites not to share & sell data', or by setting the preference privacy.globalprivacycontrol.enabled to true. |