Palm Programmer's Laboratory
Palm OS User Interface Guidelines/6-2
6-2 フィールド
フィールド(図 6.5 参照)は、1行以上のテキストを表示します。フィールドは編集可能にも編集不可にもできます。
図 6.5 複数行のテキストフィールド
表 6.1 フィールドの詳細
指標 | 値 |
---|---|
幅 | 可変 できるだけ広くする |
高さ | 11 またはフォントの高さ+2(単一行の場合) 複数行フィールドの場合、できるだけ高くする 行の高さ(フォントの高さ+2)の倍数にする |
上端 | 可変 |
左端 | 可変 |
境界線 | なし。点線の下線は編集可能フィールドであることを示す。 |
ラベル | 通常、フィールドに何を入力するかを示すラベルが必要。 |
システムが定める挙動
Palm OS はフィールドに関して以下のサポートを提供します。
- 挿入ポイントの配置。編集可能なテキストフィールドをタップすると、Palm OS はその場所に点滅するカーソルを表示します。
- テキストの選択。スタイラスでドラッグすることで、テキストを範囲選択することができます。Palm OS 3.5 以降では、単語をダブルタップすることで単語選択が、トリプルタップすることで行全体の選択が可能です。
スクロール可能なフィールドであれば、フィールドの境界を越えてドラッグすることでその方向にスクロールします。 - テキストの表示には単一のフォントが使われます。たとえば3つの単語を表示して、2つ目の単語だけを太字で表示するようなことはできません。
- 複数行のテキストフィールドではワードラップが行なわれます。
- 最大文字数制限。編集可能フィールドには最大文字数を設定することができます。最大文字数を越えて入力しようとすると、フィールドは文字入力を受け付けなくなります。
- NOTE
- 最大文字数の設定は、実際には入力可能な最大バイト数です。エンコーディングによっては、1文字が1バイトよりも大きい場合があります。フィールドに最大文字数を設定する場合はこのことを考慮して下さい。
Palm OS のテキストフィールドでは、上書き入力(つまりカーソルの右の文字を上書きする)モードや水平方向のスクロール、数値の書式化はサポートされません。
ルック&フィール
フィールドの挙動や外観については、以下のガイドラインに従って下さい。
編集可能フィールドは下線付きで左揃え
編集可能なフィールドは編集が可能であることを示すために点線の下線を使用して下さい。実線の下線は使用してはいけません。
ほとんど全ての編集可能フィールドはテキストを左揃えにするべきです。Constructor for Palm OS ではフィールドを右揃えに設定できますが、右揃えにするのは数値の表示や編集不可フィールドをラベルとして使う場合だけにすべきです。
編集可能フィールドはタイトルバー領域を除き、フォーム上のどこにでも配置することができます。
編集メニューが必要
編集可能なテキストフィールドを含む全てのフォームには編集メニューが必要です。詳細は“テキストフィールドには編集メニューが必要”を参照して下さい。
シフトインジケータが必要
編集可能なテキストフィールドを含む全てのフォームにはシフトインジケータが必要です。ほとんどのモードレスフォームには、図 6.6 に示すようにシフトインジケータがあります。
図 6.6 シフトインジケータの配置(モードレスフォーム)
この配置は、スクロールボタンを使う場合にそのためのスペースを確保しています。スクロールボタンでなくスクロールバーを使っているモードレスフォームでも、シフトインジケータはこの場所に配置して下さい。フォームの下部にコントロールが多過ぎてフォーム右端から17ピクセルを確保できない場合は、シフトインジケータとその左のコントロールを4ピクセル空けるようにして下さい。
モーダルフォームでは、図 6.7 に示すようにシフトインジケータを配置して下さい。モーダルフォームでシフトインジケータとスクロールボタンの両方を使うことは稀ですが、そうする場合はスクロールボタンの左側に 4 ピクセル空けてシフトインジケータを配置して下さい。
図 6.7 シフトインジケータの配置(モーダルフォーム)
表 6.2 シフトインジケータの詳細
指標 | 値 |
---|---|
幅 | 9 ピクセル |
高さ | 9 ピクセル |
左端 | 135(モードレスフォーム) 142 (モーダルフォーム) |
上端 | 150(モードレスフォーム) フォームの高さ−13(モーダルフォーム) |
フォームにシフトインジケータを配置すると、Palm OS は Graffiti または Graffiti 2 の全てのシフト状態(パンクチュエーション、シンボル、大文字シフト、および大文字ロック)を正しく表示します。日本語システムでは、シフトインジケータは FEP のオン/オフ状態やひらがな・カタカナ変換の状態も表示します。
ほとんどのテキストフィールドではオートシフトを有効にする
大文字を入力できないようにする場合を除き、編集可能なテキストフィールドではオートシフト設定を有効にして下さい。オートシフト設定はフィールド内の最初の文字や文頭の最初の文字を自動的に大文字にしてくれるので便利です。ただし、電子メールアドレスのように一般的な大文字の使用規則が当てはまらない情報を入力するフィールドではオートシフトを有効にしてはいけません。
大文字表記は地域によって異なるため、オートシフトのルールは言語依存であることに注意して下さい。これらの規則は Palm OS のバージョンやデバイスが販売される市場などによって異なります。
フォームが表示された時にフォーカスを設定
テキストフィールドを含むフォームが表示されると、テキストフィールドにフォーカスが設定され、点滅するカーソルが表示されます。これにより、最初にフィールドをタップすることなく、ただちに入力を開始できます。フォームに複数のフィールドがある場合、最初のフィールドにフォーカスが設定されます。たとえば、アドレス帳の編集フォームではラストネームのフィールドにフォーカスが設定されます(図 6.8 参照)。
図 6.8 フォーカスのあるフィールド
単一行フィールドを伸張させるかどうか決める
可能な限り、フィールドはその最大文字数を表示するのに十分な幅を設定すべきです。それができないのであれば、必要に応じてフィールドを拡張することを検討して下さい。たとえば、ネットワークプリファレンスパネルのユーザー名フィールドは、とても長い名前を入力すると拡張されます(図 6.9 参照)。その他のコントロールは下方向に調整されます。
図 6.9 テキスト増加によってリサイズするフィールド
複数行に渡る情報を入力させられないのであれば、単一行設定をオンにして下さい。この設定をオフにしていると、ユーザーはフィールド内でうっかり改行を入力してもそのまま入力を続けることができてしまいます。改行によってフィールドがリサイズしなければ、ユーザーはフィールドにそれ以上入力できないことに気付くでしょう。
複数行フィールドにはスクロールバーを追加する
たくさんの文字入力を受け付ける複数行フィールドがあるならば、スクロールバーを追加してテキストフィールドのスクロールをサポートして下さい。スクロールのガイドラインについては、、7章の“スクロール”を参照して下さい。
入力が必要なデータ量を制限する
フォームをデザインする時は、ほとんどのユーザーには文字入力手段として Graffiti または Graffiti 2、およびオンスクリーンキーボードしかないことを忘れないで下さい。この理由により、テキストフィールドに入力させるデータの量を抑える努力をする必要が生じます。可能な限り、テキストフィールドのかわりにポップアップリストを用意したり、フィールド入力に対してオートコンプリートを行うなどの方法でユーザー入力を支援して下さい。
Graffiti ナビゲーションとフィールド間のタブ移動をサポートする
順番に入力をしていくような複数のテキストフィールドを含むフォームでは、Graffiti ナビゲーション文字をサポートして下さい。ほとんどのユーザーは Graffiti ナビゲーション文字を習得する時間をとりませんし、Graffiti 2 手書き文字認識を使用するハンドヘルドはナビゲーション文字をサポートしません。しかし、パワーユーザーはこれらのストロークを知っていて、ナビゲーションを可能にするインターフェースを評価しています。Graffiti ナビゲーション文字のリストを表 6.3 に示します。
表 6.3 Graffiti ナビゲーションキーストローク
アクション | ストローク |
---|---|
次のフィールド | |
前のフィールド | |
カーソルを1文字分左へ移動 | |
カーソルを1文字分右へ移動 |
フォームのフィールドが外部キーボードや組込みのキーボードで入力されるかもしれないという点も考慮して下さい。そのようなユーザーは、タブキーの押下によって次のフィールドへ、Shift キーとタブキーの押下によって前のフィールドへ移動することを期待します。可能であればこの機能もサポートして下さい。
テキスト入力後の検証
アプリケーションでフィールドに入力されたテキストの内容を検証する必要がある場合、Done ボタンを用意してそれがタップされた時点で全てのテキストフィールドの検証を行うようにして下さい。テキストが入力されたらすぐに検証を実行したいという誘惑を感じるかもしれませんが、それは Palm OS ではまずいデザインです。
データ入力の最中に電話がかかってきて、電話相手との約束をスケジュールに追加する必要が発生したとしましょう。カレントフィールドでのデータ入力でミスをして、それが修正されるまでそのフォームから抜けられないとしたら、ユーザーはきっと極端に不満を感じることでしょう。それよりは入力途中のデータをそのまま保存してただちに抜けられる方が良いのです。アプリケーションが再度起動されたら、部分的に入力されたデータ入力フォームを表示するのです。検証は Done ボタンがタップされたときだけ行うようにします。
ルールを破る場合
テキストフィールドは通常コマンドボタンエリアには置かれません。しかし、ビューをナビゲートするためのものであれば、そのエリアにフィールドを置くことができます。アドレス帳のメインフォームではこのようなテキストフィールドが使われています(図 6.10 参照)。
図 6.10 コマンドボタンエリアのテキストフィールド