-
2. 簡単にする
利用方法を効率化し、目的達成までの手順と労力をできるだけ減らす。
-
7. ユーザーの主導権
システムがユーザーをコントロールするのではなく、ユーザーがシステムをコントロールできるようにする。システムの都合で強要する操作を減らす。システムの都合で一方的にユーザーの行動を制限しない。ユーザーが常に自分の意思にもとづいて選択し、作業を進められるようにする。
-
8. 直接操作
画面上のオブジェクトに直接触れて操作しているような感覚を与える。身体的な動作に追従してリアルタイムに表示を更新する(フィードバック)。逆の操作をすることで前の状態に戻せるようにする(可逆性)。
-
9. モードレス
できるだけモードをなくす。UIにおけるモードとは、ある操作の持つ意味が状況に依存して変化し、それによってユーザーに対して、現在可能な操作を限定したり、操作の順序を固定的に強制する状態のこと。UIがモードレスあれば、ユーザーは自由な順序で作業を行うことができる。
-
12. ユーザーの記憶に頼らない
システムが表示するメッセージの内容やプロパティの値などについてユーザーが覚えていることを前提にしてはいけない。参照すべき情報はそれが必要となるその場で参照できなければいけない。
-
13. コンストレイント
ユーザーの行動を意図的に制限することにより、誤操作を減らしたり有効な使い方を促したりする。例えば、ハサミはそのハンドルの形状によって持つ方向を制限して、常に刃が正しい向き(力を加えやすく、切り口も見えやすい向き)になるようにしている。
-
15. エラーを回避する
操作ミスを起こしにくくする。エラーメッセージをわかりやすく示すことも大事だが、それ以前にエラーが起きないように工夫することが重要。まぎらわしいものをはっきりと区別したり、状況的に意味のない操作はディスエーブルにするなど。
-
17. ヒックの法則
選択肢の中からひとつを選ぶ場合、選択肢の数に比例して時間がかかる。選ぶものが決まっていたとしても、選択肢が多ければその分の時間がかかる。
-
18. 複雑性保存の法則
プロセスを単純化しようとしても限界がある。この複雑性は減らせず、移動できるのみ。複雑性をできるだけユーザー側からシステム側に移動した設計にすることで操作性を高めることができる。
-
19. タスクコヒーレンス
ユーザーが、昨日行ったことを今日も行う可能性は高い。これをタスクコヒーレンスと呼ぶ。つまりユーザーが最後に行ったことを覚えているだけでユーザーの行動を正しく予測したのと同じ効果がある。
-
20. メジャーなタスクに最適化する
大多数のユーザーが行うタスクに合わせて必要な情報や機能を前面に出す。80%のユーザーは全機能の20%しか使わない(パレートの法則)。すべての要求を等しく扱うと結果的に誰にとっても使いにくいものになるため、メジャーな要求への対応を優先する。
-
21. パースエージョン
説得的な仕掛けでユーザーの行動を促す。使い方のガイド、レコメンデーション、心理的な報酬、他者との比較、バーチャルリアリティ技術やシミュレーション機能による疑似体験、などによってユーザーを動機づけしたり意思決定を促したりする。
-
22. ショートカットを用意する
経験あるユーザーが頻繁に実行することについて、通常の段階的な操作を短縮してより速く行う方法を提供する。キーボードショートカット、ブックマーク、ジェスチャ、ヒストリーなど。
-
24. ビューはオブジェクトを表象する
インターフェースは、オブジェクト(ユーザーの関心の対象である概念物)を表象するビューの集まりによって構成される。またひとつのオブジェクトは複数のビューによって異なる表現を持つことができる。
-
26. 名詞→動詞 の操作順序
ユーザーがまず対象物(名詞)を選び、それからアクション(動詞)を選ぶようにする。これが GUI の基本的な操作順序。アクションを先に選ばせると「対象物の選択待ち状態」が発生して操作の自由度が下がってしまう。
-
28. データよりも情報を伝える
ユーザーは数値よりもその意味を知りたい。例えば現在ディスクを何バイト使っているのかよりもあと何割ぐらい残っているのかを知りたい。音楽プレーヤーを買う時はストレージの正確な容量よりも何曲ぐらい入るのかを知りたい。
-
29. ユーザーがとれる操作がひとつしかないなら自動化する
複雑な入力を少ない操作で行えれば情報効率の高いUIと言える。現在許された入力が1種類だけであればわざわざユーザーがそれを行うことは情報効率としてゼロを意味する。システムが自動で代行するべき。
-
30. ペンは紙の近くに置く
ツール類は処理対象の近くに配置する。対象物が見えているのにわざわざ別のウィンドウを開くなどして操作しなければならないのでは、机から立って廊下にペンを探しに行くようなもの。その場でモードレスに操作して逐次結果を確認できるようにする。
-
32. 前提条件は先に提示する
事前に満たしておくべき前提条件を長い手続きの途中や最後になってから求めると、そこまでのユーザーの労力が無駄になる恐れがある。例えばアプリケーションの外部から参照する必要のある入力情報や、同意する必要のある規約など。
-
33. ナビゲーション項目は名詞にする
多くの場合、ナビゲーション項目がやることベースの動詞表現になっているとそこに何があるのかわかりづらく、またやること別に画面を作ると似たような一覧表示画面が増えてしまう。情報の種類ごとに画面を作り、ナビゲーション項目は名詞表現にする。
-
36. ゼロ・ワン・インフィニティ
個数に関して恣意的な仕様を作らない。要素の存在可能な個数は基本的に0か1か無限とする。一覧の項目数、フォルダの階層数、入力欄の文字数など、ユーザーが増やせるものに数の制限をつけない。またどれだけ増えてもUIが破綻しないようにする。
-
38. ユーザーが入力したものはユーザーのもの
ユーザーが入力した値や設定した内容は基本的にすべて保存されるべき。ユーザーが追加した項目はユーザーが削除できなければいけない。ユーザーが入力した内容はユーザーが変更できなければいけない。
-
39. 整合性を損なうような操作をユーザーに求めない
情報の整合性が損なわれる可能性がある操作をユーザーに求めない。ブレーキランプを手動でオンにさせてはいけない。例えば、生年月日と年齢を両方入力させるようなことはしない。
-
42. よいデフォルト
選択式の入力欄や設定項目に妥当性の高いデフォルト値を与えることでユーザーの操作を減らせる。よいデフォルト値とは、よりリスクの少ないもの、より一般的なもの、より中立的なもの、現在の状態を反映したもの、ユーザーの操作履歴を反映したものなど。