UI オートメーション仕様

このトピックでは、UI オートメーション の Windows 実装の基礎となる Microsoft UI オートメーション仕様の概要について説明します。 UI オートメーション仕様は、Microsoft Windows 以外のプラットフォームでサポートできます。 詳細については、「UI オートメーション仕様」を参照してください。

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

Introducton

UI オートメーション仕様では、Windows デスクトップ上の UI 要素に柔軟にプログラムでアクセスできるため、スクリーン リーダーなどの支援技術製品は、UI に関する情報をエンド ユーザーに提供したり、標準入力以外の方法で UI を操作したりできます。

UI オートメーションは、単なるインターフェイス定義よりもスコープが広くなります。 次の機能を提供します。

  • クライアント アプリケーションがイベントの受信、プロパティ値の取得、UI 要素の操作を簡単に行えるようにするオブジェクト モデルと関数。
  • プロセス境界を越えて検索およびフェッチするためのコア インフラストラクチャ。
  • UI 要素のツリー構造、一般的なプロパティ、および機能を表すプロバイダー向けのインターフェイスのセット。
  • クライアントとプロバイダーが UI オブジェクトの共通プロパティ、機能、および構造を明確に示す "コントロール型" プロパティ。

UI オートメーションは、次の方法で Microsoft Active Accessibility を改善します。

  • インプロセス アクセスを引き続き許可しながら、効率的なアウトプロセス クライアントを有効にします。
  • クライアントをアウトプロセスにできる方法で UI に関する詳細情報を公開する。
  • 制限事項を継承することなく、Microsoft Active Accessibility と共存し、活用する。 詳細については、「Microsoft Active Accessibility and UI オートメーション Compared」を参照してください。
  • 実装が簡単な IAccessible の代替手段を提供します。

Windows でのUI オートメーション仕様の実装では、コンポーネント オブジェクト モデル (COM) ベースのインターフェイスとマネージド インターフェイスが機能します。

UI オートメーション要素

UI オートメーションは、UI のすべての部分をオートメーション要素としてクライアント アプリケーションに公開します。 プロバイダーは、各要素のプロパティ値を指定します。 要素はツリー構造として公開され、デスクトップはルート要素として公開されます。

オートメーション要素は、それらが表す UI 要素の共通プロパティを公開します。 これらのプロパティの 1 つはコントロールの種類で、その基本的な外観と機能 (ボタンやチェック ボックスなど) を記述します。

UI オートメーション ツリー

UI オートメーション ツリーは UI 全体を表します。ルート要素は現在のデスクトップ、子要素はアプリケーション ウィンドウです。 これらの各子要素には、メニュー、ボタン、ツール バーなどを表す要素を含めることができます。 これらの要素には、次の図に示すように、リスト アイテムなどの要素を含めることができます。

UI オートメーション ツリーを示すスクリーン ショット

UI オートメーション ツリー内の兄弟の順序は非常に重要であることに注意してください。 視覚的に隣り合うオブジェクトも、UI オートメーション ツリー内で隣り合っている必要があります。

特定のコントロールのUI オートメーションプロバイダーは、そのコントロールの子要素間のナビゲーションをサポートします。 ただし、プロバイダーは、これらのコントロール サブツリー間のナビゲーションには関係ありません。 これは、UI オートメーション コアにより、既定のウィンドウ プロバイダーからの情報を使用して管理されます。

クライアントが UI 情報をより効果的に処理できるように、フレームワークはオートメーション ツリーの代替ビュー (生ビュー、コントロール ビュー、コンテンツ ビュー) をサポートします。 次の表に示すように、フィルター処理の種類によってビューが決定され、クライアントによってビューのスコープが定義されます。

オートメーション ツリー 説明
列ビュー デスクトップがルートであるオートメーション要素オブジェクトの完全なツリー。
コントロール ビュー ユーザーが認識する UI 構造に密接にマップされる生のビューのサブセット。
コンテンツ ビュー ドロップダウン コンボ ボックスの値など、ユーザーに最も関連性の高いコンテンツを含むコントロール ビューのサブセット。

 

詳細については、「UI オートメーション ツリーの概要」を参照してください。

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

UI オートメーション仕様では、オートメーション要素のプロパティとコントロール パターン プロパティの 2 種類のプロパティが定義されています。 オートメーション要素のプロパティは、ほとんどのコントロールに適用され、要素に関する基本情報 (名前など) が提供されます。 コントロール パターンのプロパティは、次に説明するコントロール パターンに適用されます。

Microsoft Active Accessibility とは異なり、すべてのUI オートメーション プロパティは GUID とプログラム名で識別されるため、新しいプロパティの導入が容易になります。

詳細については、「 UI Automation Properties Overview」を参照してください。

UI オートメーション コントロール パターン

コントロール パターンは、オートメーション要素の機能の特定の側面を表します。 たとえば、ボタンやハイパーリンクなどの単純な "クリック可能" コントロールは、"クリック" アクションを表す Invoke コントロール パターンをサポートする必要があります。

各コントロール パターンは、使用可能な UI 機能と関数の正規表現です。 UI オートメーションの現在の実装では、22 個の制御パターンが定義されています。 Windows Automation API では、カスタム コントロール パターンをサポートすることもできます。 Microsoft Active Accessibility ロールまたは状態プロパティとは異なり、1 つのオートメーション要素で複数のUI オートメーションコントロール パターンをサポートできます。

詳細については、「 UI Automation Control Patterns Overview」を参照してください。

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

コントロール型は、要素が表す既知のコントロールを指定するオートメーション要素プロパティです。 現在、UI オートメーションは、Button、CheckBox、ComboBox、DataGrid、Document、Hyperlink、Image、ToolTip、Tree、Window など、38 種類のコントロールを定義しています。

コントロール型を要素に割り当てる前に、特定のオートメーション ツリー構造、プロパティ値、コントロール パターン、イベントなど、特定の条件を満たす必要があります。 ただし、これらに限定されるわけではありません。 カスタム パターンとプロパティと、定義済みのパターンとプロパティを使用してコントロールを拡張できます。

定義済みのコントロールの種類の合計数は、Microsoft Active Accessibility オブジェクト ロールよりも大幅に少なくなっています。これは、UI オートメーションコントロール パターンを組み合わせて、より大きな機能セットを表現できますが、Microsoft Active Accessibility ロールでは表現できないためです。

詳細については、「 UI Automation Control Types Overview」を参照してください。

UI オートメーション イベント

UI オートメーション イベントは、 に対する変更とオートメーション要素で実行されたアクションをアプリケーションに通知します。 UI オートメーション イベントには 4 種類があり、UI の視覚的な状態が変更されたとは限りません。 UI オートメーション イベント モデルは Windows の WinEvent フレームワークに依存しませんが、Windows Automation API は Microsoft Active Accessibility フレームワークとUI オートメーションイベントを相互運用できるようにします。

詳細については、「 UI Automation Events Overview」を参照してください。

UI オートメーション仕様Windows Automation API の概要