Touchscreen Test
Map dead zones, count multi-touch contacts and read pressure, contact size and stylus tilt — all in your browser, with nothing uploaded.
Drag a finger over the surface — every grid cell you touch fills in green.
Nothing you draw, tap or trace is uploaded. Every coordinate, pressure and tilt value stays in this tab and is gone when you close it — the test itself never makes a network request. (The shared site layer that styles every Lotamyst page can prefetch links you hover; it never sees your touch data.)
Contact readout
Put every finger down on the surface at the same time. Spread them out — contacts closer together than roughly a centimetre can be merged into one by the digitiser.
Pressure — no contact sampled yet.
Contact size — no contact sampled yet.
Pointer types seen — none yet.
Pinch & rotate check
Two-contact tracking is a separate thing from counting contacts: the digitiser has to keep both points distinct while they move. Pinch the square and twist it. If it jumps, sticks or swaps the two points around, the panel is struggling to separate them.
& rotate
With a mouse only one pointer exists, so the pad will sit at one contact and neither check can pass. That is expected, not a fault.
Tap accuracy
Tap the red target as precisely as you can. Each tap records the offset between the crosshair and where the device said you touched, then the next target lights up.
This measures your aim and the digitiser together — scattered misses are you, a consistent shift in one direction is the panel.
How to run the test
- Trace the surface. Drag across it. Every contact gets its own colour and number, so ten fingers leave ten separate traces. A healthy line is smooth and unbroken; staircases, zigzags and gaps mid-stroke are the symptoms worth chasing.
- Map the dead zones. Leave the grid on and cover every cell, corners included. Once coverage passes 75% the cells you still have not touched are outlined in amber so the remaining gaps stand out. Tap Fullscreen first — otherwise you are only testing the middle of the panel.
- Sweep it twice. Clear, then do the whole thing again. A real dead zone lands in the same place both times. A cell that is empty once and filled the next run was a dropped event or a hurried sweep, not a fault.
- Count your contacts. Put every finger down at once. Contacts now is live, max at once is your record, and device claims is navigator.maxTouchPoints — the driver's advertised maximum. The gap between the two is the interesting number.
- Read one contact at a time. Press and hold, then look at its card: pressure, reported contact size, tilt and twist. Cards linger for a few seconds after you lift, because you cannot read a number while your finger is parked on top of it.
- Pinch, twist, then aim. The gesture pad proves the panel can track two points independently; the accuracy grid shows whether taps land where you aimed.
Reading the result: coverage of 100% with a smooth trace and a contact count that matches what the device claims means the digitiser is fine. Everything else is a pattern — and the shape of the pattern tells you what broke.
What the grid is actually measuring
Under the glass is a lattice of transparent electrodes. Your finger steals a measurable amount of charge from the intersections it covers, the controller works out where that happened, and the operating system hands the result to the browser as pointerdown, pointermove and pointerup events. This page does nothing cleverer than fill in a cell whenever a pointer passes through it, so the grid is a direct picture of which parts of the digitiser answered. It is not a picture of the display: a screen can look flawless and be electrically dead, and a spiderweb of cracked glass often sits over a digitiser that still works perfectly.
Because a fast swipe only produces a sample every few milliseconds, the tool fills every cell along the straight line between two consecutive samples instead of only the two cells the samples landed in. Without that you would leave holes in the grid simply by moving quickly and the tool would invent dead zones that do not exist. Where the browser supports getCoalescedEvents() the full unthrottled sample stream is used, so the path is as faithful as the hardware allows.
What the failure shapes mean. A dead band running the entire width or height of the panel is one drive line of the lattice that has lost contact. After a drop that is very often an unseated flex connector rather than a broken sensor, which is why a reseat sometimes fixes a phone that looks written off. An irregular blob or a soft-edged patch is usually physical damage to the sensor layer or liquid that got under it. A whole third of the screen going dead at once points at the connector for that section. Random single cells scattered around, in a different place on every sweep, are not a dead zone at all — that is you missing cells, or the browser dropping events under load.
Things that fake a dead zone. The screen edges are the worst offender: Android's back gesture and iOS's home indicator swallow edge swipes before the page ever sees them, and the browser then fires pointercancel to say the contact was taken away. Those cancellations are counted and reported above, so you can tell "the OS took it" apart from "the panel missed it". On top of that, a web page can never reach the status bar, the notch or the rounded corners — those pixels are outside the viewport, so they will stay empty no matter how healthy the hardware is. A cheap ungrounded charger injects enough electrical noise to make touch erratic or unresponsive along whole stripes; a screen protector with trapped air or moisture under it does the same locally; a thick case pressing on the glass edge kills the outer few millimetres; and a hung touch driver produces a perfectly convincing dead region that a reboot cures instantly.
Watch the line, not just the coverage. Trace slowly and look at the stroke itself. A digitiser with a noisy front end or a bad ground draws a fuzzy, jittery or staircased line instead of a clean one — unplug the charger and trace again, because that single change fixes a startling number of "my screen is broken" reports. Contacts that appear when nothing is touching the glass are ghost touches: the contact counter climbs on its own and stray marks appear. One caveat in the other direction, for honesty's sake: Chrome and Android resample and slightly predict touch input before it reaches the page, so a smooth line here is good evidence but not absolute proof that the raw sensor stream is clean.
Pressure and contact size are usually placeholders. Almost no capacitive touchscreen has a force sensor, and the Pointer Events specification requires the browser to report exactly 0.5 while a contact is down when it cannot measure force. A flat 0.5 is therefore the healthy, expected reading, not a fault — and the same goes for a contact size fixed at 1 × 1, which is what iOS Safari and most desktop browsers report because they do not expose contact geometry at all. Real varying pressure, tilt and twist arrive from an active stylus or a graphics tablet.
If you found a real dead zone. Work through the cheap causes first: case off, screen protector off, glass cleaned with a dry cloth, charger unplugged, then a full reboot. On Android, boot into safe mode and retest — if the dead area disappears, an app was to blame. Windows tablets have a genuine recalibration under Control Panel → Tablet PC Settings → Calibrate, which is worth running if taps land consistently offset; phones have no equivalent, and any app claiming to recalibrate a phone touchscreen is lying to you. If a band or patch survives all of that and lands in the same place on every sweep, the digitiser (which on nearly all modern phones is bonded to the display) needs replacing.
FAQ
How do I test my touchscreen for dead zones?
Turn the grid on, then drag one finger slowly over every part of the surface, edges and corners included, until the coverage figure stops rising. Every cell you touch fills in. Any cell still empty after a deliberate, complete sweep is a patch the digitiser did not register, and that is what a dead zone looks like. Use the fullscreen button so the test area reaches the physical edges of the panel.
Why does the contact counter stop below the number my device claims?
navigator.maxTouchPoints is what the driver advertises, not what the browser will deliver. Browsers commonly cap simultaneous contacts at 10, the operating system can swallow a contact for an edge gesture, and some Windows pen digitisers report 256 as a placeholder. Reaching 5 or 10 with every finger down is normal. Reaching 2 on a device that claims 10 is worth investigating.
Why is the pressure reading always 0.5?
Because almost no capacitive touchscreen has a force sensor. The Pointer Events spec says that when a device cannot measure force the browser reports 0.5 while the contact is down and 0 when it is up, so a flat 0.5 is the correct, healthy reading. Genuinely varying pressure only shows up from an active stylus, a graphics tablet pen, or hardware with a real force layer.
My screen has a dead strip. Can it be fixed?
A straight band across the full width or height usually means one drive line of the digitiser grid has lost contact, which after a drop is often an unseated flex cable rather than a broken panel. An irregular blob is more likely physical damage to the sensor layer itself. Before assuming hardware, take the case and screen protector off, clean the glass, unplug the charger and retest, then reboot. A cheap ungrounded charger and a hung touch driver both produce convincing fake dead zones.
Does this work with an Apple Pencil, S Pen or graphics tablet?
Yes. Pen input arrives as a pointer whose pointerType is pen, and the readout shows tilt on both axes, barrel rotation (twist) and real pressure when the pen reports it. If tilt and twist stay at zero while pressure varies, the pen supports force but not tilt, which is normal for cheaper styluses.
Why do my taps land a few pixels away from the target?
The accuracy grid measures your aim and the digitiser together, so a few pixels of scatter is simply human error: a fingertip is far wider than the point you think you are hitting. What matters is the bias. If every tap lands offset in the same direction by about the same amount, that consistent shift is the digitiser being miscalibrated rather than you missing.