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

Microsoft UI オートメーションは、Windows Presentation Foundation (WPF) をサポートするすべてのオペレーティング システムで利用可能な、Microsoft Windows の新しいアクセシビリティ フレームワークです。

UI オートメーションは、デスクトップのほとんどのユーザー インターフェイス (UI) 要素へのプログラムによるアクセスを提供し、スクリーン リーダーなどの支援技術製品により、UI に関する情報をエンド ユーザーに提供したり、標準の入力方式以外の方法で UI を操作できるようにします。また、UI オートメーションは、自動テスト スクリプトが UI と対話することも可能にします。

UI オートメーション クライアント アプリケーションを作成すると、そのアプリケーションは、複数のフレームワーク上で動作することが保証されます。UI オートメーション コアは、UI のさまざまな部分の基になるフレームワークのあらゆる差異をマスクします。たとえば、WPF のボタンの Content プロパティ、Win32 のボタンの Caption プロパティ、および HTML イメージの ALT プロパティは、UI オートメーション ビュー内では、すべて単一のプロパティ、つまり Name にマップされます。

UI オートメーションの完全な機能は、Windows Vista、Microsoft Windows XP、および Windows Server 2003 で利用できます。

UI オートメーション プロバイダは、組み込みのブリッジ サービスを通じて、Microsoft Active Accessibility クライアント アプリケーションを一部サポートします。

このトピックには次のセクションが含まれています。

  • プロバイダおよびクライアント
  • UI オートメーション モデル
  • 関連トピック

プロバイダおよびクライアント

UI オートメーションには、次の表に示す 4 つの主要なコンポーネントがあります。

コンポーネント 説明

プロバイダ API (UIAutomationProvider.dll および UIAutomationTypes.dll)

UI オートメーション プロバイダによって実装されるインターフェイス定義のセット。UI 要素に関する情報を提供し、プログラムによる入力に応答するオブジェクト。

クライアント API (UIAutomationClient.dll および UIAutomationTypes.dll)

UI オートメーション クライアント アプリケーションが、UI に関する情報を取得し、コントロールに入力を送信することを可能にする、各種マネージ コードのセット。

UiAutomationCore.dll

プロバイダとクライアントの間の通信を処理する、基になるコード (UI オートメーション コアとも呼ばれます)。

UIAutomationClientsideProviders.dll

従来の標準コントロールに使用する UI オートメーション プロバイダのセット (WPF のコントロールは、UI オートメーションをネイティブにサポートしています)。これは、クライアント アプリケーションで自動的にサポートされます。

ソフトウェア開発者の観点からは、UI オートメーションを使用するには、カスタム コントロール用のサポートを作成する (プロバイダ API を使用) か、または UI オートメーション コアを使用して UI 要素と通信するアプリケーションを作成する (クライアント API を使用)、という 2 つの方法があります。主要な目的に応じて、ドキュメントの該当箇所を参照してください。次の各セクションでは、概念の詳細と、実際的な方法について説明します。

セクション 主題 対象ユーザー

UI オートメーションの基礎 (このセクション)

概念についての広範な概要。

すべて。

マネージ コードの UI オートメーション プロバイダ

プロバイダ API を使用する際に役立つ概要と「方法」トピック。

コントロールの開発者。

マネージ コードの UI オートメーション クライアント

クライアント API を使用する際に役立つ概要と「方法」トピック。

クライアント アプリケーションの開発者。

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

コントロール パターンをプロバイダで実装する方法と、クライアントで使用可能な機能に関する情報。

すべて。

UI オートメーション テキスト パターン

Text コントロール パターンをプロバイダで実装する方法と、クライアントで使用可能な機能に関する情報。

すべて。

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

さまざまなコントロール型でサポートされるプロパティとコントロール パターンに関する情報。

すべて。

UI オートメーションの名前空間、それらの名前空間を含む DLL、およびそれらを使用する対象ユーザーを次の表に示します。

名前空間 参照される DLL 対象ユーザー

System.Windows.Automation

UIAutomationClientUIAutomationTypes

UI オートメーション クライアントの開発者。AutomationElement オブジェクトの検索、UI オートメーション イベントの登録、および UI オートメーションのコントロール パターンの利用の際に使用します。

System.Windows.Automation.Provider

UIAutomationProviderUIAutomationTypes

WPF 以外のフレームワークの UI オートメーション プロバイダの開発者。

System.Windows.Automation.Text

UIAutomationClientUIAutomationTypes

WPF 以外のフレームワークで使用する UI オートメーション プロバイダの開発者が、TextPattern コントロール パターンを実装する際に使用します。

System.Windows.Automation.Peers

PresentationFramework

WPF で使用する UI オートメーション プロバイダの開発者。

UI オートメーション モデル

UI オートメーションは、UI のすべての部分を、クライアント アプリケーションに対して、AutomationElement として公開します。各要素は、デスクトップをルート要素とするツリー構造に格納されます。クライアントでは、ツリーの未加工ビューを、コントロール ビューまたはコンテンツ ビューとしてフィルタ処理できます (ツリー構造のこれらの標準ビューは、このソフトウェア開発キット (SDK) に付属する UI Spy アプリケーションを使用することで、簡単に表示できます)。アプリケーションでは、カスタム ビューを作成することもできます。

AutomationElement オブジェクトは、それらが表す UI 要素の一般的なプロパティを公開します。これらのプロパティの 1 つにコントロール型があります。これは、その基本的な外観と機能を認識可能な単一のエンティティとして定義するもので、ボタンやチェック ボックスなどがその例です。

また、各要素は、その要素のコントロール型に固有のプロパティを提供するコントロール パターンを公開します。コントロール パターンは、クライアントが要素に関するより詳細な情報を取得し、入力を提供できるようにするメソッドも公開します。

メモメモ :

コントロール型とコントロール パターンの間には、1 対 1 の対応はありせん。1 つのコントロール パターンが複数のコントロール型でサポートされる場合もありますし、1 つのコントロールが複数のコントロール パターンをサポートし、各パターンがそのコントロールの動作の異なる側面を公開する場合もあります。たとえば、1 つのコンボ ボックスは、少なくとも 2 つのコントロール パターンを持ちます。1 つは、それを展開して折りたたむ機能を表し、もう 1 つは、選択機構を表します。詳細については、「UI オートメーション コントロール型」を参照してください。

また、UI オートメーションは、クライアント アプリケーションにイベントを通じて情報を提供します。WinEvents とは異なり、UI オートメーションのイベントは、ブロードキャスト機構に基づいていません。UI オートメーションのクライアントは、特定のイベント通知を登録し、特定の UI オートメーション プロパティとコントロール パターン情報を自身のイベント ハンドラに渡すように要求することができます。また、UI オートメーションのイベントには、それを発生させた要素への参照が含まれています。プロバイダは、クライアントがリッスンしているかどうかに応じて選択的にイベントを発生させることで、パフォーマンスを向上させることができます。

参照

概念

UI オートメーション ツリーの概要
UI オートメーション コントロール パターンの概要
UI オートメーション プロパティの概要
UI オートメーション イベントの概要
UI オートメーションのセキュリティの概要