MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN is a static numeric constant: the minimum force for a normal click on supporting WebKit browsers. Learn how to read it safely, how it differs from the force-click threshold, 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
Normal-click threshold
06
Access
On MouseEvent
Fundamentals
Introduction
WebKit’s Force Touch helpers expose two static cutoffs on MouseEvent. The lighter one—WEBKIT_FORCE_AT_MOUSE_DOWN—is the minimum force treated as a normal click. The heavier constant is for a force click.
Because this value is static, you always write:
JavaScript
MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN
💡
Beginner tip
Think of two stair steps: a soft press reaches the normal-click step; a harder press reaches the force-click step (WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN).
Concept
Understanding the Static Property
MDN: a proprietary, WebKit-specific, static numeric property whose value is the minimum force necessary for a normal 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_FORCE_MOUSE_DOWN.
A number representing the normal-click force 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_MOUSE_DOWN;
// Incorrect — not an instance property
someMouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN; // usually undefined
Typical check on Safari with Force Touch: if event.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN, the press meets the normal-click force band (after confirming the APIs exist). A still-higher force may cross the force-click constant.
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 normal-click force check (runs only where APIs exist).
JavaScript
function meetsNormalClickForce(event) {
if (
!("WEBKIT_FORCE_AT_MOUSE_DOWN" in MouseEvent) ||
typeof event.webkitForce !== "number"
) {
return false;
}
return event.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN;
}
// Demo with a synthetic event (webkitForce usually absent):
const fake = new MouseEvent("mousedown");
console.log(meetsNormalClickForce(fake)); // false on most browsers
document.addEventListener("mousedown", (e) => {
if (meetsNormalClickForce(e)) {
console.log("meets normal-click force");
}
});
MouseEvent.WEBKIT_FORCE_AT_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_MOUSE_DOWN
Normal-click force 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_MOUSE_DOWNLimited
Bottom line: Static Force Touch normal-click threshold on MouseEvent in WebKit; missing elsewhere.
Wrap Up
Conclusion
MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN is a WebKit-only static number: the normal-click force cutoff. Read it from MouseEvent, detect support first, and compare against event.webkitForce only in experimental Safari scenarios.
Compare with the force-click constant when classifying presses
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 normal-click force threshold—detect before you use it.
5
Core concepts
⚠️01
Non-standard
WebKit only
Status
🔢02
Static
on MouseEvent
Kind
📈03
Number
lighter 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 normal click. Always read it as MouseEvent.WEBKIT_FORCE_AT_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.
WEBKIT_FORCE_AT_MOUSE_DOWN is the lighter threshold for a normal click. WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is the higher threshold for a force click. When both exist, the force-click value is typically greater.
Because it is a static property of the MouseEvent constructor/interface. Instance events do not carry this constant; reading event.WEBKIT_FORCE_AT_MOUSE_DOWN is typically undefined.
MouseEvent.webkitForce reports the current force on a mouse event. Compare that value to WEBKIT_FORCE_AT_MOUSE_DOWN to see if the press meets a normal-click force threshold on supporting Safari/WebKit builds.
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. Together with the force-click constant, it forms a two-step ladder for classifying press strength on supporting trackpads.