Palm Programmer's Laboratory
Palm OS User Interface Guidelines/6-3
6-3 リスト
リスト(図 6.11 参照)は選択肢の一覧をボックスで提示します。ボックス内に選択肢が全て収まらない場合は、スクロールが可能です。Palm OS では、ポップアップトリガーに関連付けられたリストをポップアップリストと呼びます。このセクションではポップアップでないリストについて説明します。ポップアップリストのガイドラインについては、“ポップアップリスト”を参照して下さい。
図 6.11 リスト
表 6.4 リストの詳細
指標 | 値 |
---|---|
幅 | 最長要素の幅 + 5 スクロール可能な場合は最長要素の幅 + 12 |
高さ | 全画面のリストの場合 11 要素分(モードレスフォーム) 全画面のリストの場合 10 要素分(モーダルフォーム) |
左端 | 可変 |
上端 | 全画面のリストの場合 18 |
境界線 | 1 ピクセル実線の矩形 |
ラベル | 通常は不要 |
システムが定める挙動
Palm OS は全てのリストに対して以下の挙動を提供します。
ペンによる操作
リストの要素をタップすると、それまでの選択要素がハイライト解除され、ペンで押下された要素がハイライトされます。リスト内でペンをドラッグするとペンの下にある要素がハイライトされます。ペンをリストの上か下までドラッグすると、リストに表示されている以上の要素があればスクロールが行なわれます。それ以外の条件では、リストの外側までドラッグしてもリスト要素の選択状態は変更されません。
スクロール可能なリスト
表示可能な数よりも多くの選択肢がある場合、システムは小さな矢印(スクロールインジケータ)を表示されている最初と最後の要素の右余白に表示します。ペンでスクロールインジケータをタップすると、リストはスクロールします。下方向にスクロールすると、一番下に表示されていた要素が一番上に来ます。これはリストの表示領域を埋めるのに十分な要素数がある場合で、そうでない場合は最後の要素がリストの一番下に表示されるようにスクロールされます。逆のことが上方向のスクロールでも言えます。ハンドヘルドのスクロールハードボタンでも同じ挙動を示します。スクロールによって要素の選択状態が変わることはありません。
ルック&フィール
リストの挙動と外観については、以下のガイドラインに従って下さい。
常に選択中の要素を表示する
リストはそれを含むフォームが最初にオープンされる際、常に選択中の要素を表示するべきです。要素が20個あるリストを含むフォームを開き、リストを一番下までスクロールして15番目の要素を選択、そしてフォームを閉じたとします。次にそのフォームを開いた時、リストはやはり一番下にスクロールして15番目の要素が選択されているべきです。
要素を論理的順序で提示する
もっとも有用な要素が最上位付近に来るようにリストの要素を配置して下さい。たとえば時刻の一覧を提示する場合、リストは一日でもっともアクティブな時間帯 ―― 午前8時など ―― から始めるようにします。真夜中から始めてはいけません。
長大なリストにはスクロールバーを使用する
リストにはスクロールインジケータがあり、自動的にスクロールを処理してくれますが、プログラム的にこれらのインジケータ表示を抑止してかわりにスクロールバーを取り付けることができます(図 6.12 参照)。リストがフォーム内の主要な要素で、かつ長大な要素を含む場合にはこの方法を検討するべきです。スクロールバーは表示位置のインジケータとして機能するため、長大なリストに適しています。詳細は7章の“スクロール”を参照して下さい。
図 6.12 スクロールバー付きのリスト
ルールを破る場合
このセクションでは、リストのガイドラインから外れる一部のアプリケーションについて言及し、ガイドラインに従わないのが適切なケースについて説明します。
テーブルの代替としてのリストの選択
リストとテーブルは互いに交換可能ではありません。リストは常にコンテンツの周囲にボックスを表示します。このボックスは、その内部の情報がアプリケーションの他の種類の情報に比べて補助的なものであることを示しています。
多くのアプリケーション開発者は、プログラミング上の複雑さのためにテーブルを使うことに尻込みします。そのかわりに、プログラム的に扱うのが簡単なためにリストを使うのです(図 6.13 参照)。
図 6.13 不適切なリストの使用
図 6.13 に示したフォームは、1章の“Palm OS アプリケーションデザイン”で登場した書籍アプリケーションのメインフォームの初期デザインです。このアプリケーションの主な目的はユーザーが所有する書籍の目録を作成することです。つまりこのフォームに表示される書籍タイトルはアプリケーションのメインデータですから、テーブルで表示されるべきです。
リストの周囲に表示されるボックスが描画されるのをプログラム的に抑止する方法があります。アプリケーションがリストの境界線やスクロールボタンの表示を抑止して、見た目がテーブルと変わらないようにする場合に限り、テーブルのかわりにリストを使用することができます。単一列のテーブル同様、複数列のテーブルもリストを使ってシミュレートすることができます。
背の高いリスト
フォームのデータ領域をできるだけリストの表示のために使おうとすると、リストは最大で 11 要素を表示することができます。このことは、12 要素のリストを使う場合に問題になります。リスト内の最後の要素にアクセスするためだけにスクロールをしなければならないからです。
図 6.14 に示す時刻設定ダイアログはこの問題を抱えています。分のリストはちょうど 12 要素だからです。12 個全ての要素を表示するために、このリストはコマンドボタンのための領域にはみ出しています。時刻のリストは同じ高さに揃えられています。これらのリストの場所をあけるため、2つのコマンドボタンがフォームの左端に追いやられています。
図 6.14 コマンドボタンエリア内のリスト
この問題に対する別のアプローチは、2つのリストがそれぞれ8要素しか表示しないようにすることです。なぜなら、仕事のアポイントメントは大体8時間の範囲内に設定される傾向があるからです。これにより、フォームの下部にはボタンを4つ配置する余地ができるでしょう。
このフォームのデザイナは、2つのアプローチを比較検討した上で全ての分の選択肢が一瞥できた方が良いだろうと判断しました。このユーザビリティに関する要素は、コントロールの配置に関する他のガイドラインよりも優先します。
ユーザーインターフェースをデザインしている時に、同じような状況にでくわすことはあまりないかもしれません。もしでくわした場合は、トレードオフを考慮せずにこのインターフェースを真似することは避けて下さい。リストをコマンドボタン領域にはみ出させるのは、そうすることによるユーザーの利益が明らかに他のデザインに優先すると確信できる場合だけにしてください。