JavaScript Element webkitmouseforcewillbegin Event
Beginner
⏱️ 11 min read
📚 Updated: Jul 2026
🎯 5 Examples
🚀 5 Try-it labs
Non-standard
Instance event
Overview
What You’ll Learn
The webkitmouseforcewillbegin event fires before the initial mousedown in Safari for macOS. Learn why preventDefault() matters, how it fits the Force Touch family, onwebkitmouseforcewillbegin, portable alternatives, and five try-it labs.
01
Kind
Instance event
02
Type
MouseEvent
03
When
Before mousedown
04
Handler
onwebkitmouseforcewillbegin
05
Key API
preventDefault()
06
Status
Non-standard
Fundamentals
Introduction
On Safari for macOS with Force Touch, the earliest Force Touch-related signal is often webkitmouseforcewillbegin—it fires beforemousedown. That early timing lets your page opt out of macOS default Force Touch behaviors (lookup, peek, and similar system actions) if the press becomes a force click.
If you only need a custom force-click UI and do not want Safari’s system Force Touch UI, listen for webkitmouseforcewillbegin and call preventDefault() there—before mousedown arrives.
Concept
Understanding webkitmouseforcewillbegin
An instance event that answers: “A Force Touch-capable press is about to start—do you want to keep system Force Touch defaults?”
Timing — before the initial mousedown (Safari macOS).
Main job — preventDefault() to suppress default Force Touch actions.
MouseEvent — includes non-standard webkitForce.
Non-standard — Safari / WebKit proprietary; not Baseline.
Foundation
📝 Syntax
Use the event name with addEventListener, or set the handler property:
preventDefault() on willbegin — custom Force Touch UI only
How It Works
Calling preventDefault() early tells macOS not to run its own Force Touch UI if pressure later reaches a force click—so your page can own the interaction.
Example 5 — Event Order + Pointer Fallback
Log willbegin → mousedown when available; otherwise use pointerdown.
webkitmouseforcewillbegin is marked Non-standard on MDN. Logos use the shared browser-image-sprite.png sprite from this project. Expect Safari on macOS Force Touch hardware only—always ship a Pointer Events press path.
✓ Non-standard
Element webkitmouseforcewillbegin
Proprietary WebKit Force Touch pre-mousedown signal; use preventDefault() to suppress system Force Touch defaults.
SafariNot standardized
Google ChromeNo Force Touch events; use pointerdown
No
Mozilla FirefoxNo Force Touch events; use pointerdown
No
Apple SafarimacOS Force Touch (before mousedown)
WebKit
Microsoft EdgeNo Force Touch events; use pointerdown
No
OperaNo Force Touch events; use pointerdown
No
Internet ExplorerNo
No
webkitmouseforcewillbeginNon-standard
Bottom line: Use willbegin only as an optional Safari enhancement (especially preventDefault). Prefer pointerdown for portable press start.
Wrap Up
Conclusion
webkitmouseforcewillbegin is Safari’s earliest Force Touch hook—before mousedown—mainly so you can preventDefault() system Force Touch actions and own the interaction yourself.
Feature-detect before attaching Force Touch listeners
Call preventDefault() when you own force-click UI
Still handle forcedown / forceup for custom behavior
Keep Force Touch as an optional Safari enhancement
Test on real Force Touch Mac hardware when shipping Safari extras
❌ Don’t
Require webkitmouseforcewillbegin for core product features
Assume Chromium/Firefox will ever fire these events
Forget that this fires beforemousedown
Suppress system defaults unless you replace them with your own UX
Skip a portable pointerdown path for other browsers
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about webkitmouseforcewillbegin
Before mousedown—opt out of system Force Touch if you need to.
5
Core concepts
🚀01
Before down
earliest hook
Event
🚫02
preventDefault
block system FT
API
🖱03
MouseEvent
webkitForce
Type
📱04
Prefer
pointerdown
Portable
🚫05
Non-standard
Safari only
Status
❓ Frequently Asked Questions
Safari for macOS fires webkitmouseforcewillbegin on an element before the initial mousedown. Its main use is calling preventDefault() so the system does not run default Force Touch actions if the press becomes a force click.
MDN marks Element webkitmouseforcewillbegin as Non-standard only — not Deprecated and not Experimental. It is not part of any web specification. Prefer portable APIs for production.
A MouseEvent (inherits from UIEvent / Event). It also exposes the non-standard MouseEvent.webkitForce property.
Use element.addEventListener("webkitmouseforcewillbegin", handler), or set onwebkitmouseforcewillbegin where supported. Always feature-detect first.
MDN: calling preventDefault() on webkitmouseforcewillbegin tells macOS not to engage default Force Touch actions if the user applies enough pressure for a Force Touch event — useful when your page handles force clicks itself.
It fires before the initial mousedown. Then you may see webkitmouseforcechanged, webkitmouseforcedown, webkitmouseforceup, and finally mouseup.
Did you know?
Among Apple’s Force Touch events, webkitmouseforcewillbegin is the one designed to be default-preventable so web pages can take over Force Touch instead of competing with macOS lookup/peek UI.