# Touch Test

> 線上觸控螢幕測試：多點觸控軌跡、死區格子檢查、事件取樣率（Hz）。全部在瀏覽器裡完成、不上傳任何東西。注意 Hz 是瀏覽器事件的頻率，不是面板硬體規格。

- URL: https://bytescope.dev/zh-Hant/touch-test/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/touch-test.md) · [ja](https://bytescope.dev/ja/touch-test.md)
- Runs: 什麼都不會上傳。pointer 事件全在這個分頁裡處理，不會送到任何地方。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

這是一個留在分頁裡的觸控螢幕測試：多點觸控模式每根手指一種顏色、附軌跡線；取樣率模式顯示每秒事件數；死區模式用格子記錄哪裡摸過。什麼都不會上傳。沒有觸控螢幕也能用滑鼠測單點——這一頁用的是 Pointer Events（`pointerdown` / `pointermove` / `pointerup` / `pointercancel`），不是舊的 Touch Events API。

### 多點觸控軌跡

每個觸點從按下到抬起都維持同一種顏色。「目前觸點」是現在壓在螢幕上的數量，「同時最高」是這次測試中同時偵測到的最大值。`pointercancel` 會被當成抬起處理，所以系統手勢不會在畫面上留下幽靈手指。

### 取樣率是瀏覽器事件的頻率

畫面上的 Hz 是瀏覽器收到事件的頻率，不是面板硬體的觸控回報率。瀏覽器會合併 pointer 事件，所以數字一定比規格書低。把它當成「這個分頁多常聽到移動」的參考就好，不要拿去驗證出廠規格。

### 死區格子不等於面板壞點檢測

格子只記錄「這一格收到過觸控事件」。沒被填色的格子可能是滑太快沒掃到、手指剛好抬起，也可能真的是死區。這不是面板等級的壞點或數位板檢測。先按重設、放慢速度再劃一次，別急著怪螢幕。

## 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

### 取樣率就是面板硬體的觸控回報率嗎？

不是。這是瀏覽器事件的取樣率。瀏覽器會合併 pointer 事件，所以你看到的 Hz 會比面板規格低。它適合用來比較這個分頁收到移動的頻率，不適合拿來對規格書。

### 有格子沒被填到，代表螢幕有死區嗎？

光這樣還不能下結論。格子只證明「這一格收到過觸控事件」。滑太快、手指剛好抬起、真正的死區，都會讓格子留白。先重設、放慢速度再劃一次，再判斷是不是硬體問題。

### 沒有觸控螢幕，可以用滑鼠嗎？

可以。滑鼠一樣會送出 pointer 事件，所以單點軌跡、取樣率、死區格子都能用。頁面上會顯示這台裝置的 `navigator.maxTouchPoints`；如果是 0，多點觸控就需要真正的觸控螢幕才能測。

### 哪些瀏覽器可以用？

只要瀏覽器有 Pointer Events 就能用。偵測會在頁面載入後執行，請以頁面上的偵測結果為準，不要看版本對照表。說明與 FAQ 在任何瀏覽器都會顯示，包括收不到 pointer事件的那些。

### 會有資料離開我的裝置嗎？

不會。座標、軌跡、取樣時間戳、覆蓋率格子全都留在這個分頁裡。不用帳號，也不會上傳任何東西。

## Related tools

- [Display & Monitor Test](https://bytescope.dev/zh-Hant/screen-test.md) — 壞點、漏光、色帶、gamma、殘影、更新率一次檢查。
- [Mouse Test](https://bytescope.dev/zh-Hant/mouse-test.md) — 按鍵、連點誤觸、滾輪格數、回報率。
- [Pen Pressure Test](https://bytescope.dev/zh-Hant/pen-pressure-test.md) — 壓力曲線、傾角、筆桿旋轉、壓感等級推估。
- [Phone Sensor Test](https://bytescope.dev/zh-Hant/phone-sensor-test.md) — 測手機的加速度計、陀螺儀、指南針、GPS 精度和震動。
