MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a static numeric constant: the minimum force for a force click on supporting WebKit browsers. Learn how to read it safely, why it is not on event instances, how it pairs with webkitForce, and five try-it labs.
01
Kind
Static property
02
Returns
Number (when present)
03
Status
Non-standard
04
Engine
WebKit / Safari
05
Means
Force-click threshold
06
Access
On MouseEvent
Fundamentals
Introduction
Some Apple trackpads support Force Touch: pressing harder can mean a different action than a normal click. WebKit exposed helpers on MouseEvent so pages could read press force and compare it to fixed thresholds.
WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is one of those thresholds—the minimum force for a force click. Because it is static, you always write:
JavaScript
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN
💡
Beginner tip
Think of it like Math.PI: a constant on the constructor, not on every number or every event object.
Concept
Understanding the Static Property
MDN: a proprietary, WebKit-specific, static numeric property whose value is the minimum force necessary for a force click.
Static — read from MouseEvent, not from event.
Number — a force threshold (when the property exists).
Non-standard — not in any official web specification.
Force Touch family — related to webkitForce and WEBKIT_FORCE_AT_MOUSE_DOWN.
A number representing the force-click threshold on supporting engines. If the property is missing, feature detection should treat it as unavailable.
Correct vs incorrect access
JavaScript
// Correct — static on MouseEvent
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN;
// Incorrect — not an instance property
someMouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN; // usually undefined
Typical check on Safari with Force Touch: if event.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, treat it as a force click (after confirming both APIs exist).
on constructor: false
on instance: undefined
hasOwn on instance: false
How It Works
Even when the static exists on Safari, instances still should not be your lookup path. Teach beginners: static → constructor; live force → event.webkitForce.
Example 5 — Compare webkitForce to the Threshold
Pattern for a Force Touch handler (runs only where APIs exist).
JavaScript
function isForceClick(event) {
if (
!("WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN" in MouseEvent) ||
typeof event.webkitForce !== "number"
) {
return false;
}
return event.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN;
}
// Demo with a synthetic event (webkitForce usually absent):
const fake = new MouseEvent("mousedown");
console.log(isForceClick(fake)); // false on most browsers
document.addEventListener("mousedown", (e) => {
if (isForceClick(e)) {
console.log("force click");
}
});
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a Non-standard WebKit proprietary static. Logos use the shared browser-image-sprite.png sprite. Expect support mainly in Safari/WebKit Force Touch contexts; Chromium and Firefox typically omit it.
✓ Non-standard · WebKit
WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN
Force-click threshold constant. Feature-detect; do not require it for Chrome/Firefox users.
LimitedWebKit-oriented
Google ChromeTypically not available
No support
Mozilla FirefoxTypically not available
No support
Apple SafariWebKit Force Touch builds may expose it
Limited
Microsoft EdgeTypically not available (Chromium)
No support
OperaTypically not available
No support
Internet ExplorerNot available
No support
WEBKIT_FORCE_AT_FORCE_MOUSE_DOWNLimited
Bottom line: Static Force Touch threshold on MouseEvent in WebKit; missing elsewhere.
Wrap Up
Conclusion
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a WebKit-only static number: the force-click cutoff. Read it from MouseEvent, detect support first, and compare against event.webkitForce only in experimental Safari scenarios.
Provide non-Force-Touch fallbacks for other browsers
Prefer standard Pointer Events pressure when possible
❌ Don’t
Ship production UX that requires this constant
Read it from a MouseEvent instance
Assume Chrome or Firefox expose WebKit Force Touch statics
Skip detection and throw when the property is missing
Confuse normal vs force thresholds
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about this static
WebKit force-click threshold—detect before you use it.
5
Core concepts
⚠️01
Non-standard
WebKit only
Status
🔢02
Static
on MouseEvent
Kind
📈03
Number
force threshold
Value
👆04
Pair with
webkitForce
Use
🛡️05
Detect first
fallback always
Safety
❓ Frequently Asked Questions
It is a proprietary WebKit static numeric property on MouseEvent. Its value is the minimum force needed for a force click (Force Touch). Always read it as MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, not on an event instance.
MDN marks it Non-standard — not part of any web specification. It is not labeled Deprecated or Experimental on that MDN page, but non-standard APIs should not be relied on in production cross-browser code.
Because it is a static property of the MouseEvent constructor/interface. Instance events do not carry this constant; reading event.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is typically undefined.
MouseEvent.webkitForce (also WebKit) reports the current force on a mouse event. Compare that value to WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN to detect a force click threshold on supporting Safari/WebKit builds.
That related static constant is the minimum force for a normal mouse down (lighter threshold). Force-click uses the higher WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN value.
Only behind feature detection for Safari/WebKit Force Touch experiments. Prefer Pointer Events force/pressure where available for broader, more standard approaches.
Did you know?
MDN groups this constant with Force Touch events and notes it is not part of any specification—Apple documented it historically in Mac developer materials. That is why production apps should treat it as optional spice, not a required ingredient.