navigator.maxTouchPoints returns the maximum simultaneous touch contacts the device supports. Learn typical values (0 vs 5), multi-touch checks, gesture UI tips, five examples, and try-it labs.
01
Kind
Read-only property
02
Returns
Number
03
Baseline
Widely available
04
Means
Max touch points
05
Desktop
Often 0
06
Phones
Often 5
Fundamentals
Introduction
Touchscreens are not all equal. Some devices track one finger. Others track several at once (pinch-zoom, two-finger scroll, chorded gestures). Your UI should match that ability.
navigator.maxTouchPoints answers with a number: the maximum simultaneous touch contact points the hardware (as reported by the browser) can track. It comes from the Pointer Events family of APIs and is Baseline Widely available.
💡
Capability, not “is this a phone?”
A touch laptop may report 10. A desktop with no touchscreen usually reports 0. Prefer this (and pointer media queries) over fragile user-agent sniffing when adapting gestures.
Concept
Understanding the maxTouchPoints Property
Think of it as “how many fingers can the screen track at the same time?”
Examples follow MDN navigator.maxTouchPoints patterns for reading capacity and branching on multi-touch. Prefer Try It Yourself to see your device’s reported count.
📚 Getting Started
Read the count and turn it into a friendly message.
Example 1 — Read Max Touch Points
Log the maximum simultaneous touch contacts the browser reports.
maxTouchPoints answers “how many fingers?” Media queries answer “what kind of pointer?” Together they guide layout and gestures better than UA sniffing.
Applications
🚀 Common Use Cases
Gesture tiers — enable two-finger swipe / pinch hints only when > 1 (MDN pattern).
Drawing / canvas apps — decide whether multi-touch painting or zoom is realistic.
Maps & photo viewers — show “pinch to zoom” only on multi-touch devices.
Games — map virtual controls to one finger vs multi-finger chords.
Diagnostics — display reported touch capacity in a device info panel.
🧠 How navigator.maxTouchPoints Works
1
Hardware tracks contacts
Touch digitizers support a maximum number of simultaneous points.
Hardware
2
Browser exposes the max
navigator.maxTouchPoints reports that capacity as a number.
Report
3
You branch the UI
Use > 0 / > 1 to choose gesture complexity.
Branch
4
✅
Gestures match the device
Users get controls that their screen can actually handle.
Important
📝 Notes
Baseline Widely available (MDN, since about July 2020).
Not Deprecated, Experimental, or Non-standard — no status banner required.
Hardware-dependent: desktops often 0; many phones often 5.
navigator.maxTouchPoints is Baseline Widely available across modern browsers (MDN: since about July 2020). Use it to detect multi-touch capacity for gesture UI.
✓ Baseline · Widely available
Navigator.maxTouchPoints
Read the max simultaneous touch points, branch on > 1 for richer gestures, and keep mouse/pointer paths for 0.
UniversalWidely available
Google ChromeAll versions · Desktop & Mobile
Full support
Mozilla FirefoxAll versions · Desktop & Mobile
Full support
Apple SafariAll versions · macOS & iOS
Full support
Microsoft EdgeAll versions · Chromium & Legacy
Full support
Internet ExplorerIE 6+ · Legacy environments
Full support
OperaAll modern versions
Full support
maxTouchPointsExcellent
Bottom line: Use maxTouchPoints as a capability hint. Pair with pointer media queries for layout; never rely on UA sniffing alone.
Wrap Up
Conclusion
navigator.maxTouchPoints tells you how many simultaneous touch contacts the device can track. Read the number, use > 1 for multi-touch gestures (as MDN suggests), and keep simpler pointer interactions when the value is 0 or 1.
Use > 1 before enabling complex multi-touch gestures
Treat 0 as “no touchscreen reported”
Pair with (pointer: coarse) / fine for layout choices
Keep mouse and keyboard paths working on touch devices
Test on a real phone and a non-touch desktop
❌ Don’t
Assume every phone returns exactly 5
Use it alone to detect “mobile” for responsive CSS
Hide essential features behind multi-touch only
Sniff user-agent strings for touch capability
Treat the value as a unique device fingerprint
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about maxTouchPoints
Baseline touch capacity number for multi-touch gesture decisions.
5
Core concepts
📱01
Returns
number
Type
👆02
Means
Max contacts
Touch
🔁03
Check
> 1 multi
Gestures
💻04
Desktop
Often 0
Typical
✅05
Status
Baseline
Wide
❓ Frequently Asked Questions
It is a read-only Navigator property that returns the maximum number of simultaneous touch contact points the current device supports.
No. MDN marks it Baseline Widely available (since about July 2020). It is not Deprecated, Experimental, or Non-standard.
Desktops without a touchscreen usually return 0. Many smartphones (Android and iOS) typically return 5. Touch laptops and tablets often return a positive multi-touch count.
A common MDN pattern is if (navigator.maxTouchPoints > 1) to offer richer gestures (two-finger swipe, pinch-friendly UI). Otherwise keep single-finger or pointer/mouse interactions.
0 means the device reports no simultaneous touch points (often a non-touch desktop). The property itself is still present on modern browsers — the number is simply zero.
No. It is read-only. You read the hardware capability; you cannot change it.
Did you know?
MDN’s classic tip is simple: if navigator.maxTouchPoints > 1, the device can track at least two contacts — a green light for two- or three-finger gesture UX. If not, stick to drag, click, and single-finger basics.