target=”_blank”に関する議論 - 徒委記の内容が、なかなか興味深いです。
以前はユーザの意図に反して新しいウィンドウがぽこぽこ開のはよろしくないという考えが一般的でした。
実際、タスクバーもすぐゴチャゴチャになりますし、新しくウィンドウが開く度にいちいち表示を最大化し直すのは面倒です。
しかし最近ではタブブラウザが普及して、新しいウィンドウ(タブ)を開くリスクが減り、むしろメリットが増えています。 「戻る」ボタンでページを再表示するよりは、遷移先ページのタブを閉じるだけの方がよほどスピードも速く、ストレスを感じません。
マウスジェスチャーの「閉じる」機能などを使えば閉じる動作も楽になります。
ただ、問題は完全に解決したわけではありません。
既ウィンドウに開きたいケース
Shiftキーなどを押しながらクリックすることで、新しいタブにリンク先を開けるタブブラウザは数多くありますが、どういう訳か同じタブ内にリンク先を開くという機能は殆ど見あたりません。
このままではtarget=”_blank”によって制作者の意図を押しつけていることには変わりなく、ユーザの意図が無視されてしまいます。
target=”_blank”が世の中で一般化してしまった以上、これを無くすことは難しいですし、前述したようにその利点も大きいのでむしろ私は残すべきだと思います。
問題は、どんなに新規ウィンドウを開いた方が便利なページであったとしても、既ウィンドウでリンク先を開きたいというケースは発生してしまうということです。
そして、その機能がブラウザに実装されていません。
target=”_blank”の無効化
・・・そう、ここで本題。
target=”_blank”を無視して既ウィンドウに開く機能は、私は実装されていないと思っていたのですが、どうやらtarget=”_blank”に関する議論 - 徒委記を読むと、近いことは実現できるらしいです。(!)
それがこちら↓
Firefox 2ならプロファイルディレクトリ中のuser.jsに user_pref(”browser.link.open_newwindow”, 1); と書いておけば、リンクが全て同一ウィンドウで開くようになる。
IE(IEコンポーネントブラウザ含む)での設定方法はこちら↓
俺はユーザスタイルシートから target 属性を無効にするスクリプトを仕込んでいる。
a:active, base { behavior: expression((this.target == ‘_blank’) && (this.target = ‘_top’),this.style.behavior = ‘none’); }
- InternetExplorer5/6 for Windows
- 【ツール】→【インターネットオプション】→【ユーザー補助】→【自分のスタイルシートでドキュメントの書式を設定する】にチェックを入れる→【参照】で適用したいスタイルシートを指定する→【OK】をクリックして完了
スタイルシートで属性まで変更できるとは知りませんでした。
(*追記@2008-01-13:コメント欄で情報をいただきました。FireFoxでは、「Tab Mix Plus」というプラグインで、「リンク」→「Target属性が設定されているリンクを現在のタブに開く」にチェックを入れると、target=”_blank”が指定されたリンクでも同じウィンドウに表示できます。)
ユーザの意図・制作者の意図
クライアント側でtarget=”_blank”の無効化が出来れば、ユーザは自分の意図に沿ってページを読み進めることができます。
しかしこの場合、今度は制作者の意図が完全に無視されてしまいます。
個人的にはページの再描画時間を省くため、ブログ記事中の外部リンクなどを何も考えずクリックした場合は、新規ウィンドウに開いた方が良いと思っています。(タブブラウザの使用を前提にしてしまっているが)
私が考える最終的な理想は、Shiftキーを押しながら新しいウィンドウが開けるのと同じように、何かしらのキーを押しながらリンクをクリックすることでtarget=”_blank”が設定されている場合も既ウィンドウにページを開く機能が実装されることです。
キーを押すのが面倒なマウス派ならば、この機能をマウスの拡張ボタンに割り当てるのもいいかもしれません。
それでようやく、ユーザと制作者の両者の意図に対応できるようになるのではないでしょうか。
余談
ちなみに、target=”_blank”に関する議論 - 徒委記の一番若い日付に載っている「target=”_blank”によるリスクの軽減:メモランダム」という記事にwalkitという名前でコメントを書いているのは、実は私です。(他所では結構適当な名前でコメントさせてもらってたりします。紛らわしくて申し訳ない。)
たまたま今回まとめページを見つけて再度訪れることになり、新たに思う部分があったので記事にしてみました。
新たな情報が得られたのは、まとめページが作られていたおかげです。感謝!
追記(2007/05/22)
別ウィンドウを開くことの是非|Website Usability Info
タブブラウザを使ったりクライアントの設定をいじることができるのが、まだごく一部のユーザに限られる以上、現状では別窓を極力使わないようにすることも大切かもしれませんね。
追記(2007/06/02)
F’s Garage:target=”_blank”問題
真偽のほどは分かりませんがtarget=”_blank”非推奨に関してはXHTML 1.1 Second Editionでtarget属性が追加されるらしいとか1.1にTarget Moduleがなかったのはただ単に見落としてただけ?といううわさもあるようですよ。
いまさらながら target=”_blank” について - まちゅダイアリー
こちらも「デフォルトではオフでいい」との結論。パソコンに慣れていない人のことを考えたらやっぱりそうですね。
追記(2008/01/12)
target=”_blank”は非推奨? | Web標準Blog | ミツエーリンクス
target=”_blank”にまつわるメリット/デメリットについて分かりやすくまとめられています。Transitional文書型なら非推奨ではないということですが、target属性自体は元々フレームを指定するためのものなので当たり前と言えば当たり前か。_blankという属性値も仕様で許可されているのかな?
あるSEのつぶやき: target=_blankは非推奨という訳でもないらしい
上の記事はこちらのブログ経由で知りました。サイトを作る側としてはtarget=”_blank”の指定は悩ましい問題ですね。ただ、個人的に閲覧に関してはブラウザの進化のおかげでそこそこストレスが無くなってきたように感じます。新規タブはマウスジェスチャなどですぐに閉じられますし、FirefoxやOperaであれば「戻る」も高速です。target=”_blank”問題の解決はブラウザがキーになると思っていますが、新しいものが浸透するのに時間がかかるのが厄介です。
Comments»
記事に言及していただきありがとうございました。
作り手の視点、ユーザの視点だけでなく、ユーザが使用しているブラウザという視点も必要なんですね。
あと、FireFoxでは、「Tab Mix Plus」というプラグインで、「リンク」→「Target属性が設定されているリンクを現在のタブに開く」にチェックを入れると、target=”_blank”が指定されたリンクでも同じウィンドウに表示できますね。
Tab Mix Plus
https://addons.mozilla.org/ja/firefox/addon/1122
fnyaさん、コメントありがとうございます。
→Target属性が設定されているリンクを現在のタブに開く
ぐはっ、「Tab Mix Plus」は私も使っていたんですが気づきませんでした。(以前試してみたような気もするのですが、その時は上手く動かないと思いスルーしていたかも・・・不覚でした)
記事中にもリンクを貼っていただき恐縮です。この話題を追いかけ続けた甲斐がありました。HTMLの仕様やブラウザの対応も含め、この先どのように解決されてゆくのか楽しみですね。
[…] target="_blank"がどうしても嫌な人は使用ブラウザでJavascriptを使って無効化している人もいるようです。(target=”_blank”問題にクライアント側で対処する) […]