You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pointerup is defined to be when a {finger,stylus} loses contact with the screen or when mouse buttons are no longer being pushed. Therefore, I'd expect the pressure value of every pointerup event to be 0. Moreover, the spec requires pressure to be 0 if the hardware doesn't support it and no buttons are active (that is, the pointer is up).
Maddeningly, its actual value is different across implementations. Here's the current breakdown:
Platform
Browser
Pointer
pointerup pressure is 0
pointerup pressure is whatever the last pointermove recorded
Android
Chrome
touch
☑️
iOS
Safari via PEP
touch
☑️
Mac
Chrome
trackpad
☑️
Mac
Chrome
Wacom stylus
☑️
Mac
Chrome
Wacom touch
☑️ (always 1, spec says it should be .5)
Mac
Firefox
trackpad
☑️
Mac
Firefox
Wacom stylus
☑️
Mac
Firefox
Wacom touch
☑️
Mac
Safari via PEP
trackpad
☑️
Mac
Safari via PEP
Wacom stylus
☑️
Mac
Safari via PEP
Wacom touch
☑️
ChromeOS
Chrome
touch
☑️
ChromeOS
Chrome
trackpad
☑️
Windows
Chrome or Edge
touch
☑️
Windows
Chrome or Edge
trackpad
☑️
Windows
Chrome or Edge
stylus
☑️
Windows
Firefox
touch
☑️
Windows
Firefox
trackpad
☑️
Windows
Firefox
stylus
☑️
And here's the test. If the background turns green on pointerup, pressure is 0. If it turns red, pressure is using a stale value from pointermove.
tl;dr:
Firefox always sets pressure to 0 in pointerup.
The other desktop browsers use 0 for stylus and trackpad, but the last pointermove value for touch.
iOS and Android both use the last pressure value from pointermove.
Can we please explicitly declare in the spec that pressure should be 0 in every pointerup? This would be consistent with the currently specified behavior for pointers that don't granularly report pressure.