モード
modes
モードがあるとは、同一の
ジェスチャが異なるコンテキストや状態によって、異なる動作や結果を引き起こすこと
e.g. 同じ「エンターを押す」というジェスチャも、モードによって「改行」や「決定」という意味に変わる
逆に、同一のモード内であれば、同一のジェスチャの解釈が一定である
モードの定義 ref

インターフェースがモードを持つのは、
①インターフェースの現在の状態が
注意の所在となっておらず
②その
ジェスチャに対して複数の異なった応答がインターフェースによって実行される場合
同じジェスチャであっても、注意の所在の如何によってモードがあったりなかったりするということ

インターフェース全体からモードをなくすためには、全てのジェスチャからモードを無くす必要がある
モードの問題

2章でモードの話の前提が説明されている
モードは
習慣的動作に対して予測できない影響を与える
同じジェスチャが異なる解釈をされると習慣とぶつかる
e.g. アクセルブレーキ反転モードがあると、子供が飛び出てきた場合に、反射的にアクセルを踏んでしまう
interfaceにモードがある場合、現在の状態を取得する手段が必要になる
(state,action)
で解釈が決まるわけだから

モードがなければ state
に依らず、同一の action
が同一の解釈をできる
ユーザの行動を制限してしまう
注意を惹くことはできるが、ユーザの行動を制限するのは良くない
各自でconfigとかuser preferencesを決められるやつ
同じサービスで別の設定になっているものを触ると困惑する
同じアクションをしてるのに全く別の解釈がされる
まあ設定するの面倒だしな
そもそも、その対象への理解がないと変換のしようもない
使い方に加えて設定の仕方も学ばないといけない
インターフェースを設計するのは、デザイナの仕事であってユーザの仕事ではない
モードに依る間違いを最小化する
モードを持たせない
これが最も有効
モードの違いを区別できるように明示する
モードごとにコマンドが重ならないようにする
例えば、モードAでの「確定」コマンドのジェスチャが、モードBの「削除」と同じだと困る
これは間違いによって起きる問題の影響を低減はできるが、間違いの数自体は減らせない
モーダルダイアログの本来の意図は、エラーなどの、ユーザーの行動が即、求められるシステムの状態を警告することだった
そうすることで、エラーの修正のためにユーザの行動を遮ることができる