[[← 2 節に戻る|Palm OS User Interface Guidelines/5-2]] [[↑5 章トップへ|Palm OS User Interface Guidelines/5]] [[4 節に進む →|Palm OS User Interface Guidelines/5-4]] ---- !!!5-3 ポップアップリスト    ポップアップリストを使用することで、一連の要素から1つを選択させることができます。ポップアップリストは選択されている要素を表示します。実際には、ポップアップリストは2つのUI要素からなっています。ポップアップトリガー(図 5.10 参照)とリスト(図 5.11 参照)です。  プッシュボタンとポップアップリストは、ともに一連の要素から1つを選択することができます。ポップアップリストはプッシュボタンと比べるとやや操作が難しいかもしれませんが、ユーザーが選択可能なオプションがいくつかあるような状況ではしばしば理想的なUIになります。 !図 5.10 ポップアップトリガー {{ref_image figure_5.10.gif}} !表 5.3 ポップアップトリガーの詳細 ,指標,値 ,幅,システムにより決定 ,高さ,12{{br}}またはフォントの高さ + 3 ,上端,可変 ,左端,可変{{br}}右側を画面の右端に揃えて{{br}}左方向にサイズ変更する場合は160を指定 ,境界線,なし ,内容,リストの選択内容 !図 5.11 ポップアップリスト {{ref_image figure_5.11.gif}} !表 5.4 ポップアップリストの詳細 ,指標,値 ,幅,5 + 最長要素の幅{{br}}リストがスクロール可能な場合、12 + 最長要素の幅 ,高さ,13 要素分{{br}}要素数が 13 未満の場合、要素数分{{br}}カテゴリリストの場合は0。高さは実行時に決定。 ,左端,トリガーが左揃えの場合はトリガーの左端{{br}}トリガーが右揃えの場合はリストの幅 ,上端,トリガーの上端(Palm OS が必要に応じて移動) ,境界線,1 ピクセルの矩形   !!システムが定める挙動  ポップアップリストは現在の選択内容を表示します。ポップアップリストの矢印か表示中の内容をタップすると、リストが表示されます。 !スタイラスによる操作  リストの要素をタップすると、選択されていた要素のハイライト表示が解除され、ペンの下にある要素がハイライト表示されます。リスト上をペンでドラッグすると、ペンの下にある要素がハイライト表示されます。ペンをリストよりも上、あるいは下までドラッグすると、リストの表示領域より要素数が多ければスクロールが発生します。ペンをリストの外側までドラッグすると、選択状態は変化しません。 !スクロール可能なポップアップリスト  表示可能な量よりも多くの選択肢がある場合、システムは表示中の最初と最後の要素の右余白に小さな矢印(スクロールインジケータ)を表示します。スクロールインジケータをペンで押下すると、リストはスクロールします。下方向にスクロールすると、一番下に表示されていた要素が一番上にくるように表示されます。ただし、これはリストの表示領域を満たすのに十分な要素がある場合で、そうでない場合には最後の要素が表示領域の一番下にくるようにスクロールが行なわれます。これと逆のことが上方向へのスクロールでも発生します。ハンドヘルドのスクロール用のハードボタンも同じ挙動をします。スクロール自体は要素の選択状態を変更しません。   !!ルック&フィール  ポップアップリストの挙動や外観については、以下のガイドラインに従って下さい。 !リストのポップアップ時には選択要素を表示する  ポップアップトリガーがタップされたら、現在の選択要素が見えるようにリストを表示する必要があります。リストが大きい場合、スクロール状態を調整して選択要素が中央に表示されるようにして下さい。これにより、最小限のスクロール量で選択内容を変更することができます。 !論理的な順序で要素を提示する  もっとも有用な要素が最上位にくるようにリストの要素を配置して下さい。たとえば、時刻のリストを提示するのであれば、リストを一日の活動的な時刻(朝8時など)から始めるようにします。深夜から始めてはいけません。後述するインクリメンタルサーチを有効にする場合は、リストの要素をアルファベット順に並べます。 !リストでコマンドを実行しない  デスクトップシステムによっては、ポップアップリストを使ってコマンドの一覧を提示することができます。このようなインターフェースを Palm OSで使用してはいけません。コマンドの実行にはコマンドボタンかメニューを使用して下さい。 !リストを階層的にしない  階層的なポップアップリストを作成してはいけません。Palm OS は画面スペースの厳しさのため、メニューやポップアップリストの階層構造という概念を持ちません。 !大きなリストではインクリメンタルサーチを使う  ポップアップリストには、プログラマによる有効化が可能なインクリメンタルサーチ機能があります。この機能を使うと、要素の先頭数文字を入力することで要素を選択することができます。特にリストが大きい場合、この機能を有効にすることを検討して下さい。ただし、この機能は広く知られているわけではありませんから、ユーザーがそれを知っていることをあてにしてはいけません。この機能を有効にするには、リストの要素がアルファベット順になっている必要があります。 !最初の要素をデフォルトにする  リストのデフォルトの初期選択要素はリストの最初の要素です。それが妥当であれば、トリガーの表示を未選択にすることが可能です。たとえば、Expense アプリケーションではデフォルトの出費種別が定義されていません。出費の種類が選択されるまでは、“-Expense Type-”という文字列がポップアップトリガーに表示されます。トリガーのデフォルト表示にダッシュを用いることで、その要素がポップアップリストであることを示しています。デフォルトのトリガーの内容としては“-Select-”などもいいかもしれません。 !必要に応じてラベルをつける  必要ならば、ポップアップリストにラベルを付けることができます。しかし、それは必須ではありません。ポップアップトリガーの内容が通常はリストの目的を理解するのに十分な情報を提供します。   !!ルールを破る場合  このセクションでは、ポップアップリストのガイドラインから外れる一部のアプリケーションについて言及し、ガイドラインに従わないのが適切なケースについて説明します。 !ポップアップリスト内のコマンド  一般に、リストはコマンドを実行すべきではありません。しかし、ユーザーにリストの編集をさせたい場合には、このルールを破ることができます(図 5.12 参照)。例えば、カテゴリポップアップリストにはしばしば Edit Categories という要素があり、これを使ってカテゴリの削除や追加を行うことができます。ユーザーにコマンドの一覧を提示したい場合は、コマンドボタンかメニューを使用して下さい。 !図 5.12 ポップアップリスト内のコマンド {{ref_image figure_5.12.gif}} !トリガーの矢印無しのポップアップリスト  場合によっては、ポップアップトリガーの矢印を描画せずに済ませたいと思うかもしれません。Expense アプリケーションでは、ポップアップリストのトリガーを表示しません(図 5.13 参照)し、To Do アプリケーションでは優先度のリストのトリガーを表示しません。これらのアプリケーションでは、以下の理由でトリガーの矢印を使用していません。 *オプションの表示とは対照的に、これらのリストはレコードのデータ項目を設定します。 *データフィールドはレコードごとに一度設定されるとほとんど変更されません。 *トリガーは表示可能なデータ量を減らしてしまいます。 *ポップアップリストはパワーユーザー向けの機能です。各アプリケーションは詳細ダイアログを代替手段として用意しています。これは新しいユーザーにも項目を設定するための明らかな方法になります。  データ表示領域が減るという理由でトリガーの矢印を省きたいのであれば、そうしても良いでしょう。しかし、その場合は初心者ユーザーでも項目を設定できるような明確な方法を提供しなければなりません。 !図 5.13 矢印無しのポップアップトリガー {{ref_image figure_5.13.gif}} !標準的でないポップアップトリガー  [[“コンボボックスの実装”|Palm OS User Interface Guidelines/5-1]]のセクションでは、コンボボックススタイルの要素を実装する方法として3つの選択肢を説明しました。セレクタトリガーとモーダルフォームを使う方法、コマンドボタンとテキストフィールドを使う方法、そして編集コマンドを含むポップアップリストを使う方法です。  コンボボックススタイルの要素としてポップアップリストを使う場合に要素の追加を簡単にするため、アプリケーションデザイナによってはテキストフィールドとポップアップリストを組み合わせ、標準的でないコンテンツを表示します。この方法でポップアップトリガーを使用するやり方には2つのスタイルがあります。どちらのスタイルにも支持者がいますが、どちらにも避けるべき重大な設計上の欠陥があります。  デザイナによってはポップアップトリガーのコンテンツを空にします(図 5.14 参照)。トリガーによって表示されたリストから選択が行なわれた場合、選択された内容がすぐ右にあるテキストフィールドにコピーされます。リスト内にマッチする要素がないテキストがフィールドに入力された場合、新しい要素がリストに追加されます。 !図 5.14 ラベルのないポップアップリスト {{ref_image figure_5.14.gif}}  この実装の利点は、デスクトップのコンボボックスに似ていることと、リストに要素を新規追加するのが簡単だということです。しかし、このデザインには2つの問題があります。 *タップできるのがトリガーだけになります。標準的なポップアップリストでは、リストを表示させるためにはトリガーの矢印かそのコンテンツをタップすることができます。多くのユーザーはトリガーだけでは正確にタップするには小さ過ぎると思うでしょう。 *標準的なポップアップリストとこのスタイルのコンボボックスの視覚的な相異点は、編集可能なテキストフィールドの下に引かれた点線だけになります。ユーザーによってはこの違いを些細なものと感じ、テキストフィールドをタップしてもリストがポップアップされないことに首をひねるかもしれません。  別のデザイナはポップアップリストをテキストフィールドのラベルとして使用します。たとえば、図 5.15 ではテキストフィールドに表示されるネットワークサービスを選択するために、“Service”というラベルの左にあるトリガーか、“Service”というラベルそのものをタップすることができます。 !図 5.15 静的なラベルのポップアップリスト {{ref_image figure_5.15.gif}}  この実装は良い選択とは言えません。なぜなら、多くのユーザーはポップアップリストがアドレス帳の編集フォームにあるものと同じ振舞いをすることを予期するからです。つまり、ポップアップリストが変更するのは“Service”という部分で、その隣にあるテキストフィールドではない、というものです。  これら2つのスタイルのコンボボックスはユーザビリティに問題があるため、避けるのがベストです。図 5.14 および図 5.15 のフォームに関して言えば、頻繁に使用されるフォームではないためセレクタトリガーが最適な選択になるでしょう。ポップアップリストをかわりに使いたくなるほど頻繁に使用されそうなフォームであれば、[[“コンボボックスの実装”|Palm OS User Interface Guidelines/5-1]]で推奨した方法に従って、標準的なポップアップリストを使用して下さい。ユーザーがリストに要素を追加できるように、ポップアップリストに編集コマンドを追加するのです。いくつかの要素を一度に簡単に追加できるようにするには、リストの要素を自由に編集できるモーダルフォームを表示する追加のコマンドをインターフェースに追加します。   ---- [[← 2 節に戻る|Palm OS User Interface Guidelines/5-2]] [[↑5 章トップへ|Palm OS User Interface Guidelines/5]] [[4 節に進む →|Palm OS User Interface Guidelines/5-4]]