「リンクを別窓で開く」は本当に親切か?
外部リンク(他サイトへのリンク)をtarget="_blank"で新しいウィンドウ(別窓)を開いて表示する方法を取っているサイトは多いと思います。その理由として、
- 他のサイトに移動しても自分のサイトを表示したまま残しておきたい
- 文書の途中で補足的な意味合いで他サイトにリンクをはる時は元の情報を参照しやすい
- とりあえず「他サイトへのリンクは別窓」がお約束だから(?)
等が挙げられるかと思います。
ただし、target="_blank"で別窓を開くのはデメリットも多いのです。
target="_blank"のデメリット
- 別窓を開きたくない閲覧者には不便
- 新しくウィンドウを起動する分、PCに負担が掛かる
- ブラウザバックが出来ない
target指定がされていないリンクを別窓で開くにはいくつもの方法があります。例えば
- リンクを右クリックし、「新しいウィンドウで開く」をクリック
- マウスのホイール(真ん中の回転するボタン)でクリック
Shiftキーを押しながらクリック
などです。逆に、target="_blank"を指定してあるリンクを同窓で開こうと思うと、ブラウザのデフォルト機能では「リンクをブラウザのURL欄にドラッグ&ドロップする」と言う方法しかないようです。
ウェブコンテンツ・アクセシビリティ・ガイドライン 1.0では、
10.1 ユーザーエージェントで新しいウインドウを開かない設定ができるようになるまでは、ユーザーに知らせることなしに新しいウインドウを開いたり現在のウインドウを変更しないようにする。[優先度2]
たとえばHTMLの場合、新しいウインドウをターゲットとするようなフレームを使用しないようにしてください。
と勧告されています。
また、DOCTYPE宣言がStrictの場合にはtarget属性は利用できません。
とは言え、別窓を開くメリットを考えるとtarget="_blank"を簡単に切り捨てられない人も多いと思います。
閲覧者に優しい別窓の開き方
別窓リンクと同窓リンクを用意する
最も直感的な方法です。
<a href="http://example.com/">他サイトへのリンク</a> <a href="http://example.com/" target="_blank">他サイトへのリンク(別窓)</a>
のようにすると同じウィンドウで開きたい人は上のリンクをクリック、新しいウィンドウで開きたい人は下のリンクをクリックというように「同じ手間で希望の開き方を選択」することが出来ます。
target="_blank"は書かず、別窓の開き方を説明する
説明の例
※リンクは全て同一ウィンドウ(タブ)で開きます。
新しいウィンドウで開きたい方はShiftキーを、新しいタブで開きたい方はCtrlキーを押しながらクリックしてください。
個人的には「簡単な別窓の開き方」をどんどん広めていって欲しいのでこの案は悪くないと思っています。
javascriptを使う
target="_blank"の記述なしで別窓を開くjavascriptは色々な方が開発して配布していますが、ここでお勧めするのはread a little.さんで配布されているWebsite Optionsというjavascriptです。このスクリプトは非常に多機能なもので、head要素の末尾に<script src~で読み込むだけで
- CSS切替
- 外部リンクを別窓で開く
- ページ内自己リンクの排除
- フォームの送信とリセットで確認
- blockquote要素のcite属性からリンクを生成
などなど、「あると便利」な機能をページにプラスすることが出来ます。
数ある「別窓で開くjavascript」の中からこのスクリプトをお勧めする理由は、
- その効果を適用するためのclass属性など、余計なHTMLを足す必要がない
- 外部リンクを別窓で開くかどうかを選択するチェックボックスを表示できる
からです。特に、チェックボックスを表示できると言うのは単にtarget="_blank"をjavascriptで置き換えるというlintでのチェックに対する抜け道的な対処ではなく、閲覧者の選択にゆだねるという点でユーザビリティ的にもいい方法ではないかと思います。
同様のスクリプトの紹介
新しいウインドウを開くべき? - LogJETで紹介されているjavascriptを用いると外部リンクのテキストの横に別窓で開くリンクのアイコンを表示させることが出来ます。テキストをクリックで同窓、アイコンをクリックで別窓表示です。
上記の方法が面倒な人にも出来る思いやり
target="_blank"は使いたいけどいちいちそんな気遣いは面倒、という場合でも一言「リンクは別窓で開きます」等の注意書きがあると親切かもしれません。
最悪な別窓の開き方
個人的にはできればサイト内のリンクは同一ウィンドウで開いて欲しいです。
意味もなく「エンター(index.html)から中に入るリンクをクリックで別窓」や、「フレームを使っているのにサイト内のコンテンツを別窓」は正直なところ全く良い印象は持てません。