a Chrome or Firefox engine claiming macOS reports no touch points
A V8 or SpiderMonkey engine claiming macOS (UA-CH platform, navigator.platform or the user agent) reports maxTouchPoints 0. N/A on WebKit and when nothing claims macOS (severity: warn).
What a detector infers
Neither Chrome nor Firefox has a source for touch points on macOS. Chromium compiles its default pointer-device implementation for Mac, whose MaxTouchPoints() returns 0; Firefox asks the window's widget, and the Cocoa widget never overrides the base method, which returns 0. So on a Mac both report navigator.maxTouchPoints 0, always — Macs have no touchscreen.
A Chrome- or Firefox-engine browser that claims macOS and reports touch points is describing a machine that does not exist. Safari is exempt: iPadOS Safari in desktop mode genuinely reports MacIntel with five touch points, and every iOS browser runs on WebKit, which the engine gate excludes.
How to resolve it
Under a macOS persona on a Chrome or Firefox engine, report maxTouchPoints 0. Touch points with MacIntel belong to iPadOS Safari and are only coherent on WebKit with an iPad user agent.
Read in the wild by
Camoufox (measured)
Measured while establishing ground truth for this row. With its default randomised fingerprint, two launches in a row rolled a macOS persona (MacIntel, a Macintosh user agent, an Apple GPU) and both reported maxTouchPoints 5.
Camoufox 152.0.4-beta.30 (python package 0.5.6), default config: navigator.platform MacIntel, maxTouchPoints 5. The same build under a Windows fingerprint reports 0.
camoufox.comEvery attribution traces to a published artifact. See the sources and their limits.
Nearby checks in Screen & display
- the outer window fits within the screen
window-boundsThe check asserts only the zoom-invariant bound: window.outerWidth/outerHeight must be non-zero and must fit within the screen. - a Windows browser window with no frame at all covers the screen, as only fullscreen does
frameless-window-vs-fullscreenOn Windows every top-level window carries invisible resize borders — about 8 px at the left, right and bottom — and outerWidth/outerHeight… - a non-touch desktop has a fine pointer + hover
pointer-hover-desktopThis check applies only when the UA identifies a desktop platform (Windows, Macintosh, Mac OS X, X11, Linux, CrOS, and not Android/Mobile)… - maxTouchPoints coheres with pointer media
touch-pointer-coherenceA one-directional coherence test: if navigator.maxTouchPoints is greater than zero, matchMedia("(any-pointer: coarse)") is expected to… - screen dimensions resolve via native prototype getters
screen-descriptorsFor width, height, availWidth, availHeight, colorDepth and pixelDepth this asks two questions: does the screen instance carry an own… - screen.orientation agrees with the screen's own dimensions
orientation-vs-screen-dimsscreen.orientation.type and screen.width/height are both device-space values sourced from the same display metrics, so they must agree: a… - a mobile UA has a real touch stack
touch-createevent-coherenceThis check asserts in one direction only: if navigator.userAgent matches iPhone, iPad, iPod or Android, then the environment must also have… - visualViewport agrees with innerWidth/innerHeight
visual-viewport-vs-windowwindow.innerWidth and visualViewport.width are two independent readings of one viewport, and they are related by exactly one thing: the…
Clearcote is a browser built for fingerprint coherence
It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.
This audit takes no position on how Clearcote scores on Screen & display checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.
See the other checks in Screen & display — the family touch-points-vs-claimed-macos belongs to.
