Vibration API works in Chrome 30+, Edge 79+, Opera 17+, Samsung Internet, and Android Browser 4.4+. Safari, iOS, and Firefox 129+ do not support it.

Prince Dewani
May 2, 2026
The Vibration API is a W3C JavaScript API that lets a web page request the device's vibration motor through the navigator.vibrate() method. It works in Chrome 30+, Edge 79+, Opera 17+, Samsung Internet 4+, Opera Mobile 80+, and Android Browser 4.4+, while Firefox 129 and later removed support and Safari on macOS and iOS never added it.
This guide covers what the Vibration API is, the browsers that support it, how it works, its use cases, how to check support, and known issues.
The Vibration API is a JavaScript API that lets a web page trigger a device's vibration motor through navigator.vibrate(). The W3C Devices and Sensors Working Group edits the spec. The method accepts a single duration in milliseconds or an array that alternates vibrate and pause durations.
Chrome, Edge, Opera, Samsung Internet, and Android Browser support navigator.vibrate, while Safari, Safari on iOS, Internet Explorer, and Firefox 129 onward do not, so global browser support sits at about 77% as of May 2026.
Chrome supports the Vibration API from Chrome 30 on Windows, macOS, Linux, ChromeOS, and Android. Desktop Chrome calls return true but do nothing because laptops and desktops lack vibration hardware. Chrome on Android phones and tablets actually triggers the motor, and the call requires at least one prior click or tap on the page.
Microsoft Edge supports the Vibration API from Edge 79 on Windows, macOS, Linux, and Android, when Edge moved to the Chromium engine. The pre-Chromium EdgeHTML versions 12 to 18 did not expose navigator.vibrate. Edge desktop returns true on calls but cannot vibrate without hardware, so the API only feels real on Edge for Android.
Firefox supported the Vibration API from Firefox 11 on Android and from Firefox 16 on desktop. Firefox 129 removed navigator.vibrate on every platform after Mozilla concluded that the desktop implementation was a permanent no-op and the Android one had open bugs. Firefox 129 and later return undefined when a page reads navigator.vibrate.
Safari does not support the Vibration API on macOS, iPadOS, or iOS in any version. Apple WebKit has not shipped navigator.vibrate, and there is no flag in Safari Technology Preview that turns it on. Every browser on iPhone and iPad uses WebKit, so Chrome on iOS and Firefox on iOS also lack the API.
Opera supports the Vibration API from Opera 17 on Windows, macOS, and Linux, after the engine switch from Presto to Chromium. Opera 9 to 16 used Presto and never shipped navigator.vibrate. Opera Mobile supports it from Opera Mobile 80 on Android. Opera Mini does not support the Vibration API in any version.
Samsung Internet supports the Vibration API in every shipped version, starting from Samsung Internet 4. Galaxy phones and tablets call the device motor through the Android haptics service. The API is on by default, with no flag toggle inside Samsung Internet settings, and Samsung Internet honors the system silent and do-not-disturb modes.
The legacy Android Browser supports the Vibration API from Android 4.4 KitKat on. Android 2.1 to 4.3 did not support navigator.vibrate. Modern Android phones use Chrome or Samsung Internet as the default, but the Android WebView control inherits Chromium support and exposes the API to embedded apps and TWA wrappers.
Internet Explorer does not support the Vibration API in any version. Microsoft has retired Internet Explorer, and the Trident and EdgeHTML engines never implemented navigator.vibrate. Move any vibration-dependent code to Chromium-based Edge or Chrome for Windows tablet and 2-in-1 use cases.
Note: Vibration API support breaks across Safari, iOS, and Firefox 129+, and desktop calls do nothing without hardware. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
The Vibration API exposes a single method, navigator.vibrate(pattern), that takes either one duration in milliseconds or an array of alternating vibrate and pause durations. The browser passes the pattern to the operating system, which drives the device's motor through the platform haptics service.
The Vibration API powers haptic feedback on mobile web apps when shipping a native app would feel like overkill. The patterns the SERP and PWA guides cover are interaction feedback, gaming, accessibility, and notifications.
Feature-detect navigator.vibrate before calling it. The check is one line and works in every browser, including those that never shipped the API and Firefox 129+ where the method was removed.
"vibrate" in navigator returns true on supported browsers and false on Safari, iOS Safari, and Firefox 129+.Paste this snippet into the DevTools console of Chrome, Edge, or Samsung Internet on an Android device. Click anywhere on the page once, and the motor buzzes the 200-100-200 pattern.
// Paste this into a browser DevTools console to feature-detect and trigger
// a vibration pattern from the next click anywhere on the page.
if ("vibrate" in navigator) {
console.log("Vibration API is supported.");
document.body.addEventListener("click", () => {
const accepted = navigator.vibrate([200, 100, 200]);
console.log("Vibration request accepted:", accepted);
}, { once: true });
} else {
console.log("Vibration API is not supported in this browser.");
}If the console prints "Vibration API is not supported in this browser", the runtime is Safari, an iOS browser, or Firefox 129 or later. Fall back to a no-op or a native wrapper for those visitors.
The Vibration API has the rockiest browser footprint of any common device API. Plan for missing iOS support, Firefox removal, silent desktop calls, and the user-gesture rule.
In my experience, the most surprising failure is Firefox 129. Pages that worked fine on Firefox 128 fall back to a missing-method check on Firefox 129, so a UA-version sniff returns true while the API silently disappears. Use a hard "vibrate" in navigator feature test on every render, and never assume Firefox still has the method just because earlier versions did.
All Vibration API version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance