visited

:link 擬似クラス、:visited 擬似クラス

[4] :link 擬似クラスは、未訪問のリンクを表します >>3:visited 擬似クラスは、訪問済みのリンクを表します >>3

仕様書

意味

[5] :link は未訪問のリンクを表し、 :visited が訪問済みのリンクを表します。両者は互いに排他的です。 利用者エージェントは訪問してから十分時間が経ったリンクを未訪問扱いとして構いません。 また両者を区別することにより利用者の許諾なく訪問済み如何を著者が判定できてしまうため、 すべてを未訪問のリンクとして扱うなどの方法をとって、かつ両者を区別してレンダリングしたりしても構いません。 >>3

ハイパーリンク始点アンカー

[15] これらの擬似クラスハイパーリンク始点アンカー (hyperlink source anchor) に適用されます。

[16] ということが CSS2 では明記されていません。また Selectors3 では言及すらされていません・・・。

[17] 何がハイパーリンク始点アンカーであるかは文書言語によります >>14

HTML

[30] HTML では次の要素:link, :visited のいずれかに一致しなければなりません >>29

既読管理

[49] 既読URLリスト参照。

歴史

CSS1

[28] これらの擬似クラス>>27 で追加されました。

[23] CSS1 では :link, :visited, :active の3つのいずれか1つの状態であるとされていました。

[26] これは HTMLbody 要素属性に基づく当時のWebブラウザーの処理モデルに由来しています。

[24] CSS1 では HTMLa 要素href 属性があるものに適用されるとされていました。

CSS2

[25] CSS2 では HTML 以外への適用も考慮し、適用対象はマーク付け言語によって決まるとされました。

選択子3

HTML

[34] HTML 仕様書は HTML要素への適用について言及しています。

不思議解釈

[21] HTML属性名に引きずられて :vlink 擬似クラスが存在しているとする解説もあります。

関連

[20] 元々 HTMLlink 属性vlink 属性に相当する機能として導入されたようです。

メモ

[2] CSS によるブラウザ履歴の漏えいを防ぐ取り組み « Mozilla Developer Street (modest) ( 版) <https://dev.mozilla.jp/2010/04/plugging-the-css-history-leak/>

[8] Bug 147777 &#8211; :visited support allows queries into global history (2008-10-23 23:45:21 +09:00 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=147777>

[9] 「visited疑似クラスのビーコンを拾うサービスが登場」@水無月ばけらのえび日記 ( 版) <http://bakera.jp/ebi/topic/3298>

[10] 高木浩光@自宅の日記 - 楽天CERTに対するブラウザの脆弱性修正を阻害しない意思確認 (高木浩光 著, 版) <http://takagi-hiromitsu.jp/diary/20081213.html#p01>

[11] Preventing attacks on a user's history through CSS :visited selectors ( 版) <http://dbaron.org/mozilla/visited-privacy>

[12] Privacy and the :visited selector - MDC ( 版) <https://developer.mozilla.org/en/CSS/Privacy_and_the_%3avisited_selector>

[13] HTML5 Revision Tracker ( 版) <http://html5.org/tools/web-apps-tracker?from=5229&to=5230>

[7] IRC logs: freenode / #whatwg / 20110202 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20110202>

[38] Preventing attacks on a user's history through CSS :visited selectors ( ( 版)) <http://dbaron.org/mozilla/visited-privacy>

[39] Web Applications 1.0 r2778 Defined how pseudo-classes match HTML concepts. Redid how rtl/ltr changes are marked. Stopped <legend> centering for <figure>. Removed <multicol> support. Removed <basefont> support. Removed obsolete notes. Fixed minor typos. ( ( 版)) <http://html5.org/r/2778>

[40] Web Applications 1.0 r2778 Defined how pseudo-classes match HTML concepts. Redid how rtl/ltr changes are marked. Stopped <legend> centering for <figure>. Removed <multicol> support. Removed <basefont> support. Removed obsolete notes. Fixed minor typos. ( ( 版)) <http://html5.org/r/2778>

[41] Web Applications 1.0 r8865 links should be cursor:pointer ( ( 版)) <https://html5.org/r/8865>

[6] IRC logs: freenode / #whatwg / 20150529 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20150529>

# [14:21] <IZh> Hi. I read about one-time possible privacy attack allowing to discover, what sites user visited. The idea is to measure time of loading favucon.ico from various sites. If it is in a cache, it will load sifnificantly faster. What you think?

# [14:23] <IZh> And the time could be compared with favicon.ico?someRandomValue

# [15:04] <gsnedders> IZh: such things have been vaguely plausible for years, and somewhat known of

[42] :visited - CSS | MDN ( ()) <https://developer.mozilla.org/ja/docs/Web/CSS/:visited>

プライバシー上の理由で、この擬似クラスで選択される要素から適用できるスタイルには、ブラウザが厳しい制限をかけています: color、background-color、border-color、border-bottom-color、border-left-color、border-right-color、border-top-color、outline-color、column-rule-color、fill、stroke だけです。アルファ値が無視されることにも注意してください: 未訪問のリンクのルールのアルファ値が代わりに使われます(不透明度が 0 の場合を除きます。この場合指定した色全体が無視され、未訪問のルールの色が使われます)。

色を変えることができますが、getComputedStyle メソッドは嘘をついて、常に未訪問のリンクの色を返します。

[43] プライバシーと :visited セレクタ - CSS | MDN ( ()) <https://developer.mozilla.org/ja/docs/Web/CSS/Privacy_and_the_:visited_selector>