Conscious

モードレスUIを追及していくためには、モードとは何かということについて今一度考えてみる必要があります。

Modelessness というエキセントリックな標語を使っている Apple のガイドラインをおさらいしてみます。このガイドラインはOSのバージョンアップに合わせて頻繁に改訂されているのですが、最新版を見てみると、モードレスネスについて次のように書かれています。

まず、アプリケーションはできるだけモードを持たない方がよい。これはつまり、ある操作をいつでも好きな時にできるようにしておくということです。例えば Mac では、ドロワーはウィンドウ内の要素へのアクセスを可能にしたまま表示されるダイアログだし、シートはアプリケーションに対してではなくウィンドウに対するモーダルダイアログであるように、モードをできるだけ作らないようにするコントロールが用意されていると言います。

次に、ある程度許容されるモードとして、ユーザーが意識的に作る一時的なモードというものがあり、例えばマウスダウンをキープすることでスクロールを行ったり、シフトキーを押したままにすることで連続的な選択範囲を作ることなどがあると言います。

それから、アラートのためのモーダルダイアログ(処理を一時中断することに意味がある)や、インストーラー(ユーザーにガイダンスを示すことに意味がある)も、許容されます。

最後に、現実世界の作業を模すことで生まれるモードというのがあり、例えばグラフィック編集ソフトにおける描画ツールの選択などは、理にかなったものとして許容されます。

ただしモードを作る場合は、現在のどのようなモードにあるのかと、そこから抜け出す方法が明示されていなければならないと言います。

… ということで、確かにこの説明でだいたい分かったような気がするのですが、アプリケーションの振る舞いを細かく見ていくと、モードというのはもう少しいろいろな所に発生しているようです。

前にも書いたとおり、そもそもアプリケーションというものは一種のモードと言えます。またデスクトップにおいてタスクやオブジェクトの基本単位を体現するウィンドウというものも一種のモードでしょう。また、複数のコントロールが同時に見えている時に、現在そのうちのどれにフォーカスがあるのかというのもモードです。アプリケーションにしろウィンドウにしろコントロールにしろ、ユーザーの入力ジェスチャに対してどのオブジェクトが反応するのかは、その時にどれがフォーカスされているのか、つまりモードによって決まります。操作の対象を変更するには、アプリケーションの切り替えやコントロールのフォーカス変更などを、入力ジェスチャに先立って行っておかなければならないのです。

だからモードというものを「操作が限定された状態」と定義してしまうと、このように、コンピュータの中はモードだらけということになってしまいます。

ではここで、ユーザーインターフェースにおけるモードの問題について詳しく考察している、ジェフラスキンの「ヒューメイン・インターフェース」という本を見てみます。

ラスキンはまず懐中電灯を例にあげて、トグル式インターフェースの問題を指摘します。鞄の中にある懐中電灯は現在の状態が分からないので、ボタンを押したときの動作を予測できないと言います。つまりひとつのコントロールが状況によって複数の意味を持つ時、そこには常に潜在的な問題があるということです。あるボタンのラベルがはじめは「ON」で、それを押すと「OFF」に変わるような場合も同様で、そのラベルが現在の状態を表しているのか、押したあとの状態を表しているのか、どちらにもとれてしまうのです。このようなコントロールを、アランクーパーは「フリップフロップ」と呼んで問題視しています。

ラスキンは次に、グラフィック編集ソフトにおけるツール選択の問題を指摘しています。このようなソフトの使用に慣れたユーザーは、通常のオブジェクト選択のためのポインターから、特殊なツールに持ち替えて何かの操作を行った後、もとのポインターに持ち替えるのを忘れたまま次の選択操作を行ってしまい、選択できずに戸惑うということが頻繁に発生すると言います。これは、熟練ユーザーにおいてはオブジェクト選択という操作が無意識に行われるため、モードの切り替えという付加的な手続きを意識に割り込ませることが難しいからです。また初心者においては、そもそもモード切り替えの必要性を意識できないため、同じようなミスを起こします。ポインターの形状で現在のモードが示されていたとしても、ユーザーの注意は対象オブジェクトにあるので、なかなかモードを意識できないと言うのです。

ノーマンは、モードによる間違いを最小化する方法として次の三つをあげています。

  • モードを持たない
  • モードの違いを区別できるように明示しておく
  • モード毎にコマンドが重ならないようにしておく

これに対してラスキンは、本当に有効なのはひとつめだけで、ふたつめはモードの提示がユーザーの注意の所在になければ意味がなく、みっつめはリスクを減らすことはできてもミスの数を減らすことはできない、と言っています。ただし、グラフィックソフトにおけるツール選択を、現在一般的になっている方法以外のやり方で行わせる良いアイデアは無いとして、これを許容しています。

ラスキンの結論はこうです。

「インターフェースデザインにモードを導入する場合、そのモードによって制御される状態がユーザーの注意の所在となっており、同時にそれがユーザーから可視となっているかユーザーの短期記憶に存在することを保証することによってのみ、ユーザーをモードに起因する間違いから解放できる。」

僕なりに解釈するとこれは、次のようになります。

「オブジェクト指向UIにおいて、オブジェクト選択のジェスチャが同時にモードの切り替えである場合は、モードは問題にならない」

操作対象のウィンドウやコントロールを選択するというジェスチャが「目的語 → 動詞」のシンタックスにおける目的語指定に該当する場合は、意識の所在が「今選ぼうとしているオブジェクト」にあるため、モードの切り替えは単に対象物の切り替えということ以上の意味を持たないからです。

目の前にスケッチブックと粘土があり、まずスケッチブックにモナリザを描いて、途中で作業対象を粘土に切り替えてダビデ像を作る。それはモードの切り替えでありながら、そこに混乱の余地はないのです。

This entry was posted in Uncategorized. Bookmark the permalink.

Comments are closed.