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 項目が含まれます。たとえば、ドロップダウン コンボ ボックスの値は、エンド ユーザーが使用する情報を表すため、コンテンツ ビューに表示されます。コンテンツ ビューでは、コンボ ボックスとリスト ボックスはどちらも、1 つの (または複数の) 項目を選択できる UI 項目のコレクションとして表されます。コンテンツ ビューは、ユーザーに提示されているデータ (コンテンツ) を表示するためのものであるため、ある項目は常に開いた状態で、別の項目は展開および縮小できるという事実は重要ではありません。

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

参照

関連項目

AutomationElement

概念

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