Testing

-webkit-user-drag: Browser Support, Values, Limitations

-webkit-user-drag works in Chrome 4+, Edge 79+, Safari 3.1+, Opera 15+, and Samsung Internet 4+. Firefox and IE never added it. Learn the values and limits.

Author

Prince Dewani

May 6, 2026

-webkit-user-drag is a non-standard WebKit CSS property that controls whether a user can drag an entire HTML element. It works in Chrome 4+, Edge 79+, Safari 3.1+ on macOS, Safari 3.2+ on iOS, Opera 15+, Samsung Internet 4+, and Android Browser 4.4+, while Firefox and Internet Explorer never added support.

This guide covers what -webkit-user-drag is, the browsers that support it, the auto, element, and none values, how it differs from the HTML draggable attribute, and the known issues.

What is -webkit-user-drag?

-webkit-user-drag is a CSS extension that the WebKit team added to control whether the browser treats an HTML element as a drag source. It accepts three values, auto, element, and none, and gives developers a way to override the default drag behavior of links, images, and selected text.

Which browsers does -webkit-user-drag support?

All Chromium and WebKit browsers support -webkit-user-drag. Firefox and Internet Explorer never shipped support, so use the standard HTML draggable attribute as the cross-browser fallback.

Loading browser compatibility data...

-webkit-user-drag compatibility in Chrome

Chrome supports -webkit-user-drag from Chrome 4 on Windows, macOS, Linux, and ChromeOS, and from Chrome 18 on Android. The property is recognized in every later release. Treat support as partial on mobile, since blink-based Chrome for Android reads the property but does not fire a drag operation when you set the element value.

-webkit-user-drag compatibility in Edge

Microsoft Edge supports -webkit-user-drag from Edge 79 on Windows, macOS, and Linux, the first Chromium-based release. Legacy EdgeHTML versions, Edge 12 to 18, did not support the property at all. Internet Explorer 11 in IE Mode also has no support, so target draggable="false" instead for those visitors.

-webkit-user-drag compatibility in Firefox

Firefox does not support -webkit-user-drag on any desktop, ESR, or Android release. Mozilla never added the WebKit prefix, and there is no about:config flag to enable it. Use the standard HTML draggable attribute on Firefox to mark elements as draggable or non-draggable.

-webkit-user-drag compatibility in Safari

Safari supports -webkit-user-drag from Safari 3.1 on macOS and from Safari 3.2 on iPhone and iPad running iOS or iPadOS. Safari is the only browser where every value, including element, behaves the way the WebKit reference describes. Apple Developer documentation lists -webkit-user-drag as a first-class WebKit CSS extension.

-webkit-user-drag compatibility in Opera

Opera supports -webkit-user-drag from Opera 15 on Windows, macOS, and Linux, and from Opera Mobile 80 on Android. Both branches inherit the behavior from Chromium. Opera 9 to 12.1 on the legacy Presto engine did not support the property, and Opera Mobile 10 to 12.1 also lacked support.

-webkit-user-drag compatibility in Samsung Internet

Samsung Internet supports -webkit-user-drag from Samsung Internet 4 on Galaxy phones and tablets. Every later version recognizes the property, but the same Android Chromium quirk applies, since setting -webkit-user-drag: element does not actually start a drag on most devices.

-webkit-user-drag compatibility in Android Browser

Android Browser supports -webkit-user-drag from Android Browser 4.4 on, after the system WebView switched to Chromium. The legacy AOSP browser on Android 2.1 to 4.3 did not recognize the property. Firefox for Android also does not support it, so a Gecko fallback on Android still has to rely on the HTML draggable attribute.

-webkit-user-drag compatibility in Internet Explorer

Internet Explorer does not support -webkit-user-drag on any version, from IE 6 through IE 11. Microsoft has retired Internet Explorer. Use the HTML draggable attribute as the only cross-browser way to mark an element as draggable for any IE-mode user still on Windows.

Note

Note: -webkit-user-drag breaks across Firefox, Internet Explorer, and most mobile browsers. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What are the values of -webkit-user-drag?

-webkit-user-drag accepts three values, auto, element, and none. Each one tells WebKit how to decide whether the user can pick the element up.

  • auto: The default. WebKit applies its built-in rules. Images, links with an href, and selected text are draggable; every other element is not. Most pages never need to set this value explicitly.
  • element: Forces the whole element to become the drag source. Click anywhere inside the element and a drag starts, even on a div, button, or span that the browser would not normally treat as a drag handle. Pair it with cursor: grab so the user can see the affordance.
  • none: Blocks dragging entirely. The element cannot start a drag, even if it is an image, a link, or selected text. Use this to stop users from dragging a logo, an avatar, or a thumbnail off the page.

The snippet below shows the three values applied to common page elements. Paste it into a stylesheet on a Chrome, Edge, Opera, or Safari build and the rules take effect on the next paint.

/* Default behavior: images, links, and selected text are draggable. */
.card {
  -webkit-user-drag: auto;
}

/* Force a drag source on a div, even though a div is not draggable by default. */
.card.is-draggable {
  -webkit-user-drag: element;
  cursor: grab;
}

/* Block the default drag on logos, avatars, and product thumbnails. */
img.brand-logo,
img.user-avatar {
  -webkit-user-drag: none;
}

There is no inherited value: -webkit-user-drag is non-inherited, so a child element will not pick up the setting from its parent unless you target the child directly. The property has no animation type, no shorthand, and no JavaScript getter on the CSSStyleDeclaration interface beyond the standard webkitUserDrag camel-case alias.

How is -webkit-user-drag different from the HTML draggable attribute?

-webkit-user-drag is a WebKit CSS property. The HTML draggable attribute is a standard HTML global attribute defined by the WHATWG HTML Living Standard. Both control whether an element can be dragged, but they differ on cross-browser reach, syntax, and the value set they accept.

Dimension-webkit-user-dragHTML draggable
TypeNon-standard WebKit CSS propertyStandard HTML global attribute
StandardizationNone; not on a standards trackPart of the WHATWG HTML Living Standard
Browser reachChromium and Safari only; no Firefox, no IEEvery modern browser, including Firefox and IE 11
Where you set itIn CSS or inline style attributeOn the HTML element with draggable="true"
Valuesauto, element, nonetrue, false, auto
Default behaviorauto matches WebKit's built-in drag rulesauto matches the HTML drag rules per element type
Best fitSingle-engine apps targeting Safari or a Chromium WebViewProduction apps that need to work everywhere

If you only target Safari or a Chromium WebView, -webkit-user-drag works the same way the HTML attribute does, with one extra value, none, that lets you block the default drag of images and links from CSS alone. For everything else, the HTML draggable attribute is the safer choice.

...

What are the known issues with -webkit-user-drag?

-webkit-user-drag has the smallest cross-browser footprint of any CSS drag control. The painful edge cases land on Firefox, mobile WebKit, and a few open WebKit bugs.

  • Firefox refuses to add it: Firefox never shipped a -webkit-user-drag implementation and has no preference flag to turn it on. Sites that need cross-engine drag control must use the HTML draggable attribute on Firefox.
  • Mobile WebKit and Blink ignore element: Chrome for Android, Samsung Internet, iOS Safari, and most blink-based mobile browsers parse -webkit-user-drag without errors but do not fire a drag operation when you set the value to element. Setting it to none still works to block the default image drag.
  • WebKit Bug 26931: A long-open WebKit bug means -webkit-user-drag: none on an a element with href is sometimes ignored. The fix is to add draggable="false" on the same element as a backup.
  • No standards track: -webkit-user-drag has no W3C, WHATWG, or CSS Working Group draft. There is no unprefixed user-drag property planned, so feature detection cannot rely on a future stable name.
  • Conflicts with -webkit-user-select: Setting -webkit-user-select: none alongside -webkit-user-drag: element can suppress the drag in older WebKit builds. WebKit Bug 208682 tracks the interaction. Test the combination on Safari 14 or older if you have to support it.
  • No effect inside sandboxed iframes: A page in an iframe with the sandbox attribute and no allow-same-origin token cannot start a drag at all, regardless of the -webkit-user-drag value.

In my experience, the cleanest cross-browser pattern is to set both -webkit-user-drag: none and draggable="false" on every image and avatar. Each one alone misses an engine: -webkit-user-drag does nothing on Firefox, and draggable="false" sometimes fails to block the default Safari drag on a link or an image. Combining them costs nothing and removes the ghost-image drag in every browser.

...

Citations

All -webkit-user-drag version numbers and platform notes in this guide come from these primary sources:

Author

Prince Dewani is a Community Contributor at TestMu AI, where he manages content strategies around software testing, QA, and test automation. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI. Prince has also presented academic research at the international conference PBCON-01. He further specializes in on-page SEO, bridging marketing with core testing technologies. On LinkedIn, he is followed by 4,300+ QA engineers, developers, DevOps experts, tech leaders, and AI-focused practitioners in the global testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Frequently asked questions

Did you find this page helpful?

More Related Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests