次の方法で共有


リスト コントロールの種類

このトピックでは、リスト コントロールの種類に対する Microsoft UI オートメーション のサポートについて説明します。

リスト コントロールの種類は、フラット グループまたは項目のグループを整理する方法を提供し、ユーザーがそれらの項目の 1 つ以上を選択できるようにします。 List コントロール型には、含まれる子要素の種類に関する緩やかな制限があります。 これにより、UI オートメーション プロバイダーは選択コンテナーの既知の要素をサポートできます。

次のセクションでは、List コントロール型に必要なUI オートメーションツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。 UI オートメーション要件は、UI フレームワーク/プラットフォームがコントロールの種類とコントロール パターンのサポートUI オートメーション統合するすべてのリスト コントロールに適用されます。

このトピックは、次のセクションで構成されています。

一般的なツリー構造

次の表は、リスト コントロールに関連するUI オートメーション ツリーの一般的なコントロールとコンテンツ ビューを示し、各ビューに含めることができる内容について説明します。 UI オートメーション ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。

コントロール ビュー コンテンツ ビュー
コントロールに対応する要素が含まれています。 ツリーから冗長な情報を削除して、エンド ユーザーにとって意味のある最小の情報セットを支援テクノロジが操作できるようにします。
  • List
    • DataItem (0 以上)
    • ListItem (0 以上)
    • Group (0 以上)
    • ScrollBar (0、1、または 2)
  • List
    • DataItem (0 以上)
    • ListItem (0 以上)
    • Group (0 以上)

List コントロール型 (リスト コントロールなど) を実装するコントロールのコントロール ビューは以下で構成されます。

  • リスト コントロール内の 0 個以上の項目 (項目は ListItem コントロール型または DataItem コントロール型に基づく場合があります)
  • リスト コントロール内の 0 個以上のグループ コントロール
  • 0、1、または 2 個のスクロール バー コントロール。

List コントロール型 (リスト コントロールなど) を実装するコントロールのコンテンツ ビューは以下で構成されます。

  • リスト コントロール内の 0 個以上の項目 (項目は ListItem コントロール型または DataItem コントロール型に基づく場合があります)
  • リスト コントロール内の 0 個以上のグループ

リスト コントロールには、一緒にグループ化されていない階層リレーションシップを持つ項目を含めることはできません。 項目にUI オートメーション ツリーに子がある場合、リスト コンテナーは Tree コントロールの種類に基づいている必要があります。

リスト コントロール内の選択可能項目は、リスト コントロールの UI オートメーション ツリーの子孫から取得されます。 リスト コントロール内のすべての項目は、同じ選択グループに属している必要があります。 リスト内の選択可能な項目は、(DataItem ではなく) ListItem コントロール型として公開する必要があります。

関連するプロパティ

次の表に、値または定義が List コントロール型に特に関連するUI オートメーションプロパティの一覧を示します。 UI オートメーションプロパティの詳細については、「UI オートメーション要素からのプロパティの取得」を参照してください。

UI Automation のプロパティ Notes
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 Automation Control Patterns Overview」を参照してください。

コントロール パターン/パターン プロパティ サポート/値 Notes
IGridProvider 依存 項目ごとに グリッド ナビゲーションを使用できるようにする必要がある場合に、グリッド コントロール パターンを実装します。
IMultipleViewProvider 依存 コントロールがコンテナー内の項目の複数のビューをサポートできる場合は、 MultipleView コントロール パターンを実装します。
IScrollProvider 依存 コンテナー内の項目が スクロール 可能な場合は、スクロール コントロール パターンを実装します。
ISelectionProvider 依存 コントロールが選択をサポートする List コントロール型をサポートしている場合、コントロールに含まれる項目間で選択状態が維持される場合、コントロールは Selection コントロール パターンを実装する必要があります。 コントロール内の項目が選択できない場合は、 グループ コントロールの種類を使用できます。
CanSelectMultiple 依存 リスト コントロールでは、コンテナーを 1 つまたは複数選択できます。
IsSelectionRequired 依存 リスト コントロールでは、常に項目を選択する必要があるわけではありません。
ITableProvider 行わない List コントロールの種類では、Table コントロール パターンはサポートされていません。 コントロールがこのコントロール パターンをサポートする必要がある場合、コントロールは DataGrid コントロール型に基づいている必要があります。

必須イベント

次の表に、コントロールをサポートするために必要なUI オートメーション イベントの一覧を示します。 イベントの詳細については、「 UI Automation Events Overview」を参照してください。

UI オートメーション イベント Notes
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

概念

UI オートメーション コントロール型の概要

UI オートメーションの概要