次の方法で共有


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

Note

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

このトピックでは、List コントロール型での UI オートメーションのサポートに関する情報を提供します。 UI オートメーションでのコントロール型とは、コントロールで ControlTypeProperty プロパティを使用するために満たす必要がある条件のセットのことです。 この条件には、UI オートメーション ツリーの構造、UI オートメーションのプロパティ値、コントロール パターンに関する特定のガイドラインが含まれます。

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

以下のセクションの UI オートメーションの要件は、Windows Presentation Foundation (WPF)、Win32、Windows フォームのいずれにおいても、List コントロール型を実装するすべてのコントロールに適用されます。 List コントロール型を実装するコントロールの例として、リスト コンテナー コントロールなどがあります。

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

次の表に、リスト コントロールに関連する UI オートメーション ツリーの 2 つのビューを示し、それぞれのビューに含めることができる内容について説明します。 コントロール ビューでは、コントロールである要素のみが表示されます。また、コンテンツ ビューでは、冗長な情報がツリーから除外されます。 たとえば、コンボ ボックスのラベルに使用されるテキスト コントロールは、 ComboBox NamePropertyとして公開されます。 このテキスト コントロールは、このようにコントロール ビューを介して既に公開されているため、2 回公開する必要はありません。したがって、コンテンツ ビューからは除外されます。 UI オートメーション ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。

コントロール ビュー コンテンツ ビュー
コントロールに対応する要素が含まれています。 支援技術がエンド ユーザーにとって意味のある最小限の情報を使用できるように、ツリーから冗長な情報を除外します。
List

- DataItem (0 以上)
- ListItem (0 以上)
- Group (0 以上)
- ScrollBar (0、1、または 2)
List

- DataItem (0 以上)
- ListItem (0 以上)
- Group (0 以上)

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

  • リスト コントロール内の 0 個以上の項目 (項目は List Item または Data Item のコントロール型に基づきます)。

  • リスト コントロール内の 0 個以上のグループ コントロール。

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

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

  • リスト コントロール内の 0 個以上の項目 (項目は List Item または Data Item のコントロール型に基づきます)。

  • リスト コントロール内の 0 個以上のグループ。

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

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

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

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

UI Automation のプロパティ Notes
AutomationIdProperty 「ノート」を参照してください。 このプロパティの値は、アプリケーション内のすべてのコントロールで一意である必要があります。
BoundingRectangleProperty 「ノート」を参照してください。 コントロール全体を格納する最も外側の四角形。
ClickablePointProperty 「ノート」を参照してください。 リスト コントロールにクリック可能なポイント (クリックするとリストがフォーカスを受け取るポイント) がある場合、このプロパティでそのポイントを公開する必要があります。

IsOffScreen プロパティの値が true の場合、NoClickablePointException が生成されます。
IsKeyboardFocusableProperty 「ノート」を参照してください。 コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。
NameProperty 「ノート」を参照してください。 リスト コントロールの Name プロパティ値は、ユーザーに選択を求めるオプションのカテゴリを表すものでなければなりません。 このプロパティの名前は、通常、静的なテキスト ラベルから取得されます。 静的なテキスト ラベルがない場合は、アプリケーション開発者が Name プロパティの値を公開する必要があります。

リスト コントロールでこのプロパティが不要になるのは、別のコントロールのサブツリー内でコントロールが使用される場合のみです。
LabeledByProperty 「ノート」を参照してください。 静的なテキスト ラベルがある場合、このプロパティは対象のコントロールへの参照を公開する必要があります。
ControlTypeProperty List この値は、すべての UI フレームワークで同じです。
LocalizedControlTypeProperty "リスト" List コントロール型に対応する、ローカライズされた文字列。
IsContentElementProperty このリスト コントロールは、UI オートメーション ツリーのコンテンツ ビューに常に含まれます。
IsControlElementProperty True このリスト コントロールは、UI オートメーション ツリーのコントロール ビューに常に含まれます。
IsKeyboardFocusableProperty コンテナーがキーボード入力を受け取ることができる場合、このプロパティ値は true である必要があります。
HelpTextProperty 「ノート」を参照してください。 リスト コントロールのヘルプ テキストは、オプションのリストから選択することをユーザーに求める理由を説明するものでなければなりません。 たとえば、「項目を選択してモニターのディスプレイ解像度を設定してください」などです。

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

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

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

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

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

UI オートメーション イベント サポート/値 Notes
InvalidatedEvent 依存 なし
LayoutInvalidatedEvent 依存 なし
BoundingRectangleProperty プロパティ変更イベント。 必須 なし
IsOffscreenProperty プロパティ変更イベント。 必須 なし
IsEnabledProperty プロパティ変更イベント。 必須 なし
CurrentViewProperty プロパティ変更イベント。 依存 なし
HorizontallyScrollableProperty プロパティ変更イベント。 依存 なし
HorizontalScrollPercentProperty プロパティ変更イベント。 依存 なし
HorizontalViewSizeProperty プロパティ変更イベント。 依存 なし
VerticalScrollPercentProperty プロパティ変更イベント。 依存 なし
VerticallyScrollableProperty プロパティ変更イベント。 依存 なし
VerticalViewSizeProperty プロパティ変更イベント。 依存 なし
AutomationFocusChangedEvent 必須 なし
StructureChangedEvent 必須 なし

関連項目