Summary
- W3C の2010年の作業草案は、
:visitedの照会やgetComputedStyle()が閲覧履歴を漏らし得ると指摘した。Mozilla は訪問済みリンクの色を読者には残し、ページのスクリプトには未訪問のスタイル値を返す方法を示した。 - 2025年4月の Chrome 136 は、リンク先 URL、最上位サイト、フレームの出所ごとに訪問状態を分けた。別サイトで行ったクリックの紫色は第三者のページへ引き継がれず、自サイトへのリンクには限定的な例外がある。
紫のリンクは「ここはもう読んだ」と教えてくれる。ところが、ページが大量のリンクを並べて色を調べれば、読者がよそで訪れた先も推測できる。2010年1月の W3C Selectors API Level 2 作業草案は、選択子の問い合わせと getComputedStyle() による履歴漏れを明記した。querySelectorAll(":visited") の例も載せている。草案が示したのは攻撃の形であり、全ブラウザーの実装を数えた表ではない。
紫を消してしまえば質問もできなくなるが、読者の道しるべまで消える。Mozilla が2010年3月に発表した開発中の対策は別の道を選んだ。訪問済みリンクで変えられる見た目を色に絞り、位置や大きさ、追加の読み込みから状態が漏れる道を狭める。レイアウト計算の違いも抑え、ページの JavaScript が getComputedStyle() を呼べば未訪問の値を返す。人には紫のしるし、ページには色のついていない控えが渡る。
その仕組みでは、ブラウザーの記憶そのものは広い範囲を共有していた。Chrome の2025年4月の説明によれば、昔はサイト A から B へのリンクを開くと、無関係なサイト C にある B へのリンクまで訪問済みに見えた。C はそのクリックに立ち会っていない。それでも色が A での行動をほのめかす。読者のための目印が、通りすがりのページへの伝言になっていた。
2025年4月29日に安定版となった Chrome 136 の公開記録は、:visited の履歴をクリック元の最上位サイトとフレームの出所で分割したと記す。Chrome の詳しい説明ではリンク先 URL も記録の鍵になる。A で B を開いた記憶は A で役立つが、C の B リンクには持ち込まれない。自サイト内のページへのリンクには例外が設けられた。サイトは自分のページへの訪問をすでに観察できるからだ。
W3C の2026年1月の Selectors Level 4 作業草案には、この判断の選択肢が並ぶ。訪問状態を一切表示しない方法、表示してスクリプトには隠す方法、クリック元が知り得る履歴だけを表示する方法だ。付録はリンク先、出発元、最上位サイトを組にする例を記している。草案は実装の一覧表ではなく、記憶の境界をどう引くかを示す設計図である。
リンクの紫色は残った。変わったのは話す相手だ。Firefox は色を見せながら調べる手をかわし、Chrome 136 は他人の部屋まで届く記憶を分けた。道順を覚える便利さに、訪れた場所をよそのページへ言いふらす役目まで付ける必要はない。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加





