Windows アプリでのユーザー操作は、マウス、キーボード、ペン、タッチ、タッチパッド、音声などの入力ソースと出力ソースを組み合わせたものです。 また、マウス ホイールとボタン、ペン消しゴムとバレル ボタン、タッチ キーボード、バックグラウンド アプリ サービスなど、拡張エクスペリエンスを可能にするモードや修飾子も含まれています。
Windowsでは、ほとんどの場合、各入力の種類を個別に処理する必要がなくなり、コンテキスト対話システムが使用されます。 これには、タッチ、タッチパッド、マウス、ペン入力を汎用ポインター型として処理し、タップや長押しなどの静的ジェスチャ、パン用スライドなどの操作ジェスチャ、デジタル インク レンダリングをサポートすることが含まれます。
各入力デバイスの種類と、特定のフォーム ファクターと組み合わせて使用する場合の動作、機能、制限事項について理解します。 これにより、プラットフォームコントロールとアフォーダンスがアプリに十分かどうか、またはカスタムの対話エクスペリエンスを提供する必要があるかどうかを判断するのに役立ちます。
簡単な概要
- Windows入力機能には、音声、ペン、タッチ、タッチパッド、キーボード、マウス、ジェスチャ、ゲームパッド/コントローラー、触覚などがあります。
- タッチ、タッチパッド、マウス、ペンはすべて、一般的な操作のための統合ポインター モデルに参加できます。
- 各入力の種類には、それぞれ異なる強みがあります。 ほとんどのアプリでは、1 つだけでなく、複数の入力の種類をサポートする必要があります。
- 触覚とテキスト読み上げは、明確さとアクセシビリティを向上させる補完的なフィードバック チャネルです。
入力機能の概要
| 入力機能 | 主なシナリオ | 主な強み | 一般的な制約 |
|---|---|---|---|
| 音声 | 自然言語、コマンドと制御、ディクテーション | ハンズフリーの操作、アクセシビリティ、生産性 | 音声の品質と意図の理解は、環境とアプリの設計によって異なります |
| ペン | インク、注釈、高精度ポインティング | ピクセルレベルの精度、圧力と傾きのデータ、自然な手書き | パッシブペンは機能が限られており、手のひらの拒否が弱い |
| Touch | 直接操作、ナビゲーション、テキスト入力、手描き入力のサポート | 自然なジェスチャー、マルチタッチ操作、触覚感 | デバイスのサポートは、タッチなしからフル マルチタッチまで異なります |
| Touchpad | 間接ジェスチャ入力とポインターの精度 | タッチ最適化と生産性の UI に適しています | 間接入力では、検出可能性のために追加のアフォーダンスが必要な場合があります |
| Keyboard | テキスト入力、ナビゲーション、コマンド、アクセシビリティ | 高速入力、広範なコマンド カバレッジ、強力なアクセシビリティサポート | タッチ キーボードはテキストのみであり、完全なコマンド入力を置き換えません |
| Mouse | 精度のターゲット設定とコマンド負荷の高い UI | きめ細かな制御、修飾キー、幅広い知識 | タッチ操作ほど直接操作パターンには適していない |
| ジェスチャ | タップ/長押しと操作インタラクション | 慣性データを含む静的および継続的な相互作用をサポート | カスタム ジェスチャはカルチャとロケールに依存する場合があります |
| ゲームパッド/コントローラー | ゲーム入力とコンソール スタイルのナビゲーション | 方向ナビゲーションと特殊なゲーム コントロール | 一般的な生産性テキスト入力ではなく、集中したシナリオに最適 |
| 触覚 | 確認と境界のフィードバック | タッチ フィードバックを使用して対話を強化する | サポートされているハードウェアが必要であり、ビジュアル/オーディオキューを補完する必要がある |
複数の入力を設計する方法
- 可能な場合は、入力の種類全体のコア アクションに同等のパスを指定します。
- 重要なコマンドに対して 1 つのモダリティに依存しないでください。
- 直接入力と間接入力の両方で、UI アフォーダンスを検出可能な状態に保ちます。
- 実際のハードウェアの組み合わせ (タッチ専用、キーボードとマウス、ペン対応デバイスなど) での相互作用を検証します。
音声
音声は、ユーザーがアプリを操作するための効果的で自然な方法です。 これは、アプリと簡単かつ正確に通信する方法であり、多くの状況で生産性を維持し、情報を得るのに役立ちます。
音声は、ユーザーのデバイスに応じて、主な入力の種類を補完したり、多くの場合に使用したりできます。
テキスト読み上げ (TTS または音声合成とも呼ばれます) は、ユーザーに通知または指示するために使用されます。
デバイスのサポート
- タブレット
- PC とノート PC
一般的な使用
音声操作には、次の 3 つのモードがあります。
自然言語
自然言語とは、人々と定期的に対話する方法です。 私たちのスピーチは人や状況によって異なり、一般的に理解されています。 そうでない場合は、多くの場合、同じアイデアを得るために異なる単語と単語の順序を使用します。
アプリとの自然言語の対話も似ています。デバイスを介してアプリに話しかけるのは、それが人であるかのように行われ、それに応じて理解して対応することを期待しています。
自然言語は、最も高度な音声対話モードです。
コマンドとコントロール
コマンドとコントロールは、音声コマンドを使用して、ボタンのクリックやメニュー項目の選択などのコントロールと機能をアクティブ化することです。
コマンドと制御はユーザー エクスペリエンスを成功させるために不可欠であるため、単一の入力の種類に依存しないでください。 音声は、通常、ユーザー設定またはハードウェア機能に基づくいくつかの入力オプションの 1 つです。
ディクテーション
ディクテーションは、最も基本的な音声入力方法です。 各発話はテキストに変換されます。
ディクテーションは通常、アプリが意味や意図を理解する必要がない場合に使用されます。
詳細情報
ペン
ペン (またはスタイラス) は、マウスのようなピクセル精度のポインティング デバイスとして機能し、デジタル インク入力に最適なデバイスです。
Note
ペン デバイスには、アクティブとパッシブの 2 種類があります。
- パッシブ ペンにはエレクトロニクスが含まれていないので、指からのタッチ入力を効果的にエミュレートします。 接触圧力に基づいて入力を認識する基本的なデバイスディスプレイが必要です。 ユーザーは入力面上で文字を書く際、しばしば手を置いてしまうため、手のひら認識がうまく機能しないことが原因で、入力データにノイズが混入する場合があります。
- アクティブ ペンにはエレクトロニクスが含まれており、複雑なデバイスディスプレイと連携して、システムとアプリに対してより広範な入力データ (ホバーデータや近接データを含む) を提供できます。 手のひら拒否機能ははるかに強化されています。
ここでペン デバイスを参照する場合、豊富な入力データを提供し、主に正確なインクとポインティング操作に使用されるアクティブペンを参照しています。
デバイスのサポート
- タブレット
- PC とノート PC
一般的な使用
Windows インク プラットフォームは、ペンと共に、手書きのメモ、描画、注釈を作成する自然な方法を提供します。 このプラットフォームでは、デジタイザー入力からのインク データのキャプチャ、インク データの生成、出力デバイスでのインク ストロークとしてのデータのレンダリング、インク データの管理、手書き認識の実行がサポートされています。 ユーザーが書き込んだり描画したりするときのペンの空間的な動きをキャプチャするだけでなく、アプリは圧力、形状、色、不透明度などの情報を収集して、ペン、鉛筆、またはブラシで紙に描画するのとよく似たユーザー エクスペリエンスを提供することもできます。
そのタッチでペンとタッチ入力が分岐すると、物理的なジェスチャ (スワイプ、スライド、ドラッグ、回転など) を介して、画面上の UI 要素の直接操作をエミュレートできます。
これらの操作をサポートするには、ペン固有の UI コマンド (アフォーダンス) を指定する必要があります。 たとえば、[前へ] ボタンと [次へ] ボタン (または [+] ボタンと [-] ボタン) を使用して、ユーザーがコンテンツのページをめくったり、オブジェクトの回転、サイズ変更、ズームを行ったりできます。
詳細情報
Touch
タッチを使用すると、1 本以上の指からの物理的なジェスチャで、UI 要素の直接操作 (パン、回転、サイズ変更、移動など) をエミュレートしたり、代替入力方法 (マウスやペンに似た方法) として機能したり、他の入力 (ペンで描画されたインク ストロークを汚すなど) を補完したりできます。 これらの触覚エクスペリエンスは、ユーザーが画面上の要素と対話するにつれて、より自然で現実世界の感覚を提供できます。
デバイスのサポート
- タブレット
- PC とノート PC
一般的な使用
タッチ入力のサポートは、デバイスによって大きく異なる場合があります。
タッチをまったくサポートしていないデバイスもあれば、シングル タッチ連絡先をサポートするデバイスもあれば、マルチタッチ (2 つ以上の連絡先) をサポートするデバイスもあります。
マルチタッチ入力をサポートするほとんどのデバイスは、10 個の一意の同時連絡先を認識します。
一般に、タッチは次のようになります。
- 1 人のユーザー。
- デバイスの向きに制約されません。
- テキスト入力 (タッチ キーボード) や手描き入力 (アプリが構成済み) など、すべての操作に使用されます。
詳細情報
Touchpad
タッチパッドは、間接的なマルチタッチ入力と、マウスなどのポインティング デバイスの精度入力の両方を組み合わせたものです。 この組み合わせにより、タッチパッドはタッチ最適化 UI と生産性アプリの小さなターゲットの両方に適しています。
デバイスのサポート
- PC とノート PC
一般的な使用
通常、タッチパッドは、オブジェクトと UI を直接操作するためのタッチに似たサポートを提供するタッチ ジェスチャのセットをサポートします。
タッチパッドはタッチと同様の操作エクスペリエンスをサポートするため、タッチサポートのみに依存するのではなく、マウススタイルの UI コマンドやアフォーダンスも提供することをお勧めします。 これらの操作にタッチパッド固有の UI コマンドまたはアフォーダンスを提供します。
これらの操作をサポートするには、マウス固有の UI コマンド (アフォーダンス) を指定する必要があります。 たとえば、[前へ] ボタンと [次へ] ボタン (または [+] ボタンと [-] ボタン) を使用して、ユーザーがコンテンツのページをめくったり、オブジェクトの回転、サイズ変更、ズームを行ったりできます。
詳細情報
Keyboard
キーボードはテキストの主要な入力デバイスであり、多くの場合、特定の障碍を持つユーザーや、アプリを操作するより迅速かつ効率的な方法であると考えるユーザーにとって不可欠です。
デバイスのサポート
- タブレット
- PC とノート PC
一般的な使用
ユーザーは、ハードウェア キーボードと 2 つのソフトウェア キーボード (スクリーン キーボード (OSK) とタッチ キーボード) を使用して Windows アプリを操作できます。
OSK は、タッチ、マウス、ペン/スタイラス、または別のポインティング デバイス (タッチ スクリーンは不要) を使用してデータを入力および入力するために、物理キーボードの代わりに使用できる視覚的なソフトウェア キーボードです。 OSK は、物理キーボードを持たないシステム、または身体障碍によって従来の物理入力デバイスを使用できないユーザー向けに提供されます。 OSK は、すべてではないにしても、ほとんどのハードウェア キーボード機能をエミュレートします。
タッチ キーボードは、タッチ入力によるテキスト入力に使用されるビジュアルのソフトウェア キーボードです。 これは、テキスト入力にのみ使用され (ハードウェア キーボードはエミュレートされません)、テキスト フィールドまたは別の編集可能なテキスト コントロールがフォーカスを取得した場合にのみ表示されるため、OSK の代わりではありません。 タッチ キーボードは、アプリまたはシステム コマンドをサポートしていません。
Note
OSK はタッチ キーボードよりも優先され、OSK が存在する場合は表示されません。
一般に、キーボードは次のとおりです。
- 1 人のユーザー。
- デバイスの向きに制約されません。
- テキスト入力、ナビゲーション、ゲームプレイ、アクセシビリティに使用されます。
- プロアクティブまたはリアクティブにいつでも使用できます。
詳細情報
Mouse
マウスは、生産性アプリや高密度 UI に最適です。ユーザーの操作では、ターゲット設定とコマンド実行にピクセル レベルの精度が必要です。
デバイスのサポート
- タブレット
- PC とノート PC
一般的な使用
マウス入力は、さまざまなキーボード キー (Ctrl、Shift、Alt など) を追加することで変更できます。 これらのキーは、マウスの左ボタン、マウスの右ボタン、ホイール ボタン、および拡張されたマウス最適化コマンド セットの X ボタンと組み合わせることができます。 (一部の Microsoft マウス デバイスには、X ボタンと呼ばれる 2 つの追加ボタンがあり、通常は Web ブラウザーで前後に移動するために使用されます)。
ペンと同様に、マウスとタッチの入力は、そのタッチで分岐し、それらのオブジェクトに対して実行される物理的なジェスチャ (スワイプ、スライド、ドラッグ、回転など) を通じて、画面上の UI 要素の直接操作をエミュレートできます。
これらの操作をサポートするには、マウス固有の UI コマンド (アフォーダンス) を指定する必要があります。 たとえば、[前へ] ボタンと [次へ] ボタン (または [+] ボタンと [-] ボタン) を使用して、ユーザーがコンテンツのページをめくったり、オブジェクトの回転、サイズ変更、ズームを行ったりできます。
詳細情報
ジェスチャ
ジェスチャは、アプリケーションを制御または操作するための入力として認識される任意の形式のユーザー移動です。 ジェスチャーは、手を使って画面上の何かをターゲットにするだけで、特定の学習された動きのパターン、体全体を使った連続した動きの長いストレッチまで、多くの形を取ります。 カスタム ジェスチャを設計する場合は、ロケールとカルチャによって意味が異なる可能性があるため、注意が必要です。
デバイスのサポート
- PC とノート PC
一般的な使用
静的ジェスチャ イベントは、対話が完了した後に発生します。
- 静的ジェスチャ イベントには、Tapped、DoubleTapped、RightTapped、Holding などがあります。
操作ジェスチャ イベントは、進行中の操作を示します。 ユーザーが要素に触れたときに発生し、ユーザーが指を離すか操作がキャンセルされるまで継続します。
操作イベントには、ズーム、パン、回転などのマルチタッチ操作や、慣性と速度データを使用するドラッグなどの操作が含まれます。 (操作イベントによって提供される情報は、相互作用を識別するのではなく、位置、翻訳デルタ、速度などのデータを提供します)。
PointerPressed や PointerMoved などのポインター イベントは、ポインターの動きや、プレス イベントとリリース イベントを区別する機能など、各タッチ接触の低レベルの詳細を提供します。
Windowsは集中型の操作エクスペリエンスをサポートするため、タッチサポートのみに依存するのではなく、マウススタイルの UI コマンドやアフォーダンスも提供することをお勧めします。 たとえば、[前へ] ボタンと [次へ] ボタン (または [+] ボタンと [-] ボタン) を使用して、ユーザーがコンテンツのページをめくったり、オブジェクトの回転、サイズ変更、ズームを行ったりできます。
ゲームパッド/コントローラー
ゲームパッド/コントローラーは、通常、ゲームをプレイするために専用の高度に特殊化されたデバイスです。 ただし、基本的なキーボード入力をエミュレートするためにも使用され、キーボードとよく似た UI ナビゲーション エクスペリエンスが提供されます。
デバイスのサポート
- PC とノート PC
一般的な使用
ゲームをプレイし、特殊なコンソール スタイルの UI を操作する。
触覚
触覚フィードバックは、デジタル操作にタッチ感を追加し、ユーザー入力を強化し、エクスペリエンスの応答性を高める物理的な確認を提供します。 Windowsでは、InputHapticsManager API を介したコンテキスト触覚フィードバックがサポートされており、サポートされているデバイス間でアプリが一貫したタッチ フィードバックを提供できます。
デバイスのサポート
- サポートされている触覚ハードウェアを搭載した PC とノート PC
一般的な使用
触覚フィードバックは、タッチ、ペン、またはタッチパッドの操作と組み合わせて使用する場合に最も効果的です。 一般的な用途には、ボタンの押下の確認、ドラッグ アンド ドロップ操作中のフィードバックの提供、ジェスチャの境界の強化などがあります。 触覚は視覚と聴覚のフィードバックを補完する必要があり、置き換える必要はありません。
詳細情報
複数の入力
できるだけ多くのユーザー、デバイス、入力の種類 (ジェスチャ、音声、タッチ、タッチパッド、マウス、キーボード) をサポートするようにアプリを設計すると、柔軟性、使いやすさ、アクセシビリティが最大限に高められます。
デバイスのサポート
- タブレット
- PC とノート PC
一般的な使用
ユーザーが互いに通信するときに音声とジェスチャを組み合わせるのと同様に、アプリを操作するときに複数の入力の種類とモードを利用できます。 ただし、これらの組み合わせの相互作用は、直感的で自然なままである必要があります。または、混乱を招く可能性があります。
Windows developer