デバイス情報

ブラウザがこの端末について報告する内容を確認できます。画面解像度、ビューポート、ピクセル比、CPU コア数、タイムゾーン、言語、ユーザーエージェント。すべてローカルで読み取ります。

ブラウザが Web サイトに開示するこの端末の情報を、読みやすい一覧にまとめます。 ウィンドウのサイズ変更やネットワーク状態の変化に応じて自動で更新されます。コピーボタンで完全なレポートを不具合票に貼り付けられます。

ディスプレイ

画面解像度
—
利用可能な画面領域
—
色深度
—
デバイスピクセル比
—
画面の向き
—

ブラウザウィンドウ

ビューポートサイズ
—
ウィンドウサイズ
—
スクロールバーの幅
—

ブラウザとユーザーエージェント

ユーザーエージェント
—
優先言語
—
受理する言語
—
プラットフォーム
—
ブラウザベンダー
—
Cookie の有効状態
—
ネットワーク到達性
—
Do Not Track
—

ハードウェア

論理 CPU コア数
—
デバイスメモリ
—
最大タッチポイント数
—

時刻とロケール

タイムゾーン
—
UTC オフセット
—
現在時刻(ISO)
—

デバイス情報の正しい読み方

画面サイズとウィンドウサイズは別物

よく混同される 3 つの寸法があり、取り違えると「他人の環境でだけ壊れるレイアウト」が生まれます。画面解像度は物理パネルの値で、ウィンドウをどう変えても変化しません。利用可能な画面領域は、タスクバーや macOS のメニューバーなど OS が常時占有する部分を差し引いた値です。ビューポートはページが実際に描画できる領域で、CSS メディアクエリが反応するのはこの 3 つのうちビューポートだけです。

レスポンシブレイアウトをデバッグしているなら、必要なのはほぼ常にビューポートです。3840 ピクセルのモニターを使っていても、幅 700 ピクセルのウィンドウで閲覧しているかもしれません。画面幅を基準にメディアクエリを書くと、収まらない領域にデスクトップ版レイアウトを出してしまいます。

デバイスピクセル比が両者を結び付けます。比が 2 なら CSS ピクセル 1 つを 2×2 の物理ピクセルで描画するという意味で、古いモニターで鮮明だった画像が最近のノート PC でぼやける理由もこれです。ビューポートにピクセル比を掛けた値が、ラスター画像に本当に必要なピクセル数です。

ユーザーエージェントは意図的に嘘をつく

ユーザーエージェントはこのページで最も信頼できない項目です。各ブラウザは何十年も、雑に書かれたサーバー側判定を通過するために他社の名前を自分の文字列へ追加してきました。だから現在の Chrome も Mozilla、AppleWebKit、KHTML、Gecko、Safari を同時に名乗ります。フィンガープリント対策として、各社はこの文字列の凍結と簡素化を進めています。

判断材料ではなくヒントとして扱ってください。ある機能の有無を知りたいなら、その機能自体を検出します。API の存在確認は 1 行で済み、コードを書いた時点で存在しなかったブラウザでも動作し、ベンダーが UA を書き換えても壊れません。

これらの値から何が分かるのか

個々の項目だけで個人を特定することはできませんが、組み合わせると識別力は驚くほど高くなります。画面解像度、タイムゾーン、言語リスト、CPU コア数、ピクセル比を合わせると、数百万人の訪問者の中で一意になることも珍しくありません。トラッカーがこれらを収集するのはそのためです。

一部の項目が意図的にぼかされたり非公開になっていたりするのも同じ理由です。デバイスメモリは粗い段階に切り下げられ、コア数の上限を設けたり、メモリを一切公開しなかったり、汎用的なプラットフォーム文字列を返すブラウザもあります。Do Not Track は事実上放棄されており、尊重するサイトはほとんどなく、多くのブラウザは送信自体をやめました。ここが空でも何も意味しません。

開発上の実践的な結論は、本当に必要な最小限だけを取得することです。重いアニメーションを読み込むか判断したいなら、コア数から推測するのではなく最初のフレームの描画時間を実測してください。実測は推定スペックに勝り、フィンガープリントの面積も増やしません。

標準のブラウザ API のみを使用して自社実装しています。データは一切アップロードされず、すべての値はお使いのブラウザ内で読み取られ、このページから外に出ません。

よくある質問

表示される解像度がモニターの仕様より小さいのはなぜですか。
表示されているのは物理ピクセルではなく CSS ピクセルです。デバイスピクセル比を掛けるとパネルの実ピクセル数になります。比が 2 の 4K ディスプレイは通常 1920 × 1080 と報告します。
ビューポートは変わるのに画面解像度が変わらないのはなぜですか。
画面解像度は物理モニターを表し、表示モードを変えない限り変化しません。ビューポートはウィンドウ内の描画領域なので、サイズ変更・開発者ツール・ブックマークバーの表示で変わります。
ユーザーエージェントでブラウザを判定してよいですか。
推奨しません。各ブラウザは意図的に互いを模倣しており、ベンダーは詳細度を削減しています。ブラウザ名の照合ではなく、必要な機能そのものを検出してください。
デバイスメモリが丸めた値なのはなぜですか。
ブラウザが意図的に少数の粗い段階へ切り下げているためで、そもそも報告しないブラウザも多くあります。正確な値の公開はフィンガープリントを容易にします。
このページの内容はサーバーに送信されますか。
送信されません。すべての値は標準 API でお使いのブラウザから読み取り、ローカルで描画しています。送信・記録・保存は一切行いません。
Do Not Track が空または利用不可なのはなぜですか。
この信号は広く尊重されることがなく、多くのブラウザが削除しました。空欄はヘッダーを送っていないことを示すだけです。