リスト コントロールの種類
このトピックでは、リスト コントロールの種類に対する Microsoft UI オートメーションのサポートについて説明します。
リスト コントロールの種類は、フラット グループまたは項目のグループを整理する方法を提供し、ユーザーがそれらの項目の 1 つ以上を選択できるようにします。 リスト コントロール型には、含まれる可能性がある子要素の種類に関する緩やかな制限があります。 これにより、UI オートメーション プロバイダーは、選択コンテナーの既知の要素をサポートできます。
次のセクションでは、List コントロール型に必要な UI オートメーション ツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。 UI オートメーションの要件は、UI フレームワーク/プラットフォームがコントロールの種類とコントロール パターンに対する UI オートメーションのサポートを統合するすべてのリスト コントロールに適用されます。
このトピックには、次のセクションが含まれています。
- 一般的なツリー構造の
- 関連するプロパティ を する
- 必要なコントロール パターンとプロパティの
- 必要なイベント を する
- 関連トピック
一般的なツリー構造
次の表は、リスト コントロールに関連する UI オートメーション ツリーの一般的なコントロールとコンテンツ ビューを示し、各ビューに含めることができる内容を示しています。 UI オートメーション ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。
コントロール ビュー | コンテンツ ビュー |
---|---|
コントロールに対応する要素を格納します。 | 支援テクノロジがエンド ユーザーにとって意味のある最小の情報セットで機能するように、ツリーから冗長な情報を削除します。 |
|
|
List コントロール型 (リスト コントロールなど) を実装するコントロールのコントロール ビューは、次の要素で構成されます。
- リスト コントロール内の 0 個以上の項目 (項目は、ListItem または DataItem コントロール型 に基づく場合があります)
- リスト コントロール内の 0 個以上のグループ コントロール
- 0、1、または 2 つのスクロール バー コントロール
リスト コントロールの種類 (リスト コントロールなど) を実装するコントロールのコンテンツ ビューは、次の要素で構成されます。
リスト コントロールには、グループ化される以外の階層リレーションシップを持つ項目を含めてはなりません。 項目に UI オートメーション ツリーに子がある場合、リスト コンテナーはコントロールの種類 ツリーに基づいている必要があります。
リスト コントロール内で選択可能な項目は、リスト コントロールの UI オートメーション ツリーの子孫から使用できます。 リスト コントロール内のすべての項目は、同じ選択グループに属している必要があります。 リスト内の選択可能な項目は、(DataItem ではなく) コントロール型ListItem として公開する必要があります。
関連するプロパティ
次の表に、List コントロール型に特に関連する値または定義を持つ UI オートメーション プロパティの一覧を示します。 UI オートメーション プロパティの詳細については、「UI オートメーション要素からプロパティを取得する」を参照してください。
UI オートメーション プロパティ | 価値 | 筆記 |
---|---|---|
UIA_AutomationIdPropertyId | ノートを参照してください。 | このプロパティの値は、UI オートメーション ツリーの生ビュー内のすべてのピア要素で一意である必要があります。 |
UIA_BoundingRectanglePropertyId | ノートを参照してください。 | コントロール全体を含む最も外側の四角形。 |
UIA_ClickablePointPropertyId | ノートを参照してください。 | リスト コントロールにクリック可能なポイント (リストにフォーカスを移動させるためにクリックできるポイント) がある場合は、このプロパティを使用してそのポイントを公開する必要があります。 UIA_IsOffscreenPropertyId プロパティの値が TRUE 場合、このプロパティを取得しようとすると、UIA_E_NOCLICKABLEPOINT エラーが発生します。 |
UIA_ControlTypePropertyId | リスト | |
UIA_HelpTextPropertyId | ノートを参照してください。 | リスト コントロールのヘルプ テキストでは、ユーザーがオプションの一覧から選択を求められる理由を説明する必要があります。 たとえば、「このリストから項目を選択すると、モニターの表示解像度が設定されます」などです。 |
UIA_IsContentElementPropertyId | TRUE | リスト コントロールは、常に UI オートメーション ツリーのコンテンツ ビューに含まれます。 |
UIA_IsControlElementPropertyId | TRUE | リスト コントロールは、常に UI オートメーション ツリーのコントロール ビューに含まれます。 |
UIA_IsKeyboardFocusablePropertyId | ノートを参照してください。 | コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。 |
UIA_LabeledByPropertyId | ノートを参照してください。 | 静的なテキスト ラベルがある場合、このプロパティはそのコントロールへの参照を公開する必要があります。 |
UIA_LocalizedControlTypePropertyId | ノートを参照してください。 | List コントロール型に対応するローカライズされた文字列。 既定値は、en-US または英語 (米国) の場合は "list" です。 |
UIA_NamePropertyId | ノートを参照してください。 | リスト コントロールの Name プロパティの値は、ユーザーが選択を求めるオプションのカテゴリを伝える必要があります。 通常、このプロパティは静的テキスト ラベルから名前を取得します。 静的テキスト ラベルがない場合、アプリケーション開発者は Name プロパティの値を公開する必要があります。 リスト コントロールにこのプロパティが必要ないのは、コントロールが別のコントロールのサブツリー内で使用される場合だけです。 |
必要なコントロール パターンとプロパティ
次の表に、すべてのリスト コントロールでサポートされる必要がある UI オートメーション コントロール パターンを示します。 コントロール パターンの詳細については、「UI オートメーション コントロール パターンの概要」を参照してください。
Control Pattern/Pattern プロパティ | サポート/値 | 筆記 |
---|---|---|
IGridProviderの | 依存 | 項目ごとにグリッド ナビゲーションを使用できるようにする必要がある場合に、Grid コントロール パターンを実装します。 |
IMultipleViewProviderの | 依存 | コントロールがコンテナー内の項目の複数のビューをサポートできる場合は、MultipleView コントロール パターンを実装します。 |
IScrollProviderの | 依存 | コンテナー内の項目がスクロール可能な場合は、Scroll コントロール パターンを実装します。 |
ISelectionProviderの | 依存 | コントロールが選択をサポートするリスト コントロール型をサポートしている場合、コントロールに含まれる項目間で選択状態が維持される場合、コントロールはコントロール パターン Selection を実装する必要があります。 コントロール内の項目が選択できない場合は、グループ コントロールの種類を使用できます。 |
CanSelectMultiple | 依存 | リスト コントロールには、単一または複数選択のコンテナーを指定できます。 |
IsSelectionRequiredの | 依存 | リスト コントロールでは、必ずしも項目を選択する必要はありません。 |
ITableProviderの | 一度もない | Table コントロール パターンは、List コントロール型ではサポートされていません。 コントロールがこのコントロール パターンをサポートする必要がある場合、コントロールは、DataGrid コントロール型に基づいている必要があります。 |
必要なイベント
次の表に、サポートするために必要なコントロールを一覧表示する UI オートメーション イベントを示します。 イベントの詳細については、「UI オートメーション イベントの概要」を参照してください。
UI オートメーション イベント | 筆記 |
---|---|
UIA_AutomationFocusChangedEventId | |
プロパティ変更イベント UIA_BoundingRectanglePropertyId します。 | |
プロパティ変更イベントを UIA_IsEnabledPropertyId します。 | コントロールが IsEnabled プロパティをサポートしている場合は、このイベントをサポートする必要があります。 |
プロパティ変更イベント UIA_IsOffscreenPropertyId します。 | コントロールが IsOffscreen プロパティをサポートしている場合は、このイベントをサポートする必要があります。 |
UIA_LayoutInvalidatedEventId | 子項目のレイアウトを変更できる場合、コントロールはこのイベントをサポートする必要があります。 |
プロパティ UIA_MultipleViewCurrentViewPropertyId 変更されたイベントです。 | コントロールが MultipleView コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。 |
プロパティ変更イベント UIA_ScrollHorizontallyScrollablePropertyId します。 | コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。 |
プロパティ変更イベント UIA_ScrollHorizontalScrollPercentPropertyId します。 | コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。 |
プロパティ変更イベント UIA_ScrollHorizontalViewSizePropertyId します。 | コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。 |
プロパティ変更イベント UIA_ScrollVerticalScrollPercentPropertyId します。 | コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。 |
プロパティ変更イベント UIA_ScrollVerticallyScrollablePropertyId します。 | コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。 |
プロパティ変更イベント UIA_ScrollVerticalViewSizePropertyId します。 | コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。 |
UIA_Selection_InvalidatedEventId | コントロールが Selection コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。 |
UIA_StructureChangedEventId |