December 23, 2008
リンククリックの際に別窓を開く挙動になってるtarget="_blank"は、W3C的には、よろしくない方向らしい。
HTML / XHTML Strictではtarget属性が定義されていないとのこと。
target="_blank"は非推奨? | Web標準Blog | ミツエーリンクス
HTMLの仕様書では、center要素やfont要素などの文書内容を意味づけするものではなく、見栄えを表現する要素や属性が「非推奨 (deprecated)」と定義されています。しかしtarget="_blank"の場合は、この「非推奨」とはなっていません。ただし、HTML 4.0 やXHTML 1.0のStrict文書型では、target属性が定義されていないため利用できません。このためtarget属性を用いる場合は、Transitional文書型を選択する必要があります。
ふーん。W3Cが何故そうなってるのかはわからないが、_blankは便利だ。
今日は、安部礼司の7時間スペシャルで、3月の結婚式イベントに2時間電話をかけてみたり、いいのす君の失恋が予想通り過ぎて、なんかもやもやしてみたり、全く動かぬまま一日が終わろうとしているが、手持ちぶさたなので、ラジオを聞きながらwikipediaで安部礼司を見つつ、俳優さんの素顔などを見るために、リラックスしたスタイルでネットサーフィン(死語)をしているのだが、wikipediaから外部リンクへの動線が_blankではないため、ついつい俳優さんのブログページを×で閉じてしまい、何度もgoogle検索からwikipediaに辿るという流れを繰り返している。
なんで_blankじゃないんだ!!と思うのだが、wikipediaが故に、_blankは使わないようになってるんじゃないかと思うわけだが、面倒くさい。(wikipediaが選択しているXHTMLはtransitionalなので別に問題ないので別の話なのかも)
そこで思ったのだが、targetについての議論はユーザーの選択肢を狭めるから悪という理屈だそうだが、別にそんな大げさな話にするんじゃなくて、
_blankはページ制作者が「このリンクは別窓で開いて「欲しい」」という表現方法の一つにして、実際の挙動は実装依存にできないものなのだろうか。
現状の_blankは、リンク先ドキュメントとの関係性を示すと思われる。別のドメインのWebサイトや、そのページに対するヘルプコンテンツや、サイトユーザビリティ上の都合から別ウインドウをあえて開きたいことがある。
(正直言って、target=_blankってナンダソレ?とは思うが、現状それしかないなら仕方ない。)
過剰な別ウインドウはユーザビリティにもPV(回遊数)にもよくないと思うので、プロであれば無駄に使いたいわけではない。PV重視で、同一サイトであればリンク先で回遊させることを意識すれば良い。
僕の使ってるMacBook Proは一つボタンのMacなので、右クリックは利用するのにコストがかかる。戻るボタンよりタブブラウザの×ボタンをクリックする方がコストがかからないので、ついつい閉じてしまうのだが、まぁそういうワガママくさい言い分はさておいても、
単純にXHTML Strictからtarget属性をなくしたら、ドキュメント間の関係性という意思表示すらできなくなってしまう。それが幸せだとは思わないんだよな。
中庸な選択肢としては、target=_blank(もしくはページ間の関係を示す属性を新設するなどして)に対する挙動を、
1.つねに同一ウインドウで開く
2.つねに別ウインドウ(別タブ)で開く
3.リンクする前に、挙動をオーバーレイされる選択窓で選択できる
これが設定で選択できるようになっていれば、ザッピング感覚の操作感を維持したまま快適にブラウジングできるのだが。デフォルトはどうでも良いです。
あんまり面倒な属性が増えてくのは、HTMLがややこしくなってくだけだから、今のままでなんとかならないのかなぁとは思うが。
別に現時点でも3ボタンマウスの真ん中クリックというユーザの選択肢がありますよね。そもそも、target属性がなければ完全にユーザ意思で使えますが、target属性が存在することで、ユーザの意思を無視できるわけですよ。それらをすべてブラウザ側に実装しろとはいえないでしょ。
僕はtarget属性など死滅してくれればいいとおもっていて、「真ん中クリック→_blankの動作」で十分だと思います。
ごめんなさい。あんまり意味が理解できません。
文章にも書いたとおり、よろしくない動きは結局ユーザーにとっても作る側にもうれしくない(PVが下がります)ので、それがあるべき姿であるなら、別窓開いたって良いじゃないですか。それに問題がある意味があまりわからない。
ドキュメントを一番見やすい形で制御したい事に対して、何故、そういう自由度感があるべき姿として前面に出てくるのがどうしてもよくわからないです。
(Webサイトってページ単位じゃないと思うんですよね。)
あと僕のマシンにはボタンが一つしかないのですが、まぁそれは置いておいて、
そもそも3ボタンの真ん中が別窓ってのが第三の選択肢として、さも当たり前のように言われるのもよくわからないです。そんなの知らないし。3ボタンマウスってUnixのマウスですか?
僕の感覚ではwindowsにせよMacにせよマウスの標準は最大2ボタンで、それ以上はマウス依存のオマケという感覚しかありません。僕が無知なだけなんでしょうが。
wikipediaは外部リンクの制御が謙虚で、関連リンクの外部サイトが同一ページ遷移なんですよ。
いやwikipediaの方が情報量が多くて重要なんだから、関連リンクは外で開かせてwikipediaは生き残っておいてよって思うわけなんですが、まぁそうなってない。
もしここに意図的な問題があるとすると、target="_blank"でしか、リンクの関係性を制御に使う方法がなくて、密結合になっているのが最大の問題、ということなんじゃないかと。
結局、その不自由な環境化の勢力争いに過ぎないのではないかと。
リンクの関係性がもし記述できて、
・同一サイト内の従属ページ
・自分とは直接的に無関係の外部サイト
などの関係性が記述できて、かつ、その制御方法を選べるブラウザがあれば良いのに、ということ。
(もちろん全部のブラウザがそれに対応する必要はありません。できる奴もあればできない奴もあって良い。)
「このリンクが外部窓か否かがわからないのが問題」、という指摘があるようなんですが、targetをなくしたらなくしたで、「そのリンクが制作者の心情として、外窓で開くべきことが推奨される場合」もわからなくなるんですよね。
(ところでrelの考え方ってドキュメント単位っぽくね?サイト単位の考え方ってそもそもHTMLにはないのかな。)
> HTML 4.0 やXHTML 1.0のStrict文書型では、target属性が定義されていない
> wikipediaが選択しているXHTMLはtransitionalなので別に問題ないので別の話なのかも
リンク先の表現があいまいなようですが、target属性は"HTML4.0 Strict"と"XHTMLのFramesetを除く全てのDTD"で廃止です。Framesetでもbase要素においてのみ許可されています。
ミツエーリンクス、この前セミナーに行ったばかりだw
最近のマウスだとホイールつきマウスのホイール部分が3つ目のボタンになっているので世の中のほとんどのマウスが3ボタンマウスだったりします。
僕もホイールクリック(ノートではCtrl+クリック)で意識的に別窓を開いていたりするのでtarget属性は別になくても良いと思ってます。
それよりmixiの写真のリンクがjavascript:で書かれている方が気になります(ホイールクリックで見れない)