# Touch Test

> Touch screen test: multi touch test online and a touch screen dead spot test. Test touch screen response; Hz is browser events, not panel hardware.

- URL: https://bytescope.dev/en/touch-test/
- Locale: en · Also: [ja](https://bytescope.dev/ja/touch-test.md) · [zh-Hant](https://bytescope.dev/zh-Hant/touch-test.md)
- Runs: Nothing is uploaded. Pointer events are handled in this tab and never sent anywhere.
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

A touch screen test that stays in this tab: a multi touch test online with one colour per finger and a trail, a sample-rate readout, and a touch screen dead spot test on a grid. Nothing is uploaded. Test touch screen response with a mouse or a finger — this page uses Pointer Events (`pointerdown` / `pointermove` / `pointerup` / `pointercancel`), not the older Touch Events API.

### Multi-touch trails

Each contact keeps one colour until it lifts. The live count is how many contacts are down right now; the peak is the highest simultaneous count this session. `pointercancel` is treated as a lift so a system gesture cannot leave a ghost finger on the pad.

### Sample rate is browser events

The hertz figure is the browser event sample rate, not the panel's hardware touch rate. Browsers coalesce pointer events, so the number is lower than the datasheet. Treat it as how often this tab is hearing moves, not as a factory spec.

### Dead-spot cells are not panel defects

The grid only records that a cell received a touch event. A missed cell can be a fast swipe that never crossed it, a lifted finger, or a real dead zone. It is not a panel-level stuck-pixel or digitizer inspection. Reset and try a slower pass before you blame the glass.

## Limits

Does not recalibrate the digitiser or fix ghost touches; it shows what the browser receives.

## Machine output

Copy JSON copies an envelope `{ tool, url, generatedAt, userAgentHint, result }`. `tool` is `"touch-test"`; `result` is aggregates only — peak concurrent pointers, sample rate, dead-zone coverage. Pointer trails are omitted.

- `pointerEventsSupported` (boolean | null) — `null` = not probed yet; `false` = probed, no Pointer Events; `true` = present.
- `reportedMaxTouchPoints` (number | null) — `navigator.maxTouchPoints` after mount. `null` = not read yet. `0` is a real report.
- `maxConcurrentPointers` (number | null) — Peak concurrent pointers observed on the canvas. `null` = no pointer-down yet. `1` = measured, single-touch only.
- `totalPointerDowns` (number) — How many `pointerdown`s this session recorded. `0` = none yet.
- `sampleRateHz` (number | null) — Pointer-event sample rate in Hz. `null` = not enough samples.
- `deadZoneCoveragePercent` (number | null) — Dead-zone grid coverage, 0–100. `null` = dead-zone mode has not marked any cell.
- `deadZoneHasUntouchedCells` (boolean | null) — `null` = dead-zone not started; `true` = at least one cell still untouched after some coverage; `false` = every cell was touched.
- `deadZoneUntouchedCellCount` (number | null) — Untouched cell count. `null` = dead-zone not started.
- `deadZoneGridCols` (number | null) — Dead-zone grid column count. `null` = dead-zone not started.
- `deadZoneGridRows` (number | null) — Dead-zone grid row count. `null` = dead-zone not started.

## FAQ

### Is the sample rate the panel's hardware touch rate?

No. It is the browser event sample rate. The browser merges pointer events, so the hertz you see is lower than the panel spec. Use it to compare how often this tab is getting moves, not to check a datasheet.

### Does a missed cell mean the screen has a dead spot?

Not by itself. The grid only proves a cell received a touch event. A fast swipe, a lifted finger, or a real dead zone can all leave a cell empty. Reset and draw more slowly before you treat a gap as hardware.

### Can I use a mouse if I do not have a touch screen?

Yes. A mouse still sends pointer events, so single-point trails, sample rate, and the dead-spot grid all work. This device's `navigator.maxTouchPoints` is shown on the page; a value of 0 means multi-touch needs a real touch screen.

### Which browsers work?

Any browser that exposes Pointer Events. Detection runs after the page mounts. Treat the detection line on this page as the source of truth, not a version table. About and FAQ render in every browser, including ones that cannot receive pointer events.

### Does any data leave my device?

No. Pointer coordinates, trails, sample timestamps, and the coverage grid stay in this tab. There is no account and nothing is uploaded.

## Related tools

- [Display & Monitor Test](https://bytescope.dev/en/screen-test.md) — Dead pixels, backlight bleed, banding, gamma, ghosting, refresh rate.
- [Mouse Test](https://bytescope.dev/en/mouse-test.md) — Buttons, double-click chatter, scroll notches, polling rate.
- [Pen Pressure Test](https://bytescope.dev/en/pen-pressure-test.md) — Pressure curves, tilt angles, barrel twist, and estimated pressure levels.
- [Phone Sensor Test](https://bytescope.dev/en/phone-sensor-test.md) — Accelerometer, gyroscope, compass, GPS accuracy and vibration on your phone.
