Skip to content
All fingerprint checks
Screen & display

A desktop browser does not expose touch-event feature detection

Pim· Clearcote Research 2 min readCheck id desktop-has-no-touch-events

On a desktop Chromium claim, 'ontouchstart' in window is false, with or without a touchscreen. N/A for mobile claims and non-Chromium engines (severity: warn).

What a detector infers

Whether 'ontouchstart' in window is true is not decided by the hardware. Desktop Chrome turns touch-event feature detection off by default on Windows, macOS and Linux, even on a laptop with a touchscreen: the default is set in slow_web_preference_cache.cc, and only the --touch-events command-line switch or DevTools touch emulation turns it on — current Chrome has no chrome://flags entry for it.

Touchscreens still report themselves, because navigator.maxTouchPoints and the coarse-pointer media queries reflect the real digitiser, so a touch laptop shows touch points while 'ontouchstart' stays false. Measured exactly that way on a Windows PC with a touch digitiser (maxTouchPoints 2) on Chrome and Edge, and false on genuine Linux Chrome. Playwright's hasTouch option, which turns touch emulation on, makes it true.

The rule is deliberately the reverse of the intuitive one: 'touch points, therefore touch events' would flag every real touch laptop, and is not asserted. Developers who launch with --touch-events will trip it. Mobile claims are N/A, as are engines without userAgentData, which follow their own rules.

How to resolve it

Do not turn on touch emulation for a desktop identity (in Playwright, leave hasTouch off). A desktop touchscreen is described by maxTouchPoints and the pointer media queries; touch-event detection stays off unless the browser is launched with --touch-events.

How is mobile emulation detected?

Nearby checks in Screen & display

See all 24 checks in Screen & display
Who builds this test

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 desktop-has-no-touch-events belongs to.