For a given set of browsers, what APIs are not yet in all of them.
| Not in Safari | Not in Safari on iOS | |
|---|---|---|
| In Safari | 53 | |
| In Safari on iOS | 58 |
Below is a list of features that are not in all of Safari and Safari on iOS
| API | First Browser | Date | Days in Limbo | Notes |
|---|---|---|---|---|
| api.ContactsManager 📋 | Safari on iOS | 4/26/2021 | 1788 | Samsung Internet: This API was exposed but failed upon opening a contact selector. |
| api.ContactsManager.getProperties 📋 | Safari on iOS | 4/26/2021 | 1788 | Samsung Internet: This API was exposed but failed upon opening a contact selector. |
| api.ContactsManager.select 📋 | Safari on iOS | 4/26/2021 | 1788 | Samsung Internet: This API was exposed but failed upon opening a contact selector. |
| api.DeviceMotionEvent.requestPermission_static 📋 | Safari on iOS | 4/26/2021 | 1788 | |
| api.DeviceMotionEventAcceleration 📋 | Safari on iOS | 11/22/2010 | 5596 | 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 iOS | 11/22/2010 | 5596 | |
| api.DeviceMotionEventAcceleration.y 📋 | Safari on iOS | 11/22/2010 | 5596 | |
| api.DeviceMotionEventAcceleration.z 📋 | Safari on iOS | 11/22/2010 | 5596 | |
| api.DeviceMotionEventRotationRate 📋 | Safari on iOS | 11/22/2010 | 5596 | |
| api.DeviceMotionEventRotationRate.alpha 📋 | Safari on iOS | 11/22/2010 | 5596 | |
| api.DeviceMotionEventRotationRate.beta 📋 | Safari on iOS | 11/22/2010 | 5596 | |
| api.DeviceMotionEventRotationRate.gamma 📋 | Safari on iOS | 11/22/2010 | 5596 | |
| api.DeviceOrientationEvent.absolute 📋 | Safari | 9/18/2023 | 913 | |
| api.DeviceOrientationEvent.requestPermission_static 📋 | Safari on iOS | 4/26/2021 | 1788 | |
| api.Document.createTouch | Safari on iOS | 6/17/2009 | 6119 | 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 iOS | 6/17/2009 | 6119 | |
| api.Document.exitPointerLock 📋 | Safari | 3/27/2017 | 3279 | |
| api.Document.pointerLockElement 📋 | Safari | 3/27/2017 | 3279 | |
| api.Document.pointerlockchange_event 📋 | Safari | 3/27/2017 | 3279 | |
| api.Document.pointerlockerror_event 📋 | Safari | 3/27/2017 | 3279 | |
| api.EXT_float_blend 📋 | Safari | 4/26/2021 | 1788 | 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 📋 | Safari | 9/12/2022 | 1284 | Chrome: Only supported on macOS.Edge: Only supported on macOS.Opera: Only supported on macOS. |
| api.EXT_texture_compression_rgtc 📋 | Safari | 4/26/2021 | 1788 | Chrome: Only supported on macOS.Edge: Only supported on macOS.Firefox: Only supported on macOS.Opera: Only supported on macOS. |
| api.Element.contextmenu_event 📋 | Safari | 10/26/2007 | 6719 | |
| api.Element.contextmenu_event.type_pointerevent | Safari | 12/11/2024 | 463 | |
| api.Element.gesturechange_event | Safari on iOS | 7/11/2008 | 6460 | |
| api.Element.gestureend_event | Safari on iOS | 7/11/2008 | 6460 | |
| api.Element.gesturestart_event | Safari on iOS | 7/11/2008 | 6460 | |
| api.Element.requestFullscreen.options_navigationUI_parameter 📋 | Safari | 3/27/2023 | 1088 | |
| api.Element.requestPointerLock 📋 | Safari | 3/27/2017 | 3279 | 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 📋 | Safari | 3/31/2025 | 353 | 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 iOS | 6/17/2009 | 6119 | |
| api.Element.touchend_event 📋 | Safari on iOS | 6/17/2009 | 6119 | |
| api.Element.touchmove_event 📋 | Safari on iOS | 6/17/2009 | 6119 | |
| api.Element.touchstart_event 📋 | Safari on iOS | 6/17/2009 | 6119 | |
| api.Element.webkitmouseforcechanged_event | Safari | 9/30/2015 | 3823 | |
| api.Element.webkitmouseforcedown_event | Safari | 9/30/2015 | 3823 | |
| api.Element.webkitmouseforceup_event | Safari | 9/30/2015 | 3823 | |
| api.Element.webkitmouseforcewillbegin_event | Safari | 9/30/2015 | 3823 | |
| api.Element.wheel_event 📋 | Safari | 10/22/2013 | 4531 | 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 📋 | Safari | 3/27/2023 | 1088 | |
| api.GamepadHapticActuator 📋 | Safari | 3/27/2023 | 1088 | |
| api.GamepadHapticActuator.canPlayEffectType | Safari | 3/27/2023 | 1088 | |
| api.GamepadHapticActuator.playEffect 📋 | Safari | 3/27/2023 | 1088 | |
| api.GamepadHapticActuator.reset 📋 | Safari | 3/27/2023 | 1088 | |
| api.GamepadHapticActuator.type | Safari | 3/27/2023 | 1088 | |
| api.HTMLElement.autocapitalize 📋 | Safari on iOS | 3/27/2017 | 3279 | 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 | Safari | 3/18/2008 | 6575 | |
| api.HTMLInputElement.capture 📋 | Safari on iOS | 9/13/2016 | 3474 | |
| api.HTMLInputElement.showPicker.color_input | Safari | 9/12/2022 | 1284 | |
| api.HTMLInputElement.showPicker.date_input | Safari | 3/5/2024 | 744 | |
| api.HTMLInputElement.showPicker.datetime_local_input | Safari | 3/5/2024 | 744 | |
| api.HTMLInputElement.showPicker.time_input | Safari | 9/12/2022 | 1284 | |
| api.MediaDevices.getDisplayMedia 📋 | Safari | 9/19/2019 | 2373 | 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 📋 | Safari | 6/23/2003 | 8305 | |
| api.MimeType.description 📋 | Safari | 6/23/2003 | 8305 | |
| api.MimeType.enabledPlugin 📋 | Safari | 6/23/2003 | 8305 | |
| api.MimeType.suffixes 📋 | Safari | 6/23/2003 | 8305 | |
| api.MimeType.type 📋 | Safari | 6/23/2003 | 8305 | |
| api.Navigator.contacts 📋 | Safari on iOS | 4/26/2021 | 1788 | Samsung Internet: This API was exposed but failed upon opening a contact selector. |
| api.Node.selectstart_event 📋 | Safari | 4/15/2005 | 7643 | |
| api.Notification.lang 📋 | Safari | 9/19/2017 | 3103 | |
| api.Notification.show_event 📋 | Safari | 10/22/2013 | 4531 | |
| api.Notification.silent 📋 | Safari | 7/24/2023 | 969 | |
| api.Notification.title 📋 | Safari | 9/19/2017 | 3103 | |
| api.PerformanceResourceTiming.worker_support | Safari | 9/17/2018 | 2740 | |
| api.Request.Request.response_body_readablestream | Safari on iOS | 3/27/2017 | 3279 | |
| api.SVGAnimateColorElement 📋 | Safari on iOS | 6/29/2007 | 6838 | |
| api.ServiceWorkerGlobalScope.notificationclick_event 📋 | Safari | 9/12/2022 | 1284 | Safari: Notifications are supported on macOS Ventura and later. |
| api.ServiceWorkerGlobalScope.notificationclose_event 📋 | Safari | 9/12/2022 | 1284 | Safari: Notifications are supported on macOS Ventura and later. |
| api.ServiceWorkerGlobalScope.pushsubscriptionchange_event 📋 | Safari | 9/12/2022 | 1284 | 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 📋 | Safari | 3/27/2017 | 3279 | |
| api.Touch 📋 | Safari on iOS | 6/17/2009 | 6119 | 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 iOS | 6/17/2009 | 6119 | Firefox: This interface is only exposed if a touch input device is detected. |
| api.Touch.altitudeAngle 📋 | Safari on iOS | 9/13/2016 | 3474 | |
| api.Touch.azimuthAngle 📋 | Safari on iOS | 9/13/2016 | 3474 | |
| api.Touch.clientX 📋 | Safari on iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | 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 iOS | 9/13/2016 | 3474 | |
| api.TouchEvent 📋 | Safari on iOS | 4/3/2010 | 5829 | Firefox: Removed in bug 888304 due to web compatibility issues. |
| api.TouchEvent.TouchEvent 📋 | Safari on iOS | 4/3/2010 | 5829 | 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 iOS | 4/3/2010 | 5829 | Firefox: Removed in bug 888304 due to web compatibility issues. |
| api.TouchEvent.changedTouches 📋 | Safari on iOS | 4/3/2010 | 5829 | Firefox: Removed in bug 888304 due to web compatibility issues. |
| api.TouchEvent.ctrlKey 📋 | Safari on iOS | 4/3/2010 | 5829 | Firefox: Removed in bug 888304 due to web compatibility issues. |
| api.TouchEvent.metaKey 📋 | Safari on iOS | 4/3/2010 | 5829 | Firefox: Removed in bug 888304 due to web compatibility issues. |
| api.TouchEvent.shiftKey 📋 | Safari on iOS | 4/3/2010 | 5829 | Firefox: Removed in bug 888304 due to web compatibility issues. |
| api.TouchEvent.targetTouches 📋 | Safari on iOS | 4/3/2010 | 5829 | Firefox: Removed in bug 888304 due to web compatibility issues. |
| api.TouchEvent.touches 📋 | Safari on iOS | 4/3/2010 | 5829 | Firefox: Removed in bug 888304 due to web compatibility issues. |
| api.TouchList 📋 | Safari on iOS | 7/11/2008 | 6460 | 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 iOS | 7/11/2008 | 6460 | 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 iOS | 7/11/2008 | 6460 | 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 📋 | Safari | 10/16/2014 | 4172 | |
| api.WheelEvent.pinch_to_zoom_support | Safari | 9/20/2021 | 1641 | |
| api.Window.beforeunload_event 📋 | Safari | 10/26/2007 | 6719 | |
| api.Window.beforeunload_event.event_returnvalue_activation | Safari | 10/16/2014 | 4172 | 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 | Safari | 3/21/2016 | 3650 | |
| api.Window.beforeunload_event.preventdefault_activation | Safari | 9/19/2017 | 3103 | |
| api.Window.beforeunload_event.return_string_activation | Safari | 10/26/2007 | 6719 | |
| api.Window.orientation 📋 | Safari on iOS | 6/17/2009 | 6119 | |
| api.Window.orientationchange_event 📋 | Safari on iOS | 6/17/2009 | 6119 | |
| api.fetch.init_referrerPolicy_parameter | Safari | 4/12/2018 | 2898 |