Not yet stable

For a given set of browsers, what APIs are not yet in all of them.

Example Comparisons
Browsers
Features

Summary

A count of the number of APIs are in Browser X but not in Browser Y.
Not in SafariNot in Safari on iOS
In Safari 53
In Safari on iOS 58

Unstable APIs

Below is a list of features that are not in all of Safari and Safari on iOS

Raw Data

Quick Links:

DOM API Data

API First Browser Date Days in Limbo Notes
api.ContactsManager 📋Safari on iOS4/26/20211788
Samsung Internet: This API was exposed but failed upon opening a contact selector.
api.ContactsManager.getProperties 📋Safari on iOS4/26/20211788
Samsung Internet: This API was exposed but failed upon opening a contact selector.
api.ContactsManager.select 📋Safari on iOS4/26/20211788
Samsung Internet: This API was exposed but failed upon opening a contact selector.
api.DeviceMotionEvent.requestPermission_static 📋Safari on iOS4/26/20211788
api.DeviceMotionEventAcceleration 📋Safari on iOS11/22/20105596
Firefox: The DeviceMotionEventAcceleration interface is supported, but not exposed on the Window scope.Firefox for Android: The DeviceMotionEventAcceleration interface is supported, but not exposed on the Window scope.Safari on iOS: The DeviceMotionEventAcceleration interface is supported, but not exposed on the Window scope.
api.DeviceMotionEventAcceleration.x 📋Safari on iOS11/22/20105596
api.DeviceMotionEventAcceleration.y 📋Safari on iOS11/22/20105596
api.DeviceMotionEventAcceleration.z 📋Safari on iOS11/22/20105596
api.DeviceMotionEventRotationRate 📋Safari on iOS11/22/20105596
api.DeviceMotionEventRotationRate.alpha 📋Safari on iOS11/22/20105596
api.DeviceMotionEventRotationRate.beta 📋Safari on iOS11/22/20105596
api.DeviceMotionEventRotationRate.gamma 📋Safari on iOS11/22/20105596
api.DeviceOrientationEvent.absolute 📋Safari9/18/2023913
api.DeviceOrientationEvent.requestPermission_static 📋Safari on iOS4/26/20211788
api.Document.createTouch Safari on iOS6/17/20096119
Chrome Android: Since Chrome 55, all parameters are optional.Quest Browser: Since Chrome 55, all parameters are optional.Opera Android: Since Opera Android 42, all parameters are optional.Samsung Internet: Since Chrome 55, all parameters are optional.WebView Android: Since Chrome 55, all parameters are optional.
api.Document.createTouchList Safari on iOS6/17/20096119
api.Document.exitPointerLock 📋Safari3/27/20173279
api.Document.pointerLockElement 📋Safari3/27/20173279
api.Document.pointerlockchange_event 📋Safari3/27/20173279
api.Document.pointerlockerror_event 📋Safari3/27/20173279
api.EXT_float_blend 📋Safari4/26/20211788
Chrome Android: Until Chrome 77, this extension was unavailable on several Android devices powered by GLES 3.2. See bug 41459397.Quest Browser: Until Chrome 77, this extension was unavailable on several Android devices powered by GLES 3.2. See bug 41459397.
api.EXT_texture_compression_bptc 📋Safari9/12/20221284
Chrome: Only supported on macOS.Edge: Only supported on macOS.Opera: Only supported on macOS.
api.EXT_texture_compression_rgtc 📋Safari4/26/20211788
Chrome: Only supported on macOS.Edge: Only supported on macOS.Firefox: Only supported on macOS.Opera: Only supported on macOS.
api.Element.contextmenu_event 📋Safari10/26/20076719
api.Element.contextmenu_event.type_pointerevent Safari12/11/2024463
api.Element.gesturechange_event Safari on iOS7/11/20086460
api.Element.gestureend_event Safari on iOS7/11/20086460
api.Element.gesturestart_event Safari on iOS7/11/20086460
api.Element.requestFullscreen.options_navigationUI_parameter 📋Safari3/27/20231088
api.Element.requestPointerLock 📋Safari3/27/20173279
Chrome: From version 92, returns a promise instead of undefined. The behavior reflects a specification change.Edge: From version 92, returns a promise instead of undefined. The behavior reflects a specification change.Opera: From version 78, returns a promise instead of undefined. The behavior reflects a specification change.Safari: From version 18.4, returns a promise instead of undefined. The behavior reflects a specification change.Samsung Internet: From version 16, returns a promise instead of undefined. The behavior reflects a specification change.
api.Element.requestPointerLock.options_unadjustedMovement_parameter 📋Safari3/31/2025353
Chrome: Supported on macOS Catalina 10.15.1+, Windows, and ChromeOS. Not yet supported on Linux.Edge: Supported on macOS Catalina 10.15.1+, Windows, and ChromeOS. Not yet supported on Linux.Opera: Supported on macOS Catalina 10.15.1+, Windows, and ChromeOS. Not yet supported on Linux.
api.Element.touchcancel_event 📋Safari on iOS6/17/20096119
api.Element.touchend_event 📋Safari on iOS6/17/20096119
api.Element.touchmove_event 📋Safari on iOS6/17/20096119
api.Element.touchstart_event 📋Safari on iOS6/17/20096119
api.Element.webkitmouseforcechanged_event Safari9/30/20153823
api.Element.webkitmouseforcedown_event Safari9/30/20153823
api.Element.webkitmouseforceup_event Safari9/30/20153823
api.Element.webkitmouseforcewillbegin_event Safari9/30/20153823
api.Element.wheel_event 📋Safari10/22/20134531
Internet Explorer: The onwheel event handler property is not supported. To listen to this event, use element.addEventListener('wheel', function() {});. See IE bug 782835.
api.Gamepad.vibrationActuator 📋Safari3/27/20231088
api.GamepadHapticActuator 📋Safari3/27/20231088
api.GamepadHapticActuator.canPlayEffectType Safari3/27/20231088
api.GamepadHapticActuator.playEffect 📋Safari3/27/20231088
api.GamepadHapticActuator.reset 📋Safari3/27/20231088
api.GamepadHapticActuator.type Safari3/27/20231088
api.HTMLElement.autocapitalize 📋Safari on iOS3/27/20173279
Chrome: Supported on HTMLInputElement and HTMLTextAreaElement only.Chrome Android: Supported on HTMLInputElement and HTMLTextAreaElement only.Opera: Supported on HTMLInputElement and HTMLTextAreaElement only.Opera Android: Supported on HTMLInputElement and HTMLTextAreaElement only.Safari on iOS: Supported on HTMLFormElement, HTMLInputElement, and HTMLTextAreaElement only.Samsung Internet: Supported on HTMLInputElement and HTMLTextAreaElement only.WebView Android: Supported on HTMLInputElement and HTMLTextAreaElement only.WebView on iOS: Supported on HTMLFormElement, HTMLInputElement, and HTMLTextAreaElement only.
api.HTMLElement.dragexit_event Safari3/18/20086575
api.HTMLInputElement.capture 📋Safari on iOS9/13/20163474
api.HTMLInputElement.showPicker.color_input Safari9/12/20221284
api.HTMLInputElement.showPicker.date_input Safari3/5/2024744
api.HTMLInputElement.showPicker.datetime_local_input Safari3/5/2024744
api.HTMLInputElement.showPicker.time_input Safari9/12/20221284
api.MediaDevices.getDisplayMedia 📋Safari9/19/20192373
Chrome Android: From Chrome Android 72 to 88, this method was exposed, but always failed with NotAllowedError. See bug 40418135.Edge: Available as a member of Navigator instead of MediaDevices.Firefox: Since Firefox 33 you can capture screen data using getUserMedia(), with a video constraint called mediaSource. Before 52 it relied on a client-configurable list of allowed sites.Firefox for Android: From Firefox Android 66 to 79, this method was exposed, but always failed with NotAllowedError.Quest Browser: From Quest Browser 6.0 to 88, this method was exposed, but always failed with NotAllowedError. See bug 40418135.Opera Android: From Opera Android 51 to 88, this method was exposed, but always failed with NotAllowedError. See bug 40418135.Samsung Internet: From Samsung Internet 11.0 to 88, this method was exposed, but always failed with NotAllowedError. See bug 40418135.WebView Android: From WebView Android 72 to 88, this method was exposed, but always failed with NotAllowedError. See bug 40418135.
api.MimeType 📋Safari6/23/20038305
api.MimeType.description 📋Safari6/23/20038305
api.MimeType.enabledPlugin 📋Safari6/23/20038305
api.MimeType.suffixes 📋Safari6/23/20038305
api.MimeType.type 📋Safari6/23/20038305
api.Navigator.contacts 📋Safari on iOS4/26/20211788
Samsung Internet: This API was exposed but failed upon opening a contact selector.
api.Node.selectstart_event 📋Safari4/15/20057643
api.Notification.lang 📋Safari9/19/20173103
api.Notification.show_event 📋Safari10/22/20134531
api.Notification.silent 📋Safari7/24/2023969
api.Notification.title 📋Safari9/19/20173103
api.PerformanceResourceTiming.worker_support Safari9/17/20182740
api.Request.Request.response_body_readablestream Safari on iOS3/27/20173279
api.SVGAnimateColorElement 📋Safari on iOS6/29/20076838
api.ServiceWorkerGlobalScope.notificationclick_event 📋Safari9/12/20221284
Safari: Notifications are supported on macOS Ventura and later.
api.ServiceWorkerGlobalScope.notificationclose_event 📋Safari9/12/20221284
Safari: Notifications are supported on macOS Ventura and later.
api.ServiceWorkerGlobalScope.pushsubscriptionchange_event 📋Safari9/12/20221284
Firefox: The event does not have the oldSubscription and newSubscription properties. See bug 1497429.Firefox for Android: The event does not have the oldSubscription and newSubscription properties. See bug 1497429.Safari: Notifications are supported on macOS Ventura and later.
api.ShadowRoot.pointerLockElement 📋Safari3/27/20173279
api.Touch 📋Safari on iOS6/17/20096119
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.Touch 📋Safari on iOS6/17/20096119
Firefox: This interface is only exposed if a touch input device is detected.
api.Touch.altitudeAngle 📋Safari on iOS9/13/20163474
api.Touch.azimuthAngle 📋Safari on iOS9/13/20163474
api.Touch.clientX 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.clientY 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.force 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.identifier 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.pageX 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.pageY 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.radiusX 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.radiusY 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.rotationAngle 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.screenX 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.screenY 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.target 📋Safari on iOS9/13/20163474
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.Touch.touchType 📋Safari on iOS9/13/20163474
api.TouchEvent 📋Safari on iOS4/3/20105829
Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchEvent.TouchEvent 📋Safari on iOS4/3/20105829
Chrome: Chrome only supports the following touchEventInit properties: touches, targetTouches, changedTouches.Chrome Android: Chrome Android only supports the following touchEventInit properties: touches, targetTouches, changedTouches.Edge: Edge only supports the following touchEventInit properties: touches, targetTouches, changedTouches.Quest Browser: Quest Browser only supports the following touchEventInit properties: touches, targetTouches, changedTouches.Opera: Opera only supports the following touchEventInit properties: touches, targetTouches, changedTouches.Opera Android: Opera Android only supports the following touchEventInit properties: touches, targetTouches, changedTouches.Samsung Internet: Samsung Internet only supports the following touchEventInit properties: touches, targetTouches, changedTouches.WebView Android: WebView Android only supports the following touchEventInit properties: touches, targetTouches, changedTouches.
api.TouchEvent.altKey 📋Safari on iOS4/3/20105829
Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchEvent.changedTouches 📋Safari on iOS4/3/20105829
Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchEvent.ctrlKey 📋Safari on iOS4/3/20105829
Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchEvent.metaKey 📋Safari on iOS4/3/20105829
Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchEvent.shiftKey 📋Safari on iOS4/3/20105829
Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchEvent.targetTouches 📋Safari on iOS4/3/20105829
Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchEvent.touches 📋Safari on iOS4/3/20105829
Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchList 📋Safari on iOS7/11/20086460
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchList.item 📋Safari on iOS7/11/20086460
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.TouchList.length 📋Safari on iOS7/11/20086460
Firefox: This interface is only exposed if a touch input device is detected.Firefox: Removed in bug 888304 due to web compatibility issues.
api.WEBGL_compressed_texture_s3tc 📋Safari10/16/20144172
api.WheelEvent.pinch_to_zoom_support Safari9/20/20211641
api.Window.beforeunload_event 📋Safari10/26/20076719
api.Window.beforeunload_event.event_returnvalue_activation Safari10/16/20144172
Chrome: Before Chrome 119, an empty string incorrectly activated the confirmation dialog.Chrome Android: Before Chrome Android 119, an empty string incorrectly activated the confirmation dialog.Edge: Before Edge 119, an empty string incorrectly activated the confirmation dialog.Quest Browser: Before Quest Browser false, an empty string incorrectly activated the confirmation dialog.Opera: Before Opera 105, an empty string incorrectly activated the confirmation dialog.Opera Android: Before Opera Android 79, an empty string incorrectly activated the confirmation dialog.Samsung Internet: Before Samsung Internet 25.0, an empty string incorrectly activated the confirmation dialog.WebView Android: Before WebView Android 119, an empty string incorrectly activated the confirmation dialog.
api.Window.beforeunload_event.generic_string_displayed Safari3/21/20163650
api.Window.beforeunload_event.preventdefault_activation Safari9/19/20173103
api.Window.beforeunload_event.return_string_activation Safari10/26/20076719
api.Window.orientation 📋Safari on iOS6/17/20096119
api.Window.orientationchange_event 📋Safari on iOS6/17/20096119
api.fetch.init_referrerPolicy_parameter Safari4/12/20182898