Mozilla Flux

Mozilla関係の情報に特化したブログです。

UbiquityはFirefoxの一部となれるか

いまだ実験的なアドオンにもかかわらず、20万人以上のアクティブユーザーがいるというUbiquity。将来Firefox 3.2に統合されるのではないかとの観測もあり、注目が集まっている。

つい最近、Ubiquity開発者のAza Raskin氏が、どのような形でこれをFirefoxに組み込めるか、アイデアを披露した。そこでのコンセプトは三つ。

  1. 新しいワークフローを強制しない
  2. ローカライズ可能でなければならない
  3. Firefox的であるべき

Ubiquityは、もともとFirefoxにコマンドライン型のユーザーインターフェイス(UI)を加え、キーボードから入力された自然言語的な命令に基づき、さまざまな処理を行っていくプログラムだ。これをそのままFirefoxにデフォルト機能として組み込むと、ユーザーはキーボードを使用しない限りこの機能を利用できず、Firefoxの操作体系とうまくマッチしない。また、肝心のコマンドをどうやって各言語に対応させるかの問題もある。ちなみに、これらの点はつとに指摘されているところだ。

操作体系の問題に関しては、Ubiquityの長所を生かしつつ、いかに自然な形でFirefoxのUIに溶け込ませるかが統合の鍵になる。ここで、二つの方向性が存在する。ユーザーがキーボードを打つ場面でUbiquityも利用できるようにするか、逆にUbiquityをマウスに対応させるかだ。提案された四つのデザインのうち、三つはスマートロケーションバーにUbiquityを組み込むもので、方向性としては前者。残り一つがUbiquityをマウスベースで操作するもので、後者の方向性になる。具体的には、以下のようなデザイン案だ。

デザイン1

第一案は、ロケーションバーの履歴一覧にコマンドボタンを付加し、ユーザーがボタンを選択したときは、サイト識別ボタンが変化して、バー内に入力すべき内容が薄い文字で表示されるというもの。コマンドは、入力時期や頻度を基準に並ぶ。結果はページではなく、候補一覧の画面に反映される。

問題は、通常のロケーションバーにどうやって戻るか。また、ボタンにコマンド名を使うとすると翻訳が必要になるし、複数のコマンドを組み合わせる方法も未定だ。

デザイン2

第二案は第一案と似ているが、選択されたコマンドは、サイト識別ボタンの右隣に表示される。Firefoxとの一体感は多少損なわれるが、文字を削除する要領でボタンを削除すれば、通常のロケーションバーに戻ることができる。その他の点では第一案と同じ問題を抱えている。

デザイン3

第三案では、ロケーションバーの候補一覧の隣にコマンドの一覧を表示する。目的となる言葉を入力してから、対応する処理を選択できるメリットがある。また、仕様次第では検索バーが不要になるかもしれない。

問題は、一覧表示できるコマンド数が限られているのに、ユーザーが入力した文字でコマンドを絞り込めないことだろう。Ubiquityの特長の一つは、多様で拡張可能なコマンド群にある。それをうまく扱えないのでは、優れたUIとはいえない。

デザイン4

最後の第四案は、Ubiquityをマウスで操作可能にするものだ。Aza Raskin氏の解説によれば、Firefox Mobile(Fennec)のUIを参照したという。

ページ内で語句を選択すると、"badge"(バッジ)と呼ばれるアイコンがカーソル付近に表示され、これをクリックするとページが左にスライドしてUbiquityペインが現れる仕組みだ。Ubiquityペインは、上からコマンド入力領域、プレビュー領域、コマンド選択領域(他のコマンドの一覧)で構成される(上記解説の動画参照)。

この手法には、選択すべき語句がページ内にないとUbiquityを自然に起動できないという難点がある。また、Ubiquityペインの配置(形式・内容)をどうするかも課題として残る。

まだまだ長い道のり

いずれの案も一長一短あり、最終的にどの方向に進んでもおかしくない。また、誤解のないように言っておくと、仮に案がまとまったとしても、実際にFirefoxに統合されるかどうかは、Firefox本体の開発者会議で決定される事柄だ。その際、いかにUIが洗練されたものであっても、パフォーマンスに悪影響を及ぼすようならOKは出ないだろう。なお、今のところFirefoxの主要開発者の中にこの統合をプッシュする人はいない。

ただ、Firefox 3.2で統合されなかったとしても、UI一体化型のUbiquity、つまり一種の派生バージョンが、Mozilla Add-onsに正式なアドオンとして登録されることは大いにありそうだ。