The pointerrawupdate event delivers high-frequency pointer property updates for precision apps. Learn how it differs from pointermove, getCoalescedEvents(), secure-context rules, performance tips, and five try-it labs.
01
Kind
Instance event
02
Type
PointerEvent
03
When
High-rate property updates
04
Handler
onpointerrawupdate
05
Context
HTTPS (secure)
06
Status
Limited availability
Fundamentals
Introduction
Most UIs only need pointermove. Drawing tools, ink, and precision trackers sometimes need every sample the device produces. pointerrawupdate is that higher-frequency path.
MDN recommends it only when coalesced pointermove events are not smooth enough—and warns that listening can hurt performance. For everyday drag and hover, stick with pointermove.
💡
Beginner tip
This feature needs a secure context (HTTPS or localhost) in supporting browsers. Feature-detect and fall back to pointermove when it is missing (for example in Safari).
Concept
Understanding pointerrawupdate
An instance event that answers: “Did pointer properties change again—possibly faster than a normal pointermove?”
Same property family as move — not pointerdown / pointerup.
High frequency — may fire more often than coalesced moves.
A PointerEvent (inherits from MouseEvent and Event).
Handy properties & methods
Name
Meaning
clientX / clientY
Pointer position in the viewport
pointerId
Unique id for this pointer stream
pointerType
mouse, pen, touch, etc.
pressure
Normalized pressure when available
getCoalescedEvents()
Earlier samples merged into this dispatch
Compare
⚖️ pointerrawupdate vs pointermove
Topic
pointerrawupdate
pointermove
Typical use
High-precision draw / ink
Drag, hover, most UIs
Frequency
Can be higher
Often coalesced / lower
Baseline
Limited availability
Widely available
Secure context
Required (supporting browsers)
Not specially restricted
Cancelable
No
Yes
Performance
⚡ When (Not) to Listen
Prefer pointermove unless you truly need extra samples.
Keep handlers tiny—store points, paint later with requestAnimationFrame.
Remove listeners when the precision mode ends (do not leave them forever).
Always provide a pointermove fallback for browsers without support.
Security
🔒 Secure Context
MDN marks pointerrawupdate as available only in secure contexts (HTTPS / localhost) in supporting browsers. Check window.isSecureContext and feature-detect before relying on the event.
pointerrawupdate is marked Limited availability on MDN (not Baseline). Logos use the shared browser-image-sprite.png sprite from this project. It requires a secure context; Safari generally does not support it—always fall back to pointermove.
✓ Limited availability
Element pointerrawupdate
High-frequency pointer updates for precision apps; HTTPS required; prefer pointermove for most UIs.
PartialNot Baseline
Google ChromeSupported (secure context)
Yes
Mozilla FirefoxSupported (secure context)
Yes
Apple SafariNot supported
No
Microsoft EdgeSupported (secure context)
Yes
OperaSupported (secure context)
Yes
Internet ExplorerNot supported
No
pointerrawupdateLimited
Bottom line: Use Chromium / Firefox over HTTPS for raw updates. Keep pointermove as the default path everywhere else.
Wrap Up
Conclusion
pointerrawupdate is a specialized high-frequency pointer stream for precision input. Prefer pointermove unless you need those extra samples—and always feature-detect with a secure-context check.
Use getCoalescedEvents() when replaying every sample
Keep handlers cheap; paint with requestAnimationFrame
Remove raw listeners when precision mode ends
❌ Don’t
Attach raw listeners site-wide “just in case”
Assume Safari support
Do heavy DOM work on every raw update
Ignore HTTPS requirements
Overwrite onpointerrawupdate if you need multiple listeners
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about pointerrawupdate
High-frequency pointer samples—specialized, costly, and not Baseline.
5
Core concepts
📱01
Raw updates
high frequency
Trigger
📄02
Coalesced
getCoalescedEvents
API
⚡03
vs move
prefer move usually
Compare
🔒04
HTTPS
secure context
Security
🎯05
Limited
not Baseline
Status
❓ Frequently Asked Questions
It fires when a pointer changes properties that do not fire pointerdown or pointerup (the same kind of changes that drive pointermove). It is meant for high-precision input and can arrive more frequently than coalesced pointermove events.
No. MDN does not mark Element pointerrawupdate as Deprecated, Experimental, or Non-standard. It has Limited availability (not Baseline)—notably missing in Safari—and requires a secure context (HTTPS) in supporting browsers.
A PointerEvent (inherits from MouseEvent and Event). It bubbles and is composed, but is not cancelable and has no default action.
pointermove is the usual coalesced move stream for most apps. pointerrawupdate can deliver higher-frequency updates (and may include getCoalescedEvents) for drawing or precision tools that need every sample.
Listening can affect performance because events may fire extremely often. Add listeners only if your code needs high-frequency updates and can keep up; otherwise prefer pointermove.
If another pointerrawupdate for the same pointerId is still waiting in the event loop, the dispatched event may expose earlier samples via event.getCoalescedEvents(). MDN documents this for high-precision handling.
Did you know?
Spec / MDN note that pointerrawupdate bubbles and is composed, but is not cancelable and has no default action—unlike pointermove, which is cancelable.