at posts/single.html

いまさらながら target="_blank" について

F's Garage:target="_blank"問題より。

僕のMTは、リンクを貼るときにtarget="_blank"を自動で入れるようにしています。

僕はタブブラウザを使うようになってから、 _blank が付いているサイトがあってもそんなに気にならなくなった。 だから個人的にはどっちでもいい話。でも、せっかくだから少し客観的に考えてみよう。 先に結論を書いておくと、「W3C準拠とかには関係なく、デフォルトでは _blank を指定しないほうが良い。 _blank を指定するのは訪問者の大部分が幸せになれると確信できるときに限る」という結論になった。

以下、結論に至るまでの道のり。

何かを実現するのに「これこれこういう操作をすればいいじゃん」というのは、スキルのある人から、スキルのない人に向けて言うのは、そもそも間違っていると思っていて、スキルのある人が譲ってあげた方が世界は平和になれます。

これは同意。 なので問題は、スキルの有無に関係なく _blank が一般的に有用かどうかになる。

いかんせん_blankには好き嫌いが絡んでいるようにしか見えず、既にリリース済み、かつ普及しきっている仕様を、「選択の自由度が云々」とか言う理由で、なくすってのは違うような気がする。

裏は取ってないけど、 _blank が非推奨になっているのは「選択の自由度」が理由じゃなくて、使い勝手(アクセシビリティ)を損ねるからのはず。 target属性の利便性 (kuruman.org > 駄的HTML改善計画)には以下のように書かれている。

これは新しいウィンドウを開くという動作がアクセシビリティに影響を与える事を明言しています。target属性でそれを実現していようがスクリプトによって実現していようがアクセシビリティを損ねることに変わりないのです。

具体的に _blank が付いていて嬉しいときと嬉しくないときを考えてみた。

嬉しいとき

  • そのページを起点にして多くのページを開きたいとき。リンク集とか検索結果とか。
  • そのページの内容と次のページの内容を同時に見比べたいとき。

嬉しくないとき

  • そのページからリンクが一つしか張られていないとき。閉じるのが面倒。
  • 新しいページからそのページに戻れないとき。

僕は、一般的に「嬉しいとき」よりも「嬉しくないとき」のほうが多いんじゃないかと思ってる。 理由は以下の通り。

  1. パソコンに慣れていない人は、ウインドウが複数開くのに慣れていない(パソコン以外の家電やゲーム機はシングルウインドウ)。
  2. 「戻る」ボタンで前のページに戻れなくなる。「戻る」ボタンより「閉じる」ボタンの方が押しにくい。
  3. IEを常に最大化で使っている人は、新しく開いたウインドウをいちいち最大化しないといけない。
  4. 利用者が見る大部分のページは「基点になるページ」ではなく「通過するページ」になる。

使いやすさを考えてみる。(アクティブシニア・シルバー層の現場から): 別ウィンドウは何故いけないのかにも同じようなことが書いてあった。

1)別ウィンドウが開いたことに気づかない

2)マルチウィンドウの概念がない。

3)×がどのウィンドウに所属しているかの概念が薄い

スキルの無い人(Shift + クリックを知らない人)のことを考えるのであれば、同じウインドウで開いた方がいいし、スキルがある人のことを考えるのであれば、選択の余地を残しておいた方がいい。

まあ、極端に「全てのリンク*1が新しいウインドウで開く世界」と「全てのリンクが 同じウインドウで開く世界」のどっちがいいかと考えてみれば、答えは出るかも。 「絶対に使うな」じゃなくて、「使うときは慎重に」、ということ。少なくともデフォルトではオフでいいんじゃないかな。

追記

この議論については、target="_blank"に関する議論 - 徒委記にリンク集があった。

関連する日記