次の方法で共有


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

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

支援技術製品とテスト スクリプトは、UI オートメーション ツリー内を移動して、ユーザー インターフェイス (UI) とその要素に関する情報を収集します。

UI オートメーション ツリー内には、現在のデスクトップを表し、その子要素がアプリケーション ウィンドウを表すルート要素 (RootElement) があります。 これらの子要素には、メニュー、ボタン、ツールバー、リスト ボックスなどの UI の部分を表す要素を含めることができます。 これらの要素には、リスト アイテムなどの要素を含めることができます。

UI オートメーション ツリーは固定構造ではなく、何千もの要素が含まれている可能性があるため、その全体にはほとんど表示されません。 その一部は必要に応じて構築され、要素が追加、移動、または削除されると変更される可能性があります。

UI オートメーション プロバイダーは、ルート (通常はウィンドウでホスト) とサブツリーで構成されるフラグメント内の項目間のナビゲーションを実装することで、UI オートメーション ツリーをサポートします。 ただし、プロバイダーは、あるコントロールから別のコントロールへのナビゲーションには関係ありません。 これは、既定のウィンドウ プロバイダーからの情報を使用して、UI オートメーション コアによって管理されます。

オートメーション ツリーのビュー

UI オートメーション ツリーをフィルター処理して、特定のクライアントに関連する AutomationElement オブジェクトのみを含むビューを作成できます。 このアプローチにより、クライアントは UI オートメーションを通じて提示される構造を特定のニーズに合わせてカスタマイズできます。

クライアントには、スコープ設定とフィルター処理の 2 つの方法でビューをカスタマイズできます。 スコープは、基本要素から始まるビューの範囲を定義しています。たとえば、アプリケーションでは、デスクトップの直接の子、またはアプリケーション ウィンドウのすべての子孫のみを検索できます。 フィルター処理では、ビューに含める要素の種類を定義します。

UI オートメーション プロバイダーでは、 IsControlElementProperty プロパティや IsContentElementProperty プロパティなど、要素のプロパティを定義してフィルター処理をサポートしています。

UI オートメーションには、3 つの既定のビューが用意されています。 これらのビューは、実行されるフィルター処理の種類によって定義されます。ビューのスコープは、アプリケーションによって定義されます。 さらに、アプリケーションはプロパティに他のフィルターを適用できます。たとえば、有効なコントロールのみをコントロール ビューに含めるには、

未加工ビュー

UI オートメーション ツリーの生のビューは、デスクトップがルートである AutomationElement オブジェクトの完全なツリーです。 生のビューは、アプリケーションのネイティブプログラム構造に密接に従っているため、使用可能な最も詳細なビューです。 また、ツリーの他のビューが構築されるベースでもあります。 このビューは基になる UI フレームワークに依存するため、WPF ボタンの生ビューは Win32 ボタンとは異なる生ビューになります。

未加工のビューは、プロパティを指定せずに要素を検索するか、 RawViewWalker を使用してツリー内を移動することによって取得されます。

コントロール ビュー

UI オートメーション ツリーのコントロール ビューは、エンド ユーザーに UI を記述し、エンド ユーザーがアプリケーションを操作する支援技術製品のタスクを簡略化します。これは、エンド ユーザーが認識する UI 構造に密接にマップされるためです。

コントロール ビューは、生のビューのサブセットです。 これには、エンド ユーザーが対話型として理解したり、UI 内のコントロールの論理構造に貢献したりする生のビューからのすべての UI 項目が含まれます。 UI の論理構造に寄与するが、それ自体は対話型ではない UI 項目の例としては、リスト ビューヘッダー、ツールバー、メニュー、ステータス バーなどの項目コンテナーがあります。 レイアウトまたは装飾目的で使用される非対話型項目は、コントロール ビューには表示されません。 たとえば、ダイアログ内のコントロールをレイアウトするためにのみ使用されたパネルですが、それ自体には情報は含まれません。 コントロール ビューに表示される非対話型項目は、ダイアログ内の情報と静的テキストを含むグラフィックスです。 コントロール ビューに含まれる非対話型項目は、キーボード フォーカスを受け取ることができません。

コントロール ビューは、 IsControlElement プロパティが true に設定されている要素を検索するか、 ControlViewWalker を使用してツリー内を移動することによって取得されます。

コンテンツ ビュー

UI オートメーション ツリーのコンテンツ ビューは、コントロール ビューのサブセットです。 これには、キーボード フォーカスを受け取ることができる UI 項目や UI 項目のラベルではないテキストなど、ユーザー インターフェイスで真の情報を伝える UI 項目が含まれています。 たとえば、ドロップダウン コンボ ボックスの値は、エンド ユーザーが使用している情報を表しているため、コンテンツ ビューに表示されます。 コンテンツ ビューでは、コンボ ボックスとリスト ボックスの両方が UI 項目のコレクションとして表され、1 つまたは複数の項目を選択できます。 常に開き、展開したり折りたたんだりできるという事実は、ユーザーに表示されているデータ (コンテンツ) を表示するように設計されているため、コンテンツ ビューでは関係ありません。

コンテンツ ビューは、 IsContentElement プロパティが trueに設定されている要素を検索するか、 ContentViewWalker を使用してツリー内を移動することによって取得されます。

こちらも参照ください