Palm Programmer's Laboratory
Palm OS User Interface Guidelines/4-1
4-1 ボタンとメニューの選択
アプリケーションのどの機能をコマンドボタンに割り当て、どの機能をメニューに割り当てるかは、美的な問題です。コマンドボタンは即時的なアクセスを提供しますが、貴重な画面スペースを使用します(図 4.1 参照)。
図 4.1 コマンドボタン
メニューアイテムは画面スペースを占有しませんが、通常非表示であり実行には余分なタップが必要になります(図 4.2 参照)。
図 4.2 メニュー
一般に、頻繁に使用されるコマンドにはコマンドボタンを使用し、そうでないコマンドにはメニューを使用します。このセクションでは、選択のためのさらなるガイドラインを示します。
コマンドの総数を制限する
新しいユーザーはPalmハンドヘルドを手にとってから5分でシステムを使えるようになる必要があることを忘れないで下さい。あまりにも多くのボタンがあると、画面がごちゃごちゃしてユーザーを混乱させることになります。逆にボタンが少な過ぎると、理解し難く学習も困難なインターフェースになるのがオチでしょう。同様に、多過ぎるメニューコマンドもユーザーを混乱させることになります。
コマンドボタンやメニューアイテムをどれだけ沢山押し込めるかではなく、アプリケーションに必要な最小セットを提供することに注力して下さい。空きスペースの枯渇は通常単純化が必要な徴候です。ユーザーはデスクトップアプリケーションの20%の機能を使用することに80%の時間を費やすことを忘れないで下さい。ユーザーが必要とする機能の上位20%を見つけ出すことに集中し、その機能を実装するコマンドだけを提供するべきです。
画面サイズに制限があることも忘れないで下さい。現実的には、フォーム上に収めることのできるボタン数は5個か6個です。メニューはフォームあたり3つか4つで、メニューに含めることのできるコマンドは多くて13個です。
ボタンは重要なタスクに使う
コマンドボタンは重要なタスクに使用します。アプリケーションにとって本質的で、かつ頻繁に実行されるタスクにです。重要でないタスクや稀にしかアクセスされないコマンドはメニューアイテムを使用します。
重要なタスクにコマンドボタンを使用することには2つの理由があります。これによって全てのユーザーにコマンドが見えるようになり、さらにコマンド実行に要するタップ回数が最小化されます。
例えば、全ての組込みアプリケーションには、新しいユーザーでもレコードを作成する方法がわかるよう、メインフォームに「新規」ボタンがあります。ほとんど常にコマンドボタンにする価値があるもうひとつのタスクとしては、アプリケーション内でのフォーム間の移動があります。
多くのユーザーは、Palm OS アプリケーションでメニューが利用できることさえ知りません。もし「新規」ボタンのように重要なコマンドをメニューに配置したら、彼らはそれを見つけることができないかもしれません。
どのコマンドが重要でどのコマンドが重要重要でないかは、状況によって決まることに注意して下さい。どのフォームかによってコマンドボタンが相応しいかどうかが決まる場合もあれば、アプリケーションによって決まる場合もあります。例えば、多くのゲームでは画面全体をゲームそのものの実行に使うため、ゲームの新規開始コマンドをメニューに割り当てています。
破壊的なコマンドはメニューに
重要なコマンドはボタンにして新しいユーザーにも見つけ易くするのと同様に、破壊的なコマンドは相対的に見つけ難くしてユーザーが誤って実行しないようにするべきです。メニューは比較的隠れたインターフェースなので、この目的には適しています。
別の方法は、破壊的な操作に要するタップ回数を増やすことです。例えば、アドレス帳から連絡先情報を削除するのにはボタンを使いますが、この削除ボタンに辿り着くには3回のタップを必要とします。
状況によってどのコマンドが重要かが決まるのと同様に、破壊的なコマンドの実行がどのくらい難しくあるべきかも状況によって決まります。アプリケーションによっては、専用のボタンを配置することによって、例えば新規作成や編集と同じレベルまで Delete コマンドの重要性を上昇させたい場合があるかもしれません。カメラからハンドヘルドにデジタル画像を取り込むアプリケーションについて考えてみましょう。このようなアプリケーションでは、ハンドヘルドの空き領域を素早く簡単に広げるため、削除ボタンに編集ボタンと同じアクセシビリティが必要だと感じるでしょう。
全ての破壊的な操作は、実際に処理を行なう前に確認アラートを表示するべきです。
コマンドを重複させない
同じフォーム内で、同じコマンドに対してボタンとメニューアイテムの両方を用意してはいけません。
デスクトップアプリケーションでは、例えばメニューアイテムとツールバー上のボタンの両方に新規作成コマンドがあるのは普通のことです。Palm ハンドヘルドでは、画面スペースに制限があるため、そのようなインターフェースは推奨されません。コマンドボタンは、重要で使用頻度の高いコマンドだけに使用して下さい。メニューアイテムは使用頻度の低いコマンドだけに使用します。
ただし、アプリケーションの各フォームは独自のメニューを持てることを覚えておいて下さい。あるフォームのメニューアイテムが別のフォームのコマンドボタンと重複していることは問題ありません。例えば、Memo Pad のメインフォームには新しいメモを新規作成するためのボタンがあります。そして、メモの編集フォームには同じことをするメニューアイテムがあります。これにより、ユーザーはメインフォームに戻ることなく次のメモを作成できます。
コマンドの重複に関するより詳細な説明は、“メニューアイテムの重複”を参照して下さい。
「タップの最小化」という目標を忘れない
そのタスクを実行するための、より簡単な方法がある場合、コマンドボタンやメニューアイテムを使用してはいけません。
組込みアプリケーションはどれも、既存レコードの編集や詳細情報の表示ができます。これらのタスクの実行は、それぞれのアプリケーションにおいて最適な方法が使用されます。Date Book と To Do では、メインフォーム上での単一レコードの編集は単純にレコードをタップするだけで行なうことができます。レコードの詳細情報参照にはコマンドボタンが提供されるため、レコード編集よりも1回以上余分にタップが必要になります。アドレス帳ではこの機能性が逆になっています。レコードの詳細を参照するにはレコードをタップするだけで良く、編集するにはその後さらに編集ボタンをタップする必要があります(図 4.3 参照)。
図 4.3 組込みアプリケーションにおけるタップ回数の最小化
これらのアプリケーションは編集や詳細表示に異なる方法をとっていますが、それはそれぞれのデータに関して最適な方法です。Date Book と To Do では、メインフォームに表示されている情報以上の詳細を見る必要は滅多にありません。そのため、レコードの編集は詳細表示よりも簡単になっています。アドレス帳では、連絡先の全ての情報(住所など)をメインフォームに表示することができないため、編集よりも詳細表示が簡単になっています。これらのアプリケーションでは、それぞれでもっとも頻繁に実行される操作のタップ回数を最小化しているわけです。
新規ユーザーが使うコマンドはボタンに
普通ならば隠す(メニューにする)場合でも、初心者ユーザーが良く実行する操作はコマンドボタンにして下さい。
アドレス帳では、ビューフォーム上のどこをタップしても編集フォームに移動します。これパワーユーザー向けの機能で、メインフォームの一覧から2回の素早いタップで編集フォームに移動するためのものです。新規ユーザーは、すぐにはこの機能に気付かないかもしれません。そのため、アドレス帳はビューフォームに編集ボタンを備えています。
とはいえ、その機能を簡単に見つけられるのであれば、コマンドボタンを用意する必要はありません。メインフォーム上での連絡先名のタップには対応するコマンドボタンがありません。このインターフェースは新規ユーザーでも簡単に見つけることができます。
保存ボタンや終了ボタンは用意しない
多くのデスクトップアプリケーションには、変更を保存したりアプリケーションを終了するメニューがあります。これらのコマンドはデスクトップアプリケーションではありふれたものなので、Palm OS アプリケーションデザインの初心者はこれらをハンドヘルドのアプリケーションにはめ込もうとします。これは良いこととは言えません。
組込みのアプリケーションに保存コマンドがないことに注意して下さい。Palm ハンドヘルドのユーザーは他のアプリケーションに切り換える際、変更内容の保存をしません。変更は発生した時点で常に保存されています。編集可能なテキストフィールドでミスをした場合は Undo が利用できますし、破壊的な操作には確認が表示されます。
Palm ハンドヘルドのユーザーはアプリケーションの終了という操作もまた行ないません。Palm ハンドヘルドでは、ユーザーはあるアプリケーションを終了して別のアプリケーションを起動する、という考え方をしません。考え方としては、全てのアプリケーションが同時に動作しており、ユーザーは自由にそれらのを切り換えることができるという感覚になります。(実際には、システムは同時に1つのアプリケーションしか実行できず、アプリケーション側でシームレスに移動できるように実装しています。しかし、これはエンドユーザーが意識しないインプリメンテーション詳細です。)