UI オートメーションの仕様
このトピックでは、Ui オートメーションの Windows 実装の基礎となる Microsoft UI オートメーション仕様の概要について説明します。 UI オートメーション仕様は、Microsoft Windows 以外のプラットフォームでサポートできます。 詳細については、「UI オートメーション仕様の」を参照してください。
このトピックには、次のセクションが含まれています。
- Introducton
- UI オートメーション要素 を する
- UI オートメーション ツリー の
- UI オートメーション のプロパティ
- UI オートメーション コントロール パターン
- UI オートメーション コントロールの種類
- UI オートメーション イベント の
- 関連トピック
概要
UI オートメーション仕様では、Windows デスクトップ上の UI 要素に柔軟にプログラムでアクセスできるため、スクリーン リーダーなどの支援技術製品は、UI に関する情報をエンド ユーザーに提供し、標準入力以外の方法で UI を操作できます。
UI オートメーションは、単なるインターフェイス定義よりも範囲が広くなります。 次の機能が提供されます。
- クライアント アプリケーションがイベントの受信、プロパティ値の取得、UI 要素の操作を容易にするオブジェクト モデルと関数。
- プロセス境界を越えて検索およびフェッチするためのコア インフラストラクチャ。
- ツリー構造、一般的なプロパティ、および UI 要素の機能を表すプロバイダー向けのインターフェイスのセット。
- クライアントとプロバイダーが UI オブジェクトの共通のプロパティ、機能、および構造を明確に示す "コントロール型" プロパティ。
UI オートメーションは、次の方法で Microsoft Active Accessibility を改善します。
- インプロセス アクセスを引き続き許可しながら、効率的なアウトプロセス クライアントを有効にします。
- クライアントがアウトプロセスを可能にする方法で UI に関する詳細情報を公開する。
- 制限を継承せずに Microsoft Active Accessibility と共存し、利用する。 詳細については、「Microsoft Active Accessibility and UI Automation Compared」を参照してください。
- 実装が簡単な IAccessible代替手段を提供します。
Windows での UI オートメーション仕様の実装には、コンポーネント オブジェクト モデル (COM) ベースのインターフェイスとマネージド インターフェイスが用意されています。
UI オートメーション要素
UI オートメーションは、UI のすべての部分を、オートメーション要素としてクライアント アプリケーションに公開します。 プロバイダーは、各要素のプロパティ値を提供します。 要素はツリー構造として公開され、デスクトップはルート要素として公開されます。
オートメーション要素は、それらが表す UI 要素の共通プロパティを公開します。 これらのプロパティの 1 つはコントロールの種類で、基本的な外観と機能 (ボタンやチェック ボックスなど) を記述します。
UI オートメーション ツリー
UI オートメーション ツリーは UI 全体を表します。ルート要素は現在のデスクトップであり、子要素はアプリケーション ウィンドウです。 これらの各子要素には、メニュー、ボタン、ツールバーなどを表す要素を含めることができます。 これらの要素には、次の図に示すように、リスト アイテムなどの要素を含めることができます。
ui オートメーション ツリーのスクリーン ショット
UI オートメーション ツリーの兄弟の順序は非常に重要であることに注意してください。 視覚的に隣り合うオブジェクトも、UI オートメーション ツリー内で隣り合っている必要があります。
特定のコントロールの UI オートメーション プロバイダーは、そのコントロールの子要素間のナビゲーションをサポートします。 ただし、プロバイダーは、これらのコントロール サブツリー間のナビゲーションには関係ありません。 これは、既定のウィンドウ プロバイダーからの情報を使用して、UI オートメーション コアによって管理されます。
クライアントが UI 情報をより効果的に処理できるように、フレームワークはオートメーション ツリーの代替ビュー (生ビュー、コントロール ビュー、コンテンツ ビュー) をサポートしています。 次の表に示すように、フィルター処理の種類によってビューが決まります。また、クライアントはビューのスコープを定義します。
Automation ツリー | 形容 |
---|---|
未加工ビュー | デスクトップがルートであるオートメーション要素オブジェクトの完全なツリー。 |
コントロール ビュー | ユーザーが認識する UI 構造に密接にマップされる生のビューのサブセット。 |
コンテンツ ビュー | ドロップダウン コンボ ボックスの値など、ユーザーに最も関連性の高いコンテンツを含むコントロール ビューのサブセット。 |
詳細については、「UI オートメーション ツリーの概要」を参照してください。
UI オートメーションのプロパティ
UI オートメーション仕様では、オートメーション要素のプロパティとコントロール パターンプロパティの 2 種類のプロパティが定義されています。 オートメーション要素のプロパティは、ほとんどのコントロールに適用され、要素に関する基本的な情報 (名前など) が提供されます。 コントロール パターンのプロパティは、次に説明するコントロール パターンに適用されます。
Microsoft Active Accessibility とは異なり、すべての UI オートメーション プロパティは GUID とプログラム名によって識別されるため、新しいプロパティの導入が容易になります。
詳細については、「UI オートメーション プロパティの概要」を参照してください。
UI オートメーション コントロール パターン
コントロール パターンは、オートメーション要素の機能の特定の側面を表します。 たとえば、ボタンやハイパーリンクなどの単純な "クリック可能" コントロールは、"クリック" アクションを表す Invoke コントロール パターンをサポートする必要があります。
各コントロール パターンは、可能な UI 機能と関数の正規表現です。 UI オートメーションの現在の実装では、22 個の制御パターンが定義されています。 Windows Automation API では、カスタム コントロール パターンをサポートすることもできます。 Microsoft Active Accessibility ロールまたは状態プロパティとは異なり、1 つのオートメーション要素で複数の UI オートメーション コントロール パターンをサポートできます。
詳細については、「UI オートメーション コントロール パターンの概要」を参照してください。
UI オートメーション コントロールの種類
コントロール型は、要素が表す既知のコントロールを指定するオートメーション要素プロパティです。 現在、UI オートメーションでは、Button、CheckBox、ComboBox、DataGrid、Document、Hyperlink、Image、ToolTip、Tree、Window など、38 種類のコントロールが定義されています。
要素にコントロール型を割り当てる前に、特定のオートメーション ツリー構造、プロパティ値、コントロール パターン、イベントなど、特定の条件を満たす必要があります。 ただし、これらに限定されるわけではありません。 カスタム パターンとプロパティと、定義済みのパターンとプロパティを使用してコントロールを拡張できます。
定義済みのコントロールの種類の合計数は、Microsoft Active Accessibility オブジェクト ロールよりも大幅に少なくなります。これは、UI オートメーション コントロール パターンを組み合わせて、より大きな機能セットを表現できますが、Microsoft Active Accessibility ロールでは表現できないためです。
詳細については、「UI オートメーション コントロールの種類の概要」を参照してください。
UI オートメーション イベント
UI オートメーション イベントは、オートメーション要素に対する変更と実行されたアクションをアプリケーションに通知します。 UI オートメーション イベントには 4 種類あり、UI の表示状態が変更されたとは限りません。 UI オートメーション イベント モデルは、Windows の WinEvent フレームワークに依存しませんが、Windows Automation API では、UI オートメーション イベントを Microsoft Active Accessibility フレームワークと相互運用できます。
詳細については、「UI オートメーション イベントの概要」を参照してください。