次の方法で共有


UI オートメーションによる List コントロール型のサポート

メモメモ

このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージ UI Automation クラスを使用する .NET Framework 開発者を対象としています。UI Automationに関する最新情報については、「Windows Automation API: UI Automation (Windows オートメーション API: UI オートメーション)」を参照してください。

ここでは、UI Automationによる List コントロール型のサポートに関する情報を示します。 UI Automationでは、コントロール型は、ControlTypeProperty プロパティを使用するためにコントロールで満たす必要がある一連の条件となります。 これらの条件には、UI Automation ツリー構造、UI Automationのプロパティ値、およびコントロール パターンに関する特定のガイドラインが含まれます。

List コントロール型では、項目を 1 つのフラットなグループや複数のグループに編成でき、ユーザーはそれらの項目の 1 つ以上を選択することができます。 List コントロール型には、リストに含まれる子要素の型について緩い制限があります。 これにより、UI オートメーション プロバイダーは、選択コンテナーで既知の要素をサポートできます。

以下で説明する UI Automationの各要件は、Windows Presentation Foundation (WPF)、Win32、Windows Formsのいずれの場合でも、List コントロール型を実装するすべてのコントロールに当てはまります。 List コントロール型を実装するコントロールとしては、リスト コンテナー コントロールなどがあります。

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

  • 必須の UI オートメーション ツリー構造
  • 必須の UI オートメーション プロパティ
  • 必須の UI オートメーション コントロール パターンおよびプロパティ
  • 必須の UI オートメーション イベント
  • 関連トピック

必須の UI オートメーション ツリー構造

次の表に、リスト コントロールに関連する UI Automation ツリーの 2 つのビューを示し、各ビューに何を格納できるかについて説明します。 コントロール ビューにはコントロールの要素だけが含まれ、コンテンツ ビューではツリーから重複する情報が削除されます。 たとえば、コンボ ボックスにラベルを付けるために使用されるテキスト コントロールは、ComboBox NameProperty として公開されます。 このテキスト コントロールは、その方法でコントロール ビューを通じて既に公開されており、2 回公開する必要はないため、コンテンツ ビューからは削除されます。 UI Automation ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。

コントロール ビュー

コンテンツ ビュー

コントロールに対応する要素が含まれます。

支援テクノロジがエンド ユーザーにとって最小限の有用な情報を処理できるように、ツリーから重複する情報を削除します。

[一覧]

  • DataItem (0 以上)

  • ListItem (0 以上)

  • Group (0 以上)

  • ScrollBar (0、1 または 2)

[一覧]

  • DataItem (0 以上)

  • ListItem (0 以上)

  • Group (0 以上)

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

  • リスト コントロール内のゼロ以上の項目 (項目は、List Item コントロールまたは Data Item コントロールの各型に基づいて設定できます)

  • リスト コントロール内のゼロ以上のグループ コントロール

  • 0、1、または 2 個のスクロール バー コントロール

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

  • リスト コントロール内のゼロ以上の項目 (項目は、List Item コントロールまたは Data Item コントロールの各型に基づいて設定できます)

  • リスト コントロール内のゼロ以上のグループ

リスト コントロールには、グループ化以外の階層リレーションシップを持つ項目を含めることはできません。 項目が UI Automation ツリー内に子を持っている場合、リスト コンテナーはツリー コントロール型に基づく必要があります。

リスト コントロール内の選択可能な項目には、リスト コントロールの UI Automation ツリー内の子孫を使用できます。 リスト コントロール内のすべての項目は同じ選択グループに属している必要があります。 一覧の選択可能な項目は、ListItem (DataItem ではなく) コントロール型として公開される必要があります。

必須の UI オートメーション プロパティ

値または定義がリスト コントロールに特に関連する UI Automationのプロパティの一覧を次の表に示します。 UI Automation プロパティの詳細については、「クライアントの UI オートメーション プロパティ」を参照してください。

UI Automation プロパティ

説明

AutomationIdProperty

説明を参照。

このプロパティの値は、アプリケーションのすべてのコントロールで一意にする必要があります。

BoundingRectangleProperty

説明を参照。

コントロール全体を包含する外側の四角形。

ClickablePointProperty

説明を参照。

リスト コントロールにクリック可能なポイント (クリックするとリストがフォーカスを受け取るポイント) がある場合、そのポイントはこのプロパティを介して公開される必要があります。

IsOffScreen プロパティの値が true の場合、NoClickablePointException が発生します。

IsKeyboardFocusableProperty

説明を参照。

コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。

NameProperty

説明を参照。

リスト コントロールの Name プロパティの値は、ユーザーが選択を求められるオプションのカテゴリを伝える必要があります。 通常このプロパティは、静的テキスト ラベルからその名前を取得します。 静的テキスト ラベルが存在しない場合、アプリケーション開発者は Name プロパティの値を公開する必要があります。

このプロパティがリスト コントロールに不要となるのは、コントロールが別のコントロールのサブツリー内で使用されている場合だけです。

LabeledByProperty

説明を参照。

静的テキスト ラベルが存在する場合、このプロパティは、該当するコントロールへの参照を公開する必要があります。

ControlTypeProperty

[一覧]

この値は、すべての UI フレームワークで共通です。

LocalizedControlTypeProperty

"リスト"

List コントロール型に対応する、ローカライズされた文字列。

IsContentElementProperty

True

リスト コントロールは、常に UI Automationツリーのコンテンツ ビューに含まれます。

IsControlElementProperty

True

リスト コントロールは、常に UI Automationツリーのコントロール ビューに含まれます。

IsKeyboardFocusableProperty

True

コンテナーがキーボード入力を受け取ることができる場合、このプロパティ値は true である必要があります。

HelpTextProperty

説明を参照。

リスト コントロールのヘルプ テキストでは、オプションの一覧から選択することをユーザーに求めている理由を説明する必要があります。 たとえば、"この一覧から項目を選択すると、モニターの表示解像度が設定されます" という説明を表示します。

必須の UI オートメーション コントロール パターンおよびプロパティ

リスト コントロールでサポートする必要がある UI Automation コントロール パターンの一覧を次の表に示します。 コントロール パターンの詳細については、「UI オートメーション コントロール パターンの概要」を参照してください。

コントロール パターン/パターン プロパティ

サポート/値

説明

ISelectionProvider

必須

Listコントロール型をサポートするすべてのコントロールは、コントロール内に含まれている項目間で選択状態が維持される場合、ISelectionProvider を実装する必要があります。 コンテナー内の項目が選択できない場合、グループ コントロール型を使用する必要があります。

IsSelectionRequired

依存

リスト コントロールでは、項目が必ずしも選択される必要はありません。

CanSelectMultiple

依存

リスト コントロールは、単一選択コンテナーにも、複数選択コンテナーにもすることができます。

IScrollProvider

依存

コンテナー内の項目がスクロール可能な場合は、このコントロール パターンを実装します。

IGridProvider

依存

項目単位のグリッド ナビゲーションが必要な場合は、このパターンを実装します。

IMultipleViewProvider

依存

コントロールがコンテナー内の項目の複数のビューをサポートできる場合、このコントロール パターンを実装します。

ITableProvider

なし

ITableProvider は、List コントロール型ではサポートされません。 コントロールがこのコントロール パターンをサポートする必要がある場合、そのコントロールは、Data Grid コントロール型に基づく必要があります。

必須の UI オートメーション イベント

すべてのリスト コントロールでサポートする必要がある UI Automation イベントを次の表に示します。 イベントの詳細については、「UI オートメーション イベントの概要」を参照してください。

UI Automation イベント

サポート/値

説明

InvalidatedEvent

依存

なし

LayoutInvalidatedEvent

依存

なし

BoundingRectangleProperty プロパティ変更イベント

必須

なし

IsOffscreenProperty プロパティ変更イベント

必須

なし

IsEnabledProperty プロパティ変更イベント

必須

なし

CurrentViewProperty プロパティ変更イベント

依存

なし

HorizontallyScrollableProperty プロパティ変更イベント

依存

なし

HorizontalScrollPercentProperty プロパティ変更イベント

依存

なし

HorizontalViewSizeProperty プロパティ変更イベント

依存

なし

VerticalScrollPercentProperty プロパティ変更イベント

依存

なし

VerticallyScrollableProperty プロパティ変更イベント

依存

なし

VerticalViewSizeProperty プロパティ変更イベント

依存

なし

AutomationFocusChangedEvent

必須

なし

StructureChangedEvent

必須

なし

参照

参照

List

概念

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

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