フィッツの法則

GUI定量的な評価手法であるフィッツの法則(Fitts's Law)について。この日記でGUIというと、rioとかacmeの話になるが、今日はもっと普遍的な話をしたいと思う。

フィッツの法則が提唱されたのは1954年で、GUIというかコンピュータとも関係のない、人間工学におけるマンマシーンインタフェースの分野であった。オリジナルの法則は1次元を対象にしているが、2次元に拡張された法則は次の通りになる。

T = a + b log_2(1 + D/W)

Tが動作の平均完了時間であり、Dがターゲットまでの距離、Wがターゲットの幅である。a、bはユーザの習熟度やデバイスによって変わる定数である。

この法則から導けるのは、ターゲットが大きくて、そこまでの距離が短ければクリックしやすいというもの。まぁ、直感的だね。これを基にもっともクリックしやすい場所を考えてみると、無限の大きさ、そして移動距離ゼロの場所となる。そんな場所ディスプレイ上に存在する?

答えは、前者はディスプレイの端で、Mac OSのメニューバーや、Windowsのスタートボタンがそこに配置されている根拠となっている(はず)。一方、後者はコンテキストメニュー。右クリックすれば画面のどこにあっても表示されるので、移動距離はゼロである。これは便利で、Mac OSコンテキストメニューを後付けしたけど、X-Windowは昔から3ボタンで似たようなアイデアを採用していた。

で、なんで今さらこんなことを書いているかというと、ずっとMac OSのメニューバーに関する疑問が心の中にあったから。メニューバーを含めたMac OSGUIは、オリジナルの9インチのディスプレイ用に設計されたものだ。ディスプレイが小さい間はポインタの移動量が少なく使いやすいけど、大画面になるとポインタの移動量が大きくなって操作感が破綻するのではと思い続けていた。だからといってショートカットを使うのも負けな気がしていた。と言いつつ当時はMacユーザではなかったが。

今、日常的に27インチのシネマディスプレイを使っているけど、そんなに違和感はない。その理由はフィッツの法則にあったのかなと、「プロダクティブ・プログラマ」を眺めつつ思った。

(追記:2011-05-07)Ubuntu 11.04から標準になったUnityもMac OSみたいにメニュバーに各ウィンドウのメニューバーが画面上部に一元化される(グローバルメニューと呼ぶらしい)。VMWare Fusion上では3Dアクセラレーションを有効にしてもUnityが実行できないので、Unity-2Dを入れて使っているところ。

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)