Home > Latest topics

Latest topics > Firefoxの開発者にはUIの設計という事に対するポリシーが欠けている

宣伝1。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

宣伝2。Firefox Hacks Rebooted発売中。本書の1/3を使って、再起動不要なアドオンの作り方のテクニックや非同期処理の効率のいい書き方などを解説しています。既刊のFirefox 3 Hacks拡張機能開発チュートリアルと併せてどうぞ。

Firefox Hacks Rebooted ―Mozillaテクノロジ徹底活用テクニック
浅井 智也 池田 譲治 小山田 昌史 五味渕 大賀 下田 洋志 寺田 真 松澤 太郎
オライリージャパン

Firefoxの開発者にはUIの設計という事に対するポリシーが欠けている - Sep 20, 2008

タイトルは半分くらい釣り。

ごく最近入った変更によって、最後のタブを閉じると常にウィンドウ全体が閉じられる、という挙動になったらしい(Firefox 3.1では多分それがデフォルトになる)。この変更はパッチを書いたDão Gottwald氏ではなく開発責任者の一人のMike Connor氏が決めたものらしい。

この件についてMike Conner氏のマネジメント能力の不足を責めてる人もいるようだけれども、僕としては、この人はUIの設計という物にポリシーを持ってないのかなー、という失望にも似た感想を覚えた。多分SearchLoad Optionsに抱いたものと同じ感覚。

最後のタブを閉じた時にウィンドウも閉じるべきかどうかってのは、隠し設定一つで動作を変えれるような些末な問題に落とし込むべき事じゃなくて、ユーザが触れるフロントエンドとしてのFirefoxの設計思想の根幹に関わる事だと僕は思う。ユーザに「Firefoxとはどういうものか」と説明する時の、メンタルモデルの作り方をガラッと変えてしまうものだと思う。

現状のFirefoxは、「Firefoxというアプリケーションがあって、そのアプリケーションは本体はごくシンプルな機能に限られていて、その中に、タブを伴って複数ページの切り替えができるサブフレームが含まれている」というトップダウンの設計になっている。「タブ」より上位に「メニューバーやツールバーやサイドバー」が存在しており、「タブ」より下位には何も従属していない。こういう構造だからGoogle Chromeのようなマルチプロセスにはできない(するにはとても手間がかかるだろう)。ユーザには、「タブとウィンドウは異なるレイヤに存在するもの」という認識が求められる。

Google Chromeは、「タブという小型でシンプルなWebブラウザがあって、それらを便利に操作できるようにするために一つのウィンドウに押し込めている」というボトムアップの設計になっている(ように見える、そういう演出をしている)。だからマルチプロセスで当たり前だし、「タブ」の上には何も(クローズボックスくらいは付いてるけど、それ以外のタイトルバーすら)なくて、ツールバーもロケーションバーも全部「タブ」より下位の存在として位置づけられている、そういう見た目をしている。ユーザには「タブ」と「ウィンドウ」の違いを意識させないようにしている、ように見える。

ちなみにOperaはMDIのアプリケーションで、この両者の中間にあると思う。「タブ」より上位の物もたくさんあるけど、ロケーションバー等は「タブ」に従属しており下位の存在である、という作りになっている。

タブより上にツールバーがあるか、タブより下にツールバーがあるか、っていうのは、単にバーの置き場所を上下に移動させればいいっていう話じゃないんですよ。フラットな「並び順の問題」じゃなく、縦の「主従関係」なんです、これは。

多分だけど、今回入った変更のような動作が許されるのは、「タブより下にツールバーがあるデザイン」のアプリケーションだけだ。タブより上位に何もないんだから、タブが閉じられたら後には何も残らないのが当たり前だ。

Firefoxの場合はそうではない。タブより外側に沢山の物があって、それらは「自分の下位にタブが存在している」ことを前提に動作している。下位の物(タブ)を一つ消したのなら、それより上位にある物は全部そのままでいるのが当たり前だ。にもかかわらず今回の変更で、下位にあるはずのタブによってそれより上位の物全てが破棄されるようになってしまった。そこにみんなは戸惑っているし怒っているんですよ。そういう、自分の中にある無意識のメンタルモデルまで分かった上で発言してる人は、そう多くないと思うけどさあ。

Mike Conner氏は、そこまでちゃんと分かった上で発言してたのかな? 自分が下した決定が、ユーザの心の中にあるメンタルモデルやそれまで動作していたアプリケーションの設計全ての前提を覆す物だって気がついていたのかな? 多分気付いてないよ。「ちょこっと動作を変えるだけ」そう考えてたんだろう。それが僕には、ポリシーがない無節操な行動に見える。

余談。冒頭で「半分は釣り」と書いたのは、これとは違うレイヤでFirefoxの設計にはポリシーがあるという事も知っているから。彼らは何でもかんでも中に取り込むのではなく、本体はシンプルに保ってそれ以外の要求はアドオンで解決する、というポリシーで開発を行っている(ように見える)。そのポリシーを今後も貫いていて欲しい。ただ、それは「Firefoxというプログラム」の設計ポリシーの話であって、「FirefoxというUI」の設計ポリシーじゃない。それとこれとは問題が別。ここまでタラタラと書いたこと、具体的な「FirefoxというUI」の設計に関して何もポリシーがないと、ユーザや開発者を振り回すことになる。そこのところをどうして彼らは分からないんだろう、という嘆きにも似た感情を、開発者主体で動いているオープンソースのプロジェクトというものについて感じることが僕にはたまにある。

追記。「(過去の)FirefoxとGoogle Chromeの動作(UIの設計思想)のどっちが素晴らしいか」ということについては、僕は考えないことにしてる。どっちにも一長一短がある以上、こういうのは刷り込みと慣れの問題でしかないと思うから。Mac OS伝統の「画面上端にメニューバー」とWindowsやGNOMEやKDEの「ウィンドウごとにメニューバー」のどっちが優れてるのか、というのと似たような話です。あくまで、UIとして(上記のような設計思想・メンタルモデルの面で)一貫性が保たれてないのはそれ以前の問題だ、というのがこのエントリの要旨ってことで。

さらに追記。前の動作に戻す隠し設定が欲しいというバグで中野さんが「初めて最後のタブを閉じようとした時に確認するのがいいんじゃないか」という提案をされている。選択肢をユーザにわざわざ見せるのは良くない、ユーザの理解を妨げる事は徹底して隠すべき、という人もいるだろうし、UIと動作と設計の整合性がとれてるなら僕もそれに同意だけど、現状のUIも動作も設計も全部がバラバラでちぐはぐな状況では、選択を求める方がまだナンボかマシだと僕は思う。ので、賛同コメントを付けてみた。まあ、コード書ける奴が正義のこの世界では、グダグダ評論家じみたことを書き連ねたり嫌味なコメントを残したりするより、とっととパッチ書いてIRCで担当者捕まえてねじ込む方が、実効性は高いと思うんですけどね……

またまた追記。くでんさんのコメントを読んだ後で思ったけど、上で書いた「疑い」とはむしろ逆で、Mike Conner氏は「Google Chromeのようなアプリケーションを元々作りたかったし、その信念に基づいて提案しただけ」なのかもしれないなあ。だから今回の変更も氏にとっては「本来そうあるべき姿に戻そうとしているのだから当然のこと」という感じなのかも。だとしても、できれば、行動を起こす前に「そういう理想はさておき、現状はどうなってるのか?」という所に先に目を向けて欲しかったとは思う。

22日追記。結局、「最後のタブを閉じた時にウィンドウを閉じない」隠し設定を付けるという、件のバグの表題通りの解決策についてはチェックインされて、それで解決ということになったようだ。でもって、他の文句は新しいバグ立てて述べなさいという仲裁も入った。Bugzilla的にはごく自然な流れ。にもかかわらず流れ読まずについ最後っ屁コメントを残してまた議論を蒸し返してしまった僕は、マヌケな悪役もいいとこですね。

分類:Mozilla > Firefox, , , , , 時刻:12:08 | Comments/Trackbacks (5) | Edit

Comments/Trackbacks

no title

- このパッチの元になったパッチはFirefox 3のリリース前に一度入っている。そのときは「他のタブを閉じる」の挙動のバグの修正とかもパッチに含まれていた。
- このときは、タブバーを初期設定で表示するようにしたんで、ブラウザウィンドウの起動速度が低下した。そしてパッチは外された。
- だから例のPiroさんが憤られてた「タブバーの構造の整理(シンプル化)」が行われた。
- 元々バグを登録した人は「他のブラウザみたくタブバーを常に表示する設定にして、『新しいタブ』ボタンを初期設定でどこかに表示するようにして欲しい」だった。
- それを現在のFirefoxの開発畑の責任者のマイク・コナーさんがなぜか「タブバーを常に表示する設定にして、ブラウザウィンドウ内にタブが1枚しかない場合にタブを閉じる操作をしたら、そのブラウザウィンドウは閉じるように」に変えた。
- このFirefox 1.5までやMozilla Suiteみたいな挙動をマイク・コナーさんやBen Goodgerさんなんかは好きみたい。ただ、いわゆるblank lastな挙動のパッチが入るときにBen Goodgerさんは「この挙動は好きじゃない」とコメントしてたけど強引にWONTFIX(修正を望まない)にはしなかった。
- どうも現在のFirefoxの開発者には、以前のBen Goodgerさんのようにユーザーインターフェイスについてちゃんと独自の考えがあって、自分の考えにそぐわない実装はさせない/止める/変えさせるという、一つのアプリケーションとしてのユーザーインターフェイスを統括してる人はいないように思える。
- だから悪い意味でパッチを書いたもの勝ちになっている。Ctrl+TabパネルやAll Tabsパネル、ドメイン名の強調表示なんかDaoさんのパッチ群も「アイデアはおもしろいし、今より良くはなるけど、それが万人に必要かは微妙だし、なにより実装が微妙」な感じ。

Commented by くでん at 2008/09/20 (Sat) 13:03:35

no title

 現状、常時 tab を表示しない時は ctrl+w で Firefox が終了してしまいます。
 そのためにわざわざ、くだらない拡張を書くハメになってしまいました。
 新しい仕様で、タブが 1 つだけのときに、タブを close すれば、Firefox 自体が終了してしまうというのは、のりさんのページで知りました。
 せめてそういった際の挙動は、ユーザに設定させていただきたいものです。そうすれば余計な野良拡張を書かずにすんだのに。
 Mozilla Foundation には、製品を取り巻く環境まで気を配るということが欠落しているように思えます。
 こうなってくると、逆に Mozilla では余計な機能はつけなくていいから、全部拡張作者に任せてくれ、と言いたくなる。

Commented by 絶滅危惧種IA類 at 2008/09/20 (Sat) 16:46:25

no title

>くでんさん
なるほど、そういう事情があったんですね。つまりBen Goodger氏やMike Conner氏はGoogle Chromeのような物を目指していた、と(だからこそBen Goodger氏の移籍先のGoogleからああいうGoogle Chromeが出てきたって事なんでしょうけど)。
であればなおさら、なんでFirefoxをこんなにちぐはぐなものにしてしまうのか……
いや、違う。オープンソースでしがらみの結果こういうちぐはぐな物にならざるを得ないことが分かっていたから、Ben Goodger氏はMozillaを見限ったのか?

Commented by Piro at 2008/09/20 (Sat) 18:34:49

no title

そもそも、Firefox に限らず、IE も Safari も、タブまわりの挙動が分かりにくいものになっています。
といいますのも、タブとウィンドウの扱いがぐちゃぐちゃになっているからです。

タブブラウザ以前、私たちは複数のウィンドウをタスクバーを見ながら認識していました。
ウィンドウを2、3枚しか開かない使い方では十分です。
で、タブブラウザではタスクバーの代わりにタブバーを見て複数のタブを認識させます。
確かに、多数のページを把握しやすくなりました。
しかし、target="_blank"など、タブとは別に新規にウィンドウが意図せずに開かれてしまいます。
結果、目的のページを探すためにタスクバーを見ればいいのか、タブバーを見ればいいのか分からなくなります。
これでは本末転倒です。
通常利用ではタブでページ管理し、タブごとを整理したいと明確な意図を持ったときのみウィンドウを分ける挙動でないと困ります。
現状の使用では、目的のページを見失ってしまうため、祖父母の IE7 はタブを無効化しています。

最後のタブを閉じたときの挙動に関しても、タブとウィンドウの関係を把握できていない問題でしょう。
なるほど、Opera と Chrome の挙動は迷わずに使えます。

Commented by 棚旗織 at 2008/09/21 (Sun) 21:16:50

最後のタブを閉ぢるとFirefoxが終了する

今日のナイトリー - Another 朝顔日記 Latest topics > Firefoxの開発者にはUIの設計という事に対するポリシーが欠けている - outsider reflex 私がMozilla-gumi Forumで「One Message View / [Ctrl]+[w]でFirefoxを終了しない樣にしたい」と質問した後、例外的に擴張を

Trackback from 實驗日記(假) at 2008/09/23 (Tue) 16:34:14

TrackBack ping me at


の末尾に2014年1月19日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。例えば「noda」なら、「2008-09-20_tab.trackbacknoda」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

writeback message: Ready to post a comment.

2014年1月19日時点の日本の首相のファミリーネーム(ひらがなで回答)

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のつぶやき

オススメ

Mozilla Firefox ブラウザ無料ダウンロード