16日目:別窓を開かない

Webを使うひと誰もが理解してるもの。それは「戻る」のボタンだね。あれはWebを見てくにあたって、欠かせない動作のひとつって言える。リンク先へ飛んで、戻る。検索エンジンからどっかに飛んで、戻る。僕の親父でもこれはできる。「インターネットアイコン」を1回でうまくダブルクリックしてブラウザが立ちあげられただけではしゃぐような、あの親父でもだよ。

<a target="_blank"> タグでリンクを別窓で開かせると、ポピュラーなブラウザの全部で「戻る」ボタンが使えなくなる。新しく開かれたウインドウは、前のウインドウの履歴を覚えてないからね。だから「戻る」ボタンは押せない状態になる。これはすごくまぎらわしいと思わない?Webを10年も使ってきてるこの僕だってややこしいと思うもん。2002年にもなって、まだこんなことしてるなんて驚きだよ。もうやめよう?別窓でリンクを開けるのは。

間違えないでほしいのは、これはWebデザイナーとしての立場について言ってるだけで、Webユーザとしての立場のときは違うよ。あなたがWeb使ってるときにあなたが新しいウインドウを開きたいなら、それでいいんだ。Windows の IE で Shift キーを押しながらリンクをクリックすると別窓で開く。ネスケの 6 と Mozilla では、Control。Mac の IE なら Command。(Control + Shift + クリックで別窓を後方に開くような、もっと高度なことができる Opera みたいなブラウザもある。)つまりポイントはこういうこと。リンクを別窓で開くか同窓で開くかは、ユーザの選択肢であって、Webデザイナーが決めることじゃないってことだね。

誰がトクする?

  1. ジャッキー だね。リンクが別窓で開くとき、JAWS は「新しいウインドウです」って教えてくれるけど、やっぱりリンクテキストの読み上げと新しいページの読み上げとのあいまに音声で教えてくれるから、聞き逃しやすいよね。ホームページ・リーダー はこれよりいい方法を使ってる。新しいウインドウが開くたび、特徴ある音で知らせてくれるんだ。もうひとつ人気のある Window Eyes っていうスクリーンリーダーは、新しく開いたウインドウに対してなんにもしない。

    それに、どっちにしろ「戻る」ボタンは使えやしない。「新しいウインドウです」っていうのを聞き逃したら、ジャッキーは単純にタスクバーをチラッと見て、あぁ2つウインドウが開いてるなって確認するわけにはいかない。ショートカット INSERT+F10 を使って開いてるウインドウのリストを出すか、標準ショートカットのALT+TAB を使うかして、開いてるウインドウ全部のリストを読み上げないとならないんだ。

  2. リリアン も助かる。IE のウインドウはいつも全画面表示にしてあるし(そうすれば彼女でも見えるからね、)新しくウインドウを開けば全画面化されるように設定されてる。そのうえ Windows XP は、同じアプリケーション内の複数のウインドウをタスクバーにまとめちゃうから、新しいウインドウが開いたことを示すものはなにもないことになる。突然なんの理由もなしに「戻る」ボタンが使えなくなって、リリアンにはわけがわからない。リンクをたどったあとにも自分のサイトの残りを読んでもらおうと思ってたなら、あきらめたほうがいいね。

  3. ビル も喜ぶ。ビルのお姉さんは Mozilla がタブを使うように設定を変えておいた。ビルがタブを見て、どのウインドウを開いてるか思い出しやすいようにね。タブからタブへとスキップするのも簡単。(自慢の外付けキーボードを使って、CTRL+PAGEUPCTRL+PAGEDOWN を使ってね。)だけど、強制的に別窓で開くように指定されてるリンクは、Mozilla の新しいウインドウで開かれる。これってビルの好みのやりかたを無視してるし、それだけじゃなくて他に開いてた全部のウインドウが消えちゃったかのように見せる。新しく開いたウインドウでは、前に開いてたウインドウのタブは見えないからね。

どうしたらいい?

  1. <a target="_blank"> を使ってリンクを別窓で開かないこと。
  2. どうしてもそうしなきゃならないときには、ハッキリとその旨をユーザに知らせること。これはあんまりいい解決法とは言えない妥協案だけど、ビジネス上の「ここからは外部サイトで、うちの管轄じゃありませんよ」ってことを示すための要件で、でしかたないことが多い。例えば、CNN の「関連リンク」ページもこうしてるね。
  3. 「リンクを別窓で開く」っていうチェックボックスをつけてあるなら、初期設定ではこれを無効にしておくようにしよう。

さらなる情報源(英語)

  • Jakob Nielsen: Web デザインの間違いトップテン。「1: 「戻る」ボタンが使えなくする、または使いにくくする。2: 別窓を開く。」
  • W3C Web Accessibility Initiative: チェックポイント 10.1 の例では、どうしても別窓で開けなきゃならないリンクがあるとき、どんなふうにユーザに知らせたらいいかの例が載ってます。
  • W3C Validator メーリングリスト: 別窓でリンクを開くことについて。興味あるひとには知らせとくけど、<a> タグの target 属性は非推奨だよ。だから、HTML 4.01 Strict や XHTML 1.0 Strict、これ以降に出てくるバージョンでもWeb標準に準拠しないんで、チェッカーにひっかかる。
  • WebAIM メーリングリスト: mailto: リンクを別窓で開くmailto: リンクはだいたいメールクライアントの新しい窓で開くけど、これはアクセシビリティの問題じゃないっていうのが大多数の意見。どうしてかっていうと、これはクライアントサイドで行われる動作だから。Webベースのメールのほうが全体として見たらいいのかもしれないけどね。もちろんこのWebベースのメールのフォームがアクセシブルであるって前提だよ。Webベースのメールフォームは、メールクライアントを使える状況にないユーザ(設定のせいかもしれないし、公共の場とか環境のせいかもしれないね)のためにいい。それにJavascript 使った、アクセシブルじゃないトリックを使って迷惑メール対策をしなくても、メールアドレスを守ることができる。その反面、自分のメールクライアントがホントに好きなひともいる。慣れてるからかもしれないし、機能性(スペルチェック機能とか)のせいかもしれない。送信するメールを取っておけるからかもしれないね。どっちかが絶対って言ってるわけじゃないんだ。