« テレビ番組等感想 その 312: 2010 年第 4 四半期の纏め | トップページ | Yash 2 その 206: 自前 getopt 関数の作り直し »

2011年1月 7日 (金)

新しくタブを開かないで

Back to Owner Tab はそれ自体有用なアドオンだと思うけど (特にタブをそれなりに使いこなしている人にとっては)、これはタブは target="_blank" を指定されたリンクによって勝手に開くものだという前提に立っている。しかし俺は、そもそも target="_blank" などの指定を完全に無視して絶対に新しいタブを開かないようにするという解決法はないのかと思うのだ。

初心者がタブとかウィンドウとかの扱いに長けていないのならば、勝手に新しいタブやウィンドウが開くこと自体が初心者にとって不親切だろう。勝手にタブやウィンドウを開かないという設定が、ブラウザにあってしかるべくはなかろうか。

IE も Fx も Opera も、target="_blank" が指定されたリンクを開くときにそれを新しいタブで開くか新しいウィンドウで開くかというオプションはあるんだけれども、同じタブで開くというオプションがない (Fx は about:config で browser.link.open_newwindow を 1 にするとそういう設定にできるけれども、GUI のダイアログからは設定できない)。Chrome や Safari は知らないが、どうして今のブラウザはこんな単純な設定すらできるようになっていないのだろう。

|

« テレビ番組等感想 その 312: 2010 年第 4 四半期の纏め | トップページ | Yash 2 その 206: 自前 getopt 関数の作り直し »

コメント

例えばショッピングカートなんかで、1回POSTで何か送信した直後のページで「ヘルプはこちら」のようなリンクを辿った時に、新しいウィンドウやタブではなく現在のタブでページ遷移が発生する場合、ヘルプを読み終えて「戻る」した時に問題が起こる可能性はないでしょうか?
まぁ、そういう作りのWebアプリケーションの方が悪いといえばその通りなのですけれども。

投稿: Piro | 2011年1月 7日 (金) 16時08分

ヘルプのページから「戻る」をしたときにもう一度 POST が送信されて二重に手続きがされてしまうかもしれないという話ですね。しかし同様のシナリオは、POST 送信後のページでうっかり F5 を押してしまったときや、あるいはそもそもフォームを送信するときにサーバのレスポンスが遅くて何度も送信ボタンを押してしまうようなケースでも発生するので、これだけのために target=_blank を無視するオプションを用意しないというのはやっぱり何か違う気がします。

投稿: まじかんと | 2011年1月 7日 (金) 21時06分

それは黎明期のウェブとオールインワン指向ブラウザ時代につくられた不良債権のようなものではないかと。

「初心者にとって不親切」な状態にしているのはサイト側です。
積極的にブラウザ側で補助してしまうと、サイト側はその不適切さを知る機会を失います。

ブラウザ側にとっては「他人の尻を拭く」機能と言えます。
そういった機能は、必要とする人だけが、拡張機能などを通じて導入できれば十分だと考えます。

初心者ユーザにとってはtarget=_blankを経験する機会が奪われます。
良くも悪くも「こういう機能がある」ことを見せる。
その上でサイトに改善を求めるか、拡張機能などで補助するか、ありのまま受け入れるかの判断を仰ぐべきだと考えます。

投稿: とおりすがり | 2011年1月 9日 (日) 15時33分

いや別に、全てのブラウザは target=_blank をすべからく無視すべし、とは言っていません。ただ、そういうオプションが簡単に設定できるようになっていないという現状を嘆いているだけで。

あと、「良くも悪くも「こういう機能がある」ことを見せる」というのはなかなか難しいところで、特に機械音痴な初心者ユーザの中にはそもそも新しくタブ・ウィンドウが開いたことに気付かない、つまり何が起こっているのか把握できていない人が少なからずいて、そういう人たちには現状の不便さを理解させること以前に解決すべき問題があるのですよ。

投稿: まじかんと | 2011年1月 9日 (日) 20時53分

わざわざ初心者向けにそういう機能を載せたのであればデフォルトで有効にしますよね。
それは「全てのブラウザは target=_blank をすべからく無視すべし」とほぼ同義になるのでは。

何が起こっているのか把握できない人がいるのであれば、設計者が行うべきは機能を制限することではなく、より明確なフィードバックの提供だと考えます。

投稿: とおりすがり | 2011年1月 9日 (日) 23時19分

別に私は target=_blank を無視する機能がデフォルトで有効であるべきかどうかなんてあまり気にしていないのですが。

そういう機能が仮にデフォルトで有効だったとして、なぜそれが「「全てのブラウザは target=_blank をすべからく無視すべし」とほぼ同義になる」のでしょうか。また、仮にそれが「ほぼ同義」であったとして、「完全に同義」ではなく「ほぼ同義」であることに何か問題があるでしょうか。
新しいタブ・ウィンドウが開く方が良いと思うユーザは、そういう設定にするでしょうから、別に全てのブラウザが target=_blank を無視するようになるというわけではないと思いますが。

何が起こっているのか把握できない人のために、より解りやすいフィードバックを与えるというのも、一つの解決策ではあります。しかしそれは設計者が作ったものを利用者が与えられるがままに受け容れることを強制するという点では変わりありません。

何がそもそも問題かといえば、ユーザが自分の思い通りにブラウジングを進めることができないのが問題なのです。だから、ユーザが思い通りにブラウザを操れるように、こういう機能があってもいいよねと私は言っているのです。

投稿: まじかんと | 2011年1月 9日 (日) 23時58分

カスタマイズが簡単にできるようにしておけということですね。
そのとおりです。
それを隠すのはまさしく誰得?です。
Chromeは動作は速いんでしょうが、ブックマークの扱いは面倒で、カスタマイズがやりにくい。
だから使いたくはないブラウザになります。

投稿: | 2011年1月15日 (土) 01時52分

そういえば、browser.link.open_newwindowを「1」にすると、target属性のあるリンクでも現在のタブで開かれるようになりますよ。
今のFirefoxの設定UIだと、この設定項目はチェックボックスになっていて「3(新規タブで開く)」と「2(新規ウィンドウで開く)」をトグルするだけなのですが、about:configを使えばそれ以外の値に設定できます。

過去にこの機能が実装された時には設定UIが無かったのですが、設定UIを設けるにあたって「現在のタブで開く」という選択肢が敢えて除外された理由を調べてみたくて、ソースの履歴を追ってみました。
すると、Firefox 1.0以前の設定ダイアログには3つの選択肢があったようですが、
http://mxr.mozilla.org/mozilla1.8/source/xpfe/components/prefwindow/resources/content/pref-tabs.xul#96
Firefox 2で今のprefwindowベースの設定ダイアログにリニューアルされた時に、故意に「現在のタブで開く」の選択肢がドロップされた模様です。
https://bugzilla.mozilla.org/show_bug.cgi?id=274712
コメントを簡単に眺めた限り、何故この時点でその選択肢が消えたのかについての説明を見つけることは自分にはできませんでした。

その後ラジオボタンからチェックボックスに変更された時の議論には、ここに書かれているのと同じような話がありました。
https://bugzilla.mozilla.org/show_bug.cgi?id=324164#c32
https://bugzilla.mozilla.org/show_bug.cgi?id=324164#c37
その議論の果てに「現在のタブで開く」という選択肢を増やすのではなく「新規タブか新規ウィンドウか」のトグル式(チェックボックス)にした、ということで、このバグのコメントを読めば当時の判断が分かるのではないかという気がします。

投稿: Piro | 2011年2月 4日 (金) 11時18分

前言撤回となってしまいますが、browser.link.open_newwindowを「1」にするのは弊害が大きいのでやらない方がよさそうです。
http://piro.sakura.ne.jp/latest/blosxom/mozilla/firefox/2011-02-04_prevent-new-tab.htm

投稿: Piro | 2011年2月 4日 (金) 13時17分

今改めて読み返してみたら、隠し設定については本文で既に言及されていましたね。
蛇足すみませんでした。

投稿: Piro | 2011年2月 4日 (金) 16時18分

> 蛇足すみませんでした
いえいえお気になさらず。

しかし Fx は議論の中身が外から見えるようになっていていいですね。プロプライエタリなのは議論が外から見えなくて、設計上の判断理由とか、そもそもちゃんと議論したのかどうかとかもあまりよく分からないですからね。過去の議論の調査、お疲れ様でした。

投稿: まじかんと | 2011年2月 4日 (金) 21時23分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 新しくタブを開かないで:

« テレビ番組等感想 その 312: 2010 年第 4 四半期の纏め | トップページ | Yash 2 その 206: 自前 getopt 関数の作り直し »