Device orientation eventsBaseline · Widely available
The DeviceMotion and DeviceOrientation events report the movement and orientation of the browser's device in physical space. Note that coordinates can differ noticeably between platforms and devices.
Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Sep 18, 2023. Widely available since Mar 18, 2026.
Browser support
DesktopChrome
1–30Not supported
31+Supportedsince Nov 12, 2013
Current: 155Edge
12+Supportedsince Jul 29, 2015
Current: 154Firefox
1–5Not supported
6+Supportedsince Aug 16, 2011
Current: 157Safari
1–16.6Not supported
17+Supportedsince Sep 18, 2023
Current: 27MobileChrome Android
18–30Not supported
31+Supportedsince Nov 14, 2013
Current: 155Firefox Android
4–5Not supported
6+Supportedsince Aug 16, 2011
Current: 157Safari iOS
1–4Not supported
4.2+Supportedsince Nov 22, 2010
Current: 27How to use
This feature is Baseline widely available — use it freely, no fallback needed.
Example
Full syntax and examples are on MDN: DeviceMotionEvent.
Feature detection
JS · check before using
if ("DeviceOrientationEvent" in globalThis) {
// DeviceOrientationEvent is available
} else {
// load a polyfill or use a fallback
}Sub-features
Support for each part of the feature (25). The overall table above shows when the whole feature works.
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| DeviceMotionEvent | 31 | 12 | 6 | 17 | 31 | 6 | 4.2 |
| DeviceMotionEvent.DeviceMotionEvent | 59 | 14 | 29 | ✕ | 59 | 29 | ✕ |
| DeviceMotionEvent.acceleration | 31 | 12 | 6 | 17 | 31 | 6 | 4.2 |
| DeviceMotionEvent.accelerationIncludingGravity | 31 | 12 | 6 | 17 | 31 | 6 | 4.2 |
| DeviceMotionEvent.interval | 31 | 12 | 6 | 17 | 31 | 6 | 4.2 |
| DeviceMotionEvent.requestPermission_static | 152 | 152 | ✕ | ✕ | 152 | ✕ | 14.5 |
| DeviceMotionEvent.rotationRate | 31 | 12 | 6 | 17 | 31 | 6 | 4.2 |
| DeviceMotionEventAcceleration | 31 | 12 | 6 | ✕ | 31 | 6 | 4.2 |
| DeviceMotionEventAcceleration.x | 31 | 12 | 6 | ✕ | 31 | 6 | 4.2 |
| DeviceMotionEventAcceleration.y | 31 | 12 | 6 | ✕ | 31 | 6 | 4.2 |
| DeviceMotionEventAcceleration.z | 31 | 12 | 6 | ✕ | 31 | 6 | 4.2 |
| DeviceMotionEventRotationRate | 31 | 12 | 6 | ✕ | 31 | 6 | 4.2 |
| DeviceMotionEventRotationRate.alpha | 31 | 12 | 6 | ✕ | 31 | 6 | 4.2 |
| DeviceMotionEventRotationRate.beta | 31 | 12 | 6 | ✕ | 31 | 6 | 4.2 |
| DeviceMotionEventRotationRate.gamma | 31 | 12 | 6 | ✕ | 31 | 6 | 4.2 |
| DeviceOrientationEvent | 7 | 12 | 6 | 17 | 18 | 6 | 4.2 |
| DeviceOrientationEvent.DeviceOrientationEvent | 59 | 14 | 17 | ✕ | 59 | 17 | ✕ |
| DeviceOrientationEvent.absolute | 7 | 12 | 6 | 17 | 18 | 6 | ✕ |
| DeviceOrientationEvent.alpha | 7 | 12 | 6 | 17 | 18 | 6 | 4.2 |
| DeviceOrientationEvent.beta | 7 | 12 | 6 | 17 | 18 | 6 | 4.2 |
Show 5 more
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| DeviceOrientationEvent.gamma | 7 | 12 | 6 | 17 | 18 | 6 | 4.2 |
| DeviceOrientationEvent.requestPermission_static | 152 | 152 | ✕ | ✕ | 152 | ✕ | 14.5 |
| Window.devicemotion_event | 31 | 12 | 6 | 17 | 31 | 6 | 4.2 |
| Window.deviceorientation_event | 7 | 12 | 6 | 17 | 18 | 6 | 4.2 |
| Window.deviceorientationabsolute_event | 50 | 79 | 110 | ✕ | 50 | 110 | ✕ |