Safari 5では訪問済みリンクと未訪問リンクは区別されないっぽい

これはびっくりだ。

Safari 5での疑似要素

追記:確認しわすれてたけど色だけが適用できるっぽい。サイズやtext-decorationなどは適用できないっぽい

以前に楽天Ad4U(ドリコム式)が訪問済みリンクの疑似要素スタイルが変化するのを利用して、ユーザのサイト利用状況を把握しようとしていた件について、ブラウザベンダーが「問題」と認識してそういったことができないようにするみたいな流れになっていたのは知っていたけど、どうもSafari 5では

a:link { /* 未訪問リンクのスタイル */ }
a:visited { /* 訪問済みリンクのスタイル */ }

この二つのスタイルが区別して適用できないっぽい。

比較サンプルを作ってみた

訪問済みリンクと未訪問リンクのスタイル比較
(Safari 5で見ると上の画像みたいにスタイルが一緒になっちゃう)

基本的に、:linkの疑似要素が適用されるっぽい
未訪問/訪問済みに依存したスタイルを書く時は気をつけた方が良いな。

参考
楽天ad4Uで悪用されたCSSの仕様性、AppleがSafari 5.0で修正 - スラッシュドット・ジャパン
CSS3 Selectors Test - CSS3 . Info
行動ターゲティングサービスの説明とその無効化について
個人で使うドリコム式行動ターゲティング広告 - ぼくはまちちゃん!(Hatena)
CSSによるWeb訪問履歴の漏洩に具体的対策、楽天ad4Uなど無効化へ - Publickey
高木浩光@自宅の日記 - 楽天ad4Uの隠しリンクを露出させるユーザスタイルシート
Safari 5 で :visited の挙動が変更に : Safari Realized
:visitedの挙動変更がSafari 5に反映 | Web標準Blog | ミツエーリンクス