# Display & Monitor Test

> モニターをブラウザでテスト：ドット抜け、バックライトブリード、色バンディング、ガンマ、残像、文字のシャープさ、実測リフレッシュレート、色域、HDR対応。

- URL: https://bytescope.dev/ja/screen-test/
- Locale: ja · Also: [en](https://bytescope.dev/en/screen-test.md) · [zh-Hant](https://bytescope.dev/zh-Hant/screen-test.md)
- Runs: すべてブラウザの中で動くので、何もアップロードされません。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

このディスプレイテストは2つの部分から成ります。情報パネルは、お使いの画面が実際に何であるかを読み取ります：物理解像度対CSS解像度とピクセル比、色深度、広色域対応（sRGB / P3 / Rec.2020）、HDR対応、そしてフレームのタイムスタンプからライブで測定した本当のリフレッシュレート — しばしば「144 Hz」のノートPCパネルが実は60 Hzで動作していることを明らかにします。続いてテストパターンが、パネルそのものを全画面で、1クリックずつ検査させてくれます。

パターンは、レビュアーや購入者が実際に行うチェックをカバーします：ドット抜けや常時点灯のドットのための単色サイクル、バックライトブリードと均一性のための純粋な黒と白、8ビットのバンディングを可視化するチャンネルごとのグラデーション、ガンマチャート、残像と動きの明瞭さのための動く物体テスト、お使いのスケーリング設定でのシャープさのためのテキストサンプル、タッチスクリーンのためのマルチタッチパッド。すべてのパターンには、何を見るべきか、健全な画面なら何が見えるべきかの1行ガイドが付きます — ほとんどのテストサイトは画像を出すだけで、あとは推測に委ねます。

すべてがブラウザ内でcanvasとSVGで生成されます — ダウンロードやインストールするものは何もなく、返品期限が切れる前に新しいモニターをチェックするのに、引き渡し時に中古の画面を検証するのに、あるいは突然おかしく見えるパネルを診断するのに理想的です。

さらに3つのパターンがより深く踏み込みます。HDR能力マトリクスは方程式の両側を機能検出します — ディスプレイがHDRを謳っているか、そしてこのブラウザが実際にHEVC・VP9・AV1を10ビットPQ（Rec.2020）のHDR構成でデコードできるか — 画面がHDRを謳っていてもブラウザが黙ってSDRデコードにフォールバックすることも、その逆もあるからです。HDRディスプレイでは、ハイライトの分離を確認するための白付近のランプも加わります。カラー参照カードは、標準的なsRGBのスウォッチ — ラベル付きのグレースケール段階、原色と二次色、肌色とメモリーカラー — を中立的なグレーの周囲に配置し、カラリメーターに手を伸ばす前に色かぶりを目視できるようにします。そして専用の焼き付き／残像セットは、25/50/75%の単色グレーとフルカラーフィールドを流し、放置してOLEDの焼き付きやLCDの残像を炙り出せる自動サイクルモードを備えます。

## Limits

Does not calibrate colour or measure brightness in nits; it shows test patterns and reports what the browser knows about the display.

## Machine output

Copy JSON copies an envelope `{ tool, url, generatedAt, userAgentHint, result }`. `tool` is `"screen-test"`; `result` is what the browser reported (`window.screen`, matchMedia, `devicePixelRatio`) or what this tab measured from rAF deltas — not the panel's factory specification. OS-renameable screen labels are omitted.

- `reportedCssScreenWidth` (number | null) — `window.screen.width` (CSS px). `null` = not read yet.
- `reportedCssScreenHeight` (number | null) — `window.screen.height` (CSS px). `null` = not read yet.
- `estimatedPhysicalWidth` (number | null) — `reportedCssScreenWidth * devicePixelRatio`, rounded. An estimate, not EDID. `null` = width or DPR not read.
- `estimatedPhysicalHeight` (number | null) — Same estimate for height. `null` = height or DPR not read.
- `devicePixelRatio` (number | null) — `window.devicePixelRatio`. `null` = not read yet.
- `reportedColorDepth` (number | null) — `window.screen.colorDepth`. `null` = not read yet.
- `viewportWidth` (number | null) — Layout viewport width. `null` = not read yet.
- `viewportHeight` (number | null) — Layout viewport height. `null` = not read yet.
- `reportedMaxTouchPoints` (number | null) — `navigator.maxTouchPoints` after mount. `null` = not read yet. `0` is a real report.
- `reportedColorGamut` (string | null) — Widest matching `(color-gamut: …)` token: `"rec2020"` | `"p3"` | `"srgb"` | `"unknown"`. `null` = not queried yet. `"unknown"` = queried, nothing matched.
- `browserReportsHdr` (boolean | null) — `matchMedia('(dynamic-range: high)')`. `null` = not queried.
- `browserReportsHdrVideo` (boolean | null) — `matchMedia('(video-dynamic-range: high)')`. `null` = not queried.
- `reportedPointerFine` (boolean | null) — `matchMedia('(pointer: fine)')`. `null` = not queried.
- `measuredRefreshRateHz` (number | null) — Median refresh rate measured from rAF deltas on this tab. `null` = not enough samples. Not the panel's rated Hz.
- `snappedRefreshRateHz` (number | null) — Nearby common rate when the measurement is within ~2%. `null` = no measurement, or nothing nearby.
- `windowManagementApiPresent` (boolean | null) — Window Management API (`getScreenDetails`). `null` = API present (or unknown), user has not clicked yet; `false` = probed, API missing; `true` = API exists (permission may still be denied).
- `multiScreenProbe` (string) — `"idle"` | `"unsupported"` | `"denied"` | `"ok"`.
- `screens` (array of objects) — Screens from `getScreenDetails`, in API order. Empty until `ok`. Each item: reportedWidth, reportedHeight, isPrimary, isInternal, devicePixelRatio (`null` when that screen did not report DPR).
- `deadPixelUserVerdict` (string | null) — `"pass"` | `"fail"`. `null` = not confirmed (opening the pattern is not a pass).

## FAQ

### ドット抜けはどうやって確認しますか？

単色サイクルを全画面で実行し、クリックまたはスペースバーで黒、白、赤、緑、青を順に切り替えます。どの色でも黒のままのピクセルはドット抜け（dead）で、単一の色に固定されたものは補色の画面で現れます。まず画面を拭いてください — ほこりは典型的な誤検出です。

### 常時点灯（stuck）のピクセルは直せますか？

時には。ドット抜け（常に黒）のピクセルはたいてい永続的なハードウェア故障ですが、常時点灯のサブピクセルは、素早い色サイクルや柔らかい布での優しいマッサージの後にまれに回復します。モニターのドット抜け保証ポリシーを確認してください — 多くのメーカーは一定数を超えるとパネルを交換します。

### 実測リフレッシュレートがモニターの仕様と異なるのはなぜですか？

テストはブラウザウィンドウに届いた実際のフレームを測定します。数値が低くなる一般的な理由：OSのディスプレイ設定が60 Hzになっている、マルチモニター構成でウィンドウが低Hzの画面にある、省電力モードが抑制している、またはブラウザがアニメーションを制限している。ウィンドウが現在ある画面を測定します。

### バックライトブリードとは何で、どのくらいが正常ですか？

暗い部屋で純黒のパターンを表示すると、LCDのバックライトが縁や角から漏れて明るい斑点として現れます。ほぼすべてのLCDに多少はあります。暗いコンテンツ中に通常の明るさではっきり見える場合は欠陥です。OLEDパネルには一切ありません（各ピクセルが自ら発光します）。

### テストはHDRや広色域でも動作しますか？

情報パネルは、ディスプレイとブラウザがHDR（dynamic-range: high）を謳っているか、どの色域（sRGB、Display-P3、Rec.2020）をカバーしているかを検出します。専用のHDRパターンはさらに踏み込み、MediaCapabilities APIを通じてHEVC・VP9・AV1の10ビットPQ構成でのHDR映像デコードを機能検出し、HDRディスプレイでは主観的なハイライト分離チェック用の白付近のランプも加えます。

### なぜ実際のHDR動画クリップを再生しないのですか？

ピーク輝度のヘッドルームを検証する本物のHDR10サンプルには、数メガバイトのHEVC/AV1ファイルと、ブラウザごとに異なるコーデック対応が必要で、しかも2Dキャンバスは物理的に本物のPQ信号を出力できません — そこで偽装する代わりに、HDRパターンは正直な能力マトリクス（ディスプレイのHDRとコーデックごとのデコード対応）とSDRの範囲内のランプを提供します。マトリクスはHDR再生が機能するかどうかを教えてくれます。ただクリップを同梱していないだけです。

### OLEDの焼き付きやLCDの残像はどうやって確認しますか？

焼き付きパターンを全画面で実行し、25/50/75%の単色グレーとフルカラーフィールドを順に切り替えます — 以前に表示された内容（タスクバー、ロゴ）のかすかな残像が消えずに残るのはOLEDの焼き付きです。LCDで1分ほどで薄れる一時的な影は残像で、通常は無害です。自動サイクルモードはフィールドを回転させ続けるので、軽度の残像を均すのにも使えます。

### カラー参照カードはカラリメーターの代わりになりますか？

いいえ — そしてそう明記しています。これはラベル付きの視覚的な参照です：標準的なsRGBのグレースケール段階、原色／二次色、肌色とメモリーカラーを中立的なグレーの周囲に置き、明らかな色かぶり、過飽和、つぶれた影を目視で見つけるのに役立ちます。真のキャリブレーションには、パネルを直接測定するハードウェアカラリメーター（Spyder、ColorMunkiなど、DisplayCALのようなソフトウェアと組み合わせて）が依然として必要です。
