はじめに
モバイルヘルス アプリを使用するほとんどの医療従事者にとって、アンケートへの回答は主要なタスクです。
データ入力は難しく、エラーが発生することがあります。構造化データ キャプチャ(SDC)ライブラリ と設計ガイドラインの目的は、ユーザーがデータ入力のユーザー エクスペリエンスとキャプチャしたデータの品質を改善できるようにすることです。
このセクションでは次の 4 つのテーマを取り上げます。
レイアウトとナビゲーション
質問と手順
データ キャプチャ
データ検証とエラー メッセージ
レイアウトとナビゲーション
長スクロール レイアウト(左)とページ分けレイアウト(右)。
Android FHIR SDK には、次の 2 つのレイアウト オプションがあります。
長スクロール(デフォルト)
ページ分けあり
長スクロールのアンケートでは、1 ページにすべての質問が表示され、ユーザーはスクロールして各質問に移動します。
ページ分けされた アンケートでは、コンテンツが複数のページにわたって表示されます。関連する質問や入力フィールドを 1 つのページにグループ化できます。ページ間を移動するために、[戻る] ボタンと [次へ] ボタンはページの下部に固定されています。
GitHub でページ分けされたアンケートを作成する方法をご確認ください
次のうち、どのレイアウトを選択すればよいですか。
各レイアウト オプションには長所と短所があります。以下では、使用するレイアウトを選択する際に考慮すべきレイアウト タイプの属性をいくつか示します。
長スクロール
ページ分けあり
ナビゲーションのスピード
check_circle 移動速度の向上
warning 移動が遅い
ナビゲーションの精度
warning 精度の低いナビゲーション
check_circle ナビゲーションの精度が向上
タスクの切り替え後に質問に戻る
warning 中断後に方向を確認しにくい
check_circle 中断後の方向への移動が容易
訪問後にデジタル アンケートに記入する(紙からコピーする)
check_circle 紙からコピーする方が簡単
warning 紙からコピーするときがより困難
小画面
warning 画面が小さい場合はやや悪い
check_circle 小さい画面に最適
ユーザー補助
warning アクセシビリティの面で劣ります。操作しにくい。
check_circle ユーザー補助を強化。スクリーン リーダー、テキスト読み上げなどのテクノロジーで処理できる個別の画面。
手順と説明のためのスペース
warning ガイダンスや手順に劣る
check_circle ガイダンスと手順のほうがよい
すべきこと - 数字の質問
単一ページ レイアウトで簡単に移動できるよう、質問に番号を付けます。
すべきこと - フォントサイズを調整する
長いスクロールを使用するときは、質問のタイトルのフォントサイズを小さくして、画面上により多くのコンテンツが表示されるようにします。例: 長いスクロールは 16 ピクセル。
ページネーションは 28 px です。
すべきこと - 1 ページにつき質問を 1 つ
キーボード、プルダウン、その他のコンポーネントはページ上のスペースを占有するため、1 ページにつき 1 つの質問を設定するようにしてください。
すべきでないこと - スクロールしなければ見えない範囲のコンテンツを非表示にする
コンテンツはスクロールせずに見える範囲に表示されるようにする必要があります。
すべき - 関連するコンテンツを 1 つの質問としてグループ化する
例: これら 3 つのテキスト フィールドはすべて代替の連絡先担当者情報に関連しているので、1 つのページにグループ化されます。
非推奨 - 無関係なコンテンツをグループ化する
混乱を避けるため、1 つのページに関係のないコンテンツをグループ化することは避けてください。
進行状況インジケーター
進行状況インジケーター には、アンケートでの進捗状況が表示されます。
長いアンケートに進行状況インジケーター を含めると、ユーザーが操作しやすくなり、進行状況を確認しやすくなります。進行状況インジケーター には、アンケート内の場所と、完了までの残り時間が表示されます。
すべきこと - ロング スクロールのレイアウト
質問とアンカーを上部に配置して、スクロールしても常に表示されるようにします。
すべき - ページネーション レイアウトのみ
代わりに下部に配置し、[戻る] ボタンや [次へ] ボタンの上に配置することもできます。このレイアウトを使用して、ユーザーが閲覧しているページを表示することもできます。
ナビゲーション ボタン (戻る、次へ)は質問票の下部に固定されています。無限スクロールを使用している場合、またはページ分けされた質問票の最後のページでは、[次へ] ボタンに [送信] というラベルが表示されます。
ボタンを一貫した場所に配置し、「戻る」や「次へ」など、その操作がラベル付けされたアクティブなボタンを常に使用するようにしてください。
推奨 - アクティブなボタン
フォームが不完全な場合でも、アクティブなボタンが常に表示されます。[次へ] をタップすると、不足しているフィールドの入力手順や検証エラーの手順がポップアップ ダイアログに表示されます。
非推奨 - ボタンが無効
ボタンが無効な場合、ユーザーが問題の解決方法を把握するのが難しくなります。
禁止 - アイコンのみのボタン
アイコンのみのボタンは使用しないでください。ボタンには、必ずわかりやすい操作のラベルを付ける。
質問と手順
このセクションで取り上げる 9 つのコンポーネントの概要と、ページ分けされたアンケートでコンポーネントを組み合わせる方法。
アンケートのタイトル。
進行状況インジケーター。
グループ ヘッダー。
質問のタイトル。
指示事項。
入力フィールド。
エントリの形式。
必須項目です。
ヘルプを選択します。
グループ ヘッダー は、質問のタイトルの上に表示されるテキスト ヘッダーです。
グループ ヘッダー を使って、類似した質問をグループ化します。グループ ヘッダー は、役立つ情報を追加する場合にのみ使用してください。
すべきこと - 短いタイトル
短いタイトルを使用して、似たような質問をグループ化します。例: 患者の病歴に関連するすべての質問がグループ化されます。
非推奨 - 長いタイトル
複雑なタイトルや 1 行を超える長いタイトルは避けてください。
質問のタイトル
質問のタイトル には、要求される情報を簡潔に記述します。質問のタイトル は、ユーザーの目を質問に引き付けるために、ページ上で最も大きいフォントサイズを使用します。
すべてのページまたは質問に質問のタイトル を付けます。質問のタイトルは簡潔にするか、質問として表現します。
すべきこと - 短い質問タイトル
タイトルを短くすると読みやすくなります。
非推奨 - 長い質問のタイトル
非常に長い質問や、2 つの質問をネストすることは避けてください。
非推奨 - 質問のタイトルを付けない
ユーザーが入力する必要がある情報を簡単に把握できるように、質問のタイトルを必ず含めます。
手順
[手順 ] は、質問のタイトルの下に表示されるオプションのテキスト フィールドです。
[instructions ] フィールドを使用して、質問が必要かどうか、選択できる数(1 つまたは複数)、すべての情報を完了できない場合や質問に回答できない場合のユーザーの対処方法など、関連する手順を説明します。
すべきこと - 必要なものを説明する
手順フィールドを使用して、質問が必要かどうかと、選択肢の数を通知します。
すべきこと - 特殊なケースへの対応方法を説明する
手順を使用して、すべてのフィールドに入力できないなどのシナリオが発生した場合の対処方法をユーザーに伝えます。
すべき - コンテキストや定義を説明する
指示を使用して、質問のタイトルで使用されている用語の追加のコンテキストや定義を提供します。
テキストのラベル付け
ラベルテキストは、テキスト フィールドまたはプルダウンに必要な情報をユーザーに伝えます。フィールドを選択すると、ラベルテキスト がテキスト フィールドの中央から上に移動します。
すべてのテキスト フィールド とプルダウン ボックスにラベルが必要です。ラベルテキスト は、短く、明確で、全体的に見えるようにします。
すべきこと - 簡潔にする
ラベルのテキストは短く、明確で、完全に見えるようにします。
禁止事項 - 冗長な表現にする
ラベルのテキストは長すぎたり、切り捨てたり、複数行に渡ったりしないでください。
非推奨 - ラベルなし
ユーザーが入力すべき情報を把握できるように、必ずテキスト フィールドにラベルを付けてください。
エントリの形式
EntryFormat は、特定の形式のデータを入力する必要があることをユーザーに示すために、テキスト フィールドの下に表示されています。EntryFormat フィールドにエラー メッセージが表示され、既存の EntryFormat 手順が置き換えられます。
日付、電話番号、単位、整数には、EntryFormat を使用します。
推奨 - EntryFormat を使用する
フィールドの下に日付形式を表示し、わかりやすいフレーズを含めます。
すべきでないこと - EntryFormat を使用しない
データ形式を表示しないと、データが正しく入力されない場合があります。
推奨 - 正常範囲を表示する
医療の範囲を入力する場合は、正常範囲の例を提供します。これは、範囲外のエラーや数値を見つけるのに役立ちます。
必須項目
必須項目 は、ユーザーが各項目に入力する必要があることを示します。入力を完了するまで次に進めません。
フィールドが必須であることを示すには、質問タイトルの末尾にアスタリスク(*)を表示します。アスタリスク(*)が示す内容が明確ではないため、手順の項目には「必須の質問」と記載してください。質問のタイトルがない場合は、ラベルテキストにアスタリスク(*)を表示します。
すべきこと - 書面による説明
フィールドにアスタリスク(*)を付けて、「必須の質問」を示す手書きメモを含めます。多くのユーザーはアスタリスク(*)の意味がよくわからず、説明からメリットを得られるでしょう。
禁止事項 - 説明なし
アスタリスク(*)のみを表示するのは避け、その意味を説明してください。
すべきこと - 用語をローカライズする
ユーザーにとって最も身近な用語を使用します。たとえば、「必須」のほうがより身近な用語であり、一部の国では「必須」ではなく「必須」が使用されます。
すべきこと - 代わりに任意の質問を指定する
ほとんどの質問が必須の場合、どの質問が必須かを代わりに明示します。
すべきこと - 代わりにラベルテキストにアスタリスクを表示する
質問のタイトルがない場合は、ラベルテキストにアスタリスクを表示します。
ヘルプ
質問のタイトルの横にヘルプ アイコンが表示されます。このアイコンをタップすると、追加情報が記載されたヘルプ情報ボックスが表示されます。アイコンをもう一度タップすると
ヘルプ情報ボックスが閉じます
これは省略可能なコンポーネントです。常に表示する必要がない追加情報の表示に役立つ場合にのみ使用します。
すべきこと - ヘルプボックスに任意の情報を表示する
ユーザーが一度しか確認する必要がない情報や、追加情報が記載された情報にヘルプを使用します。
すべきでないこと - ヘルプボックスの手順を非表示にしてください
ヘルプボックスに手順を隠して、すべてのユーザーに表示されるようにします。
データ キャプチャ
Android FHIR SDK における 8 つの主要なデータ キャプチャ コンポーネント。
どのコンポーネントを使用すべきですか?
データ入力のタイプ
ブール値選択
単一選択
多肢選択式
自由選択
プルダウン
日付選択ツール
テキスト フィールド
スライダー
オートコンプリート
[Yes] または [No] を選択
check_circle
オプションを 1 つ選んでください
check_circle
check_circle
warning 注意
複数のオプションを選択
check_circle
warning 注意
テキスト
check_circle
check_circle
日付
check_circle
check_circle
数字
check_circle
warning 注意
テキスト フィールド
テキスト フィールド は、ユーザーが情報を入力できることを示します。
アンケートに名前、電話番号、住所などのテキストを入力する必要がある場合は、テキスト フィールド を使用します。事前入力された選択(多肢選択式または単一選択)を代わりに使用できる場合は、テキスト(キーボード)入力が必要なデータ入力を制限します。
material.io のテキスト フィールドの詳細
すべきこと - 一意のデータ入力用にテキスト フィールドを使用する
一意の単語や数字を入力する必要があるデータ入力にはテキスト フィールドを使用する。
非推奨 - 自由形式の回答の使用を制限する
多肢選択式、プルダウン、または単一選択式の回答になる可能性がある場合は、自由形式の回答を使用しないでください。
単一選択、ブール値
単一選択とブール値選択は、ユーザーが選択肢から 1 つを選択するよう求められたときにラジオボタンとして表示される選択コントロールです。
「はい」または「いいえ」の二者選択がある場合は、boolean choice を使用します。それ以外の場合は、単一選択 コンポーネントを使用してください。リスト内にオプションが 10 個以上ある場合は、単一選択肢 ではなくプルダウン を使用します。オプションが多い場合、プルダウンは密度が高く、操作しやすくなります。
Do - ブール値選択
オプションが「yes」または「no」の場合は、ブール値選択を使用します。
推奨事項 - 単一選択
ユーザーがリストから選択肢を 1 つ選択できる場合は、単一選択を使用します。
非推奨 - 非常に長いリスト
非常に長いリスト(10 以上)に 1 つの選択を選択することは避けてください。代わりにプルダウンを使用してください。
日付選択ツール
日付選択ツール を使用すると、カレンダーの日付選択ツールとキーボードの両方を使用して日付を入力できます。カレンダー アイコンをタップすると、カレンダーの日付選択ツールが有効になります。
カレンダーの日付選択ツールは、前回の月経や次回の訪問など、今日の日付に近い日付にのみ使用します。それ以外の場合は、生年月日などの日付のキーボード入力を優先します。
すべきこと - 両方の入力オプション
日付の入力では、キーボード入力(テキスト ボックスをタップ)とカレンダーの日付選択ツール(アイコンをタップ)の両方を有効にします。
非推奨 - カレンダーのみの使用を避ける
生年月日の唯一の入力方法として、カレンダーの日付選択ツールを有効にしないでください。月や年に移動するのは困難です。
プルダウン
プルダウン メニューでは、複数のオプションから選択できます。ユーザーが入力を開始すると、入力内容に基づいてオプションがフィルタされます。これにより、ユーザーは大規模なリストから適切なオプションをすぐに見つけることができます。
プルダウン メニュー は 1 つの選択肢 に代わる選択肢としておすすめです。選択肢の数が 10 以上あると表示されるスペースが少なくて済みます。
すべきこと - 長いリストに使用
選択肢が非常に長いリストで 1 つのオプション(州や都市など)を選択する場合はプルダウンを使用します。
非推奨 - 入力が簡単な場合
年齢などのすべてのオプションをスクロールするよりも、コンテンツを入力しやすい場合は、プルダウンの使用を避けてください。
多肢選択式
多肢選択式 は、ユーザーがオプションのリストから複数のセクションを作成できる場合に、チェックボックスとして表示される選択コントロールです。
ユーザーが既定の選択肢リストからのみ選択できる場合は、多肢選択式 を使用します。ユーザーが独自の自由回答を追加できる場合は、代わりに自由選択 コンポーネントを使用します。instructions フィールドに「該当するものをすべて選択してください」と記入して、ユーザーが複数のオプションを選択できることを理解します。
すべきこと - 行ごとに 1 つの選択を行う
デフォルトでは、チェックボックスを囲むコンテナがタップ可能な領域をわかりやすくするコンテナになっています。
非推奨 - 1 行に複数のオプションを表示する
1 行に複数のオプションを表示することは避けてください。スマートフォンの画面サイズやテキストサイズが異なると、テキストが途切れる可能性があります。
自由選択
自由選択 は、多肢選択式と似ていますが、ユーザーが [その他 ] を選択して自由にテキストを入力できます。
選択肢のリストが事前に設定されているが、ユーザーが他の選択肢も追加できる場合は、自由選択 を使用します。大部分の選択肢がわかっているが、指定されたオプションのいずれも該当しないため、一部のユーザーが [その他 ] を選択することが予想される場合は、自由選択 を使用します。
すべき - より正確なデータを収集するために使用する
正確なデータを収集することが重要であり、事前定義されたオプションのいずれも該当しない場合に使用します。例: 職業。
非推奨 - すべての回答がその他の場合
回答の大部分で [その他 ] を選択する必要がある場合は、使用しないでください。そのような場合は、代わりにテキスト フィールドまたは段落フィールドを使用してください。
スライダー
スライダー を使用すると、ユーザーは複数の値から値を選択できます。Android FHIR SDK のスライダーは、独立したスライダーです。個別のスライダーを使用すると、ユーザーは事前に定義された範囲から特定の値を選択できます。使用可能な値を示すためにチェックマークを使用できます。数値データ入力にはスライダーを使用しないでください。代わりに、テキスト フィールドまたはプルダウン メニューを使用してください。
material.io のスライダーの詳細
非推奨 - 特定の数値にスライダーを使用する
範囲が大きい場合は、特定の値にスライダーを使用することは避けてください。代わりに、キーボード入力でテキスト フィールドを使用してください。
データの検証とエラー
データの検証
データの検証では、テキスト フィールドに入力できるデータの種類や値が制約されます。データの検証により、収集されるデータの品質を向上させることができます。
形式または値の制限を表示するには、EntryFormat フィールドを使用します。意味のあるデータ検証エラー メッセージをインラインですぐに表示し、ユーザーがエラーを修正できるようにします。
すべきこと - 検証の制限を表示する
データの検証制限を事前に示し、ユーザーがデータの入力方法を理解できるようにします。
すべきでないこと - 検証制限を隠す
電話番号の桁数を表示しないと、ユーザーにエラーが発生して完了までの時間が長くなります。
すべきこと - 検証エラーを直ちに表示する
フィールドに入力した直後に有意なデータ検証エラーを表示する。既存のエントリ形式のテキストがエラー メッセージに置き換えられます。
すべきでないこと - 送信が完了するまで待つ
ユーザーが [送信] を押して検証エラーが初めて表示されるまで待たないでください。
エラー
エラー メッセージは、問題が発生したときにユーザーに警告し、問題の解決方法を伝えます。
色、アイコン、テキストを使用してエラーを伝えます。
material.io のエラー メッセージの詳細
すべきこと - エラーの修正方法を明記する
エラーが生じた理由(必須の質問)と解決方法について説明する(1 つ選択)
非推奨 - 「error」とのみ記載
「error」とだけ記載されたエラー メッセージは、ユーザーがエラーの修正方法を知るうえで役に立ちません。
すべきこと - 過失を責めずにエラーを修正する方法を説明する
例: 「日付の形式が正しくありません。dd/mm/yyyy の形式で指定してください。
すべきでないこと - ユーザーを責めない
「あなた」を含むエラー メッセージでユーザーを責めない。例: 「入力した日付形式が間違っている」
すべきこと - 複数の手がかり
色、アイコン、テキストを使用して、エラーがあることをユーザーに伝えます。
すべきでないこと - 色にのみ頼る
赤緑の色覚障害のような一般的な視覚障がいをサポートするには、色のみに頼ってエラーを伝えないようにします。
非推奨 - アイコンの使いすぎ
多くの場合、アイコンは 1 つで十分です。エラーを伝えるためにアイコンを使いすぎないでください。