ウェブページのCSSでa:visited
を使うと、リンク先が訪問済みの場合にリンクの色を替えることができる。ちゃんと設定してやることによりユーザビリティーが上がるというのが定説だろう。訪問済みならばもう開く必要はなく、結果そのページに集中することができるというわけだ。この論理には3つ疑問がある。
メールのようにそれなりに内容が簡潔にまとまっているようなものの場合、一度読めば二度と読む必要はない。しかしウェブページは違う。人はウェブページを流し読みするものだし、その結果として内容を誤解するものだ。ウェブページの内容に対する人の記憶はまったくあてにならない。
訪問済みのウェブページを開かずに読み進めるということは、その内容をうろ覚えで誤解したままウェブページを読み進めるということに他ならない。ユーザーに優しくしたつもりが、結果としてウェブページの誤読を加速することになりうる。
リンクを張った文字列は必ずしもリンク先のウェブページのタイトルと同じではない。そのため訪問済みであったとしても、そのリンク先がどのようなページであるのかを類推することは難しい。わかることは訪問したことがあるという事実だけで、それ以上は何も知ることはできない。
それでもデスクトップ・ブラウザーならばステータス・バーなどでリンク先を確認することはできるし、モバイル・ブラウザーではロングタップして確認することはできる。確認するのはいかにも面倒だし(特にロングタップによる確認)、もしユーザーが確認することを前提とするのならば、a:visited
を使って訪問済みかどうかの情報を提供する意味はほとんどなくなるだろう。
色を変えることで訪問済みであることがわかると言うが、本当にそうだろうか。リンクの色が青で訪問済みの色が紫だとすると、確かにわかるかもしれない。しかし実際にそうであることはまずないだろう。その場合、ユーザーが訪問済みのリンクであることを知るためには、制作者の指定した訪問済みリンクの色を知っていることが条件になるが、知っているわけがない。
コントラストを落とすと訪問済みであるといった経験則は多分存在するが、それも訪問済みのリンクと未訪問のリンクが比較できる状態でのみ通用する。もし訪問済みのリンクのみ(またはその逆)だった場合、その色がコントラストが落ちているかどうかを判断することはできない。
下線を消し、本文と同じ色にすることで、未訪問のリンクと大きく差をつけることは可能だ。しかしそれは単にリンクとして認識できなくさせるだけで、訪問済みだということを知ることはできない。
何かわかりやすい形で表示できれば良いのだが、セキュリティの関係から多くのブラウザーで色以外を変えることはできない。またJavaScriptなどからも扱うことは難しい。つまり訪問済みであることを訪問者に誤解なく伝えるためには、リンク色をデフォルトのままにする必要があり、結果a:visited
は無用の長物と化す。
a:visited
がうまく機能するのは限られた状況でだけだろう。例えばニュース見出しの一覧や検索結果の一覧のウェブページはその良い例だ。そのページ自体に特に意味は無いこと、リンク先の内容がわかりやすいこと、繰り返し訪問する可能性が高いことが条件になる。普通に文章を書いて普通にリンクを張ったごく普通のウェブページではほとんど意味をなさないはずだ。