dddで Microsoft のアプリで採用されているリボンメニューについて使いにくい理由を考えた。その時に思いついたことを書き加えたい。
「脳はすすんでだまされたがる」「超常現象の科学 なぜ人は幽霊が見えるのか」で学んだ通り、生物は最も少ないコストで目的を達成するように活動する(活動というのは物理的な活動だけではなく、知覚、認知、理解、記憶といった無意識の脳活動も含む)。
工具などの取り扱いの基本は「使ったら元の場所に片付ける」だ。工具をその時々で置く場所が異なっていると、使う度に工具を探さなければならなくなり、工具を片付けるコストを上回ってしまうからだ。これは、実体験でもよく分かる。職人さんは自分の仕事場でまごつかずに多くの道具を使い分けるときもその場所を記憶していてほとんど無意識のうちに道具を使い分ける。UI でも同じ。UIの顕著な例がキーボード配列だろう。タッチタイプができると入力効率が上がるのはキーの位置を探さなくていいからだ。「キーの位置が変わらないから覚えられるし、覚えたら見なくても操作できるようになる」。
つまり、「置く場所」を固定し記憶してしまえば、探す・見つける・判断するといった作業が不要になるのだ。そして、その状態に達したことを「使いこなせるようになった」とか「マスターした」という。
このことは、GUIにもいえる。決められた場所に決められたメニューアイテムがあるということは、使用する際に一々画面上に表示されるオブジェクトやテキストを読む必要が無くなるということなのだ。自分は目が悪くて(近眼の上に最近は老眼まで入ってきた)細かい文字を読むのは得意ではない。しかし、他の人が「パソコン使っていると目が疲れる」ということがあまりない。これは、画面を見る時に目を凝らして読んでいないからだと思っている。
使い慣れたアプリなら、キーボードショートカットや、「ポップアップメニューを出してD」とか「XXメニューの3行目」とかを覚えているからメニューを読む必要がないのだ。テキスト入力の時にはインサーションポインタと変換候補に集中していればいい(キーボードを見ないのは当然だ)。
これらは全て脳の省エネ術になる。使い慣れた環境だと疲れないのは、一つ一つの操作の際に画面を眺めて何かを探したり読んで判断したりしなくてもいいからだ。リボンUIは今の状態を意識し、理解したうえで、意味を考えてタブを選び、機能を読んで、解釈し、選ぶときに効果的に作られているのだ。だから、手抜きができないのだ。アクティブにしている対象によって勝手にコロコロとメニューが変わってしまうので、一々リボンの状態を確認しなければならないのも、手抜きを許さない仕様といえる。
リボンメニューがよく考えられていて、理論的に整然としているとか説明が書いてあって親切というのは業務で使っている人間にはあまり重要ではない。使う機能なんて限られている試行錯誤も仕事の内だ。そして、一度覚えてしまえば無意識のうちに使えるようになる。重要なのは「見て、読んで、考えて、判断する」という高いコストを強いるからだ。
ここからは実用的な話になるが、リボンメニューには使わない機能が多い。使う機能だけ集めたら一つのメニューに並べることが十分にできる。例えば、グラフでも最初からグラフの種類を選ぶ必要はない。従来のように対象セルを選んでグラフ作成ボタンを出してから選択すれば充分。どうせ、オプションを触るんだからリボン状にグラフの種類別にボタンを並べる意味はほとんどない。スペース効率が悪いのだ。
先のエントリで書いたように、大きなモニタであれば神経質にならなくてもいいかもしれないが、ワイド画面化の流れのために上下幅はのびなやんでいる。そんな時に固定的に密度の低いメニューを並べるというのが間違いだ。
リボンはようやく慣れてはきましたが、使いやすいと思ったことは1度もないですねぇ。
2003以前のインターフェースの場合、プルダウンメニューに機能が整然と並んでいるため、探すのが非常に楽です。リボンの場合、アイコンが上部広範囲に広がって乱雑に並ぶ為、マウスの移動距離が長く、目で追うのが疲れるのと、あまり使わない機能を探すのにヘルプやネット検索する必要があり、非常に手間がかかってしまいます。慣れればリボンの方が使いやすいと聞きますが、そんなにオフィスばかり使わないので、機能を探しやすい方が良いです。
ほんとにいまだにそう思います。
MSはビジネスを作るためとは言え、なんだかなぁです。