このトピックでは、Microsoft Active Accessibility と Microsoft UI オートメーションのアーキテクチャと、2 つの異なるテクノロジに基づくアプリケーション間の相互運用性を可能にするコンポーネントについて簡単に説明します。
Microsoft Active Accessibility と UI Automation の相互運用性の詳細については、「Common Infrastructure」を参照してください。
このトピックには、次のセクションが含まれています。
- Microsoft Active Accessibility Architecture
- UI オートメーション アーキテクチャの
- Microsoft Active Accessibility and UI Automation Interoperability
- IAccessibleEx インターフェイス を する
- 関連トピック
Microsoft Active Accessibility Architecture
Microsoft Active Accessibility では、コントロール名、画面上の場所、コントロールの種類などのコントロールに関する基本情報のほか、可視性や有効/無効状態などの状態情報が公開されます。 UI は、アクセス可能なオブジェクトの階層として表されます。変更とアクションは WinEvents として表されます。
Microsoft Active Accessibility は、次のコンポーネントで構成されます。
- アクセス可能なオブジェクト- IAccessible コンポーネント オブジェクト モデル (COM) インターフェイスと整数子識別子 (ChildID) によって表される論理 UI 要素 (ボタンなど)。
- WinEvents - アクセス可能なオブジェクトが変更されたときにサーバーがクライアントに通知できるようにするイベント システム。 詳細については、「WinEvents」を参照してください。
- OLEACC.dll—Microsoft Active Accessibility API とアクセシビリティ システム フレームワークを提供する実行時のダイナミック リンク ライブラリ。 OLEACC は、USER コントロール、USER メニュー、共通コントロールなど、標準 UI 要素の既定のアクセシビリティ情報を提供するプロキシ オブジェクトを実装します。
Microsoft Active Accessibility の場合、アクセシビリティ フレームワーク (OLEACC) のシステム コンポーネントは、次の図に示すように、支援技術 (アクセシビリティ ツール) とアプリケーションの間の通信に役立ちます。
アクセシビリティ ツールがアプリケーションとどのように対話するかを示す図
アプリケーション (Microsoft Active Accessibility servers) は、ユーザーの代わりに UI と対話するツール (Microsoft Active Accessibility クライアント) に UI アクセシビリティ情報を提供します。 コード境界は、プログラムとプロセスの両方の境界です。
UI オートメーション のアーキテクチャ
UI オートメーションでは、UI オートメーションのコア コンポーネント (UIAutomationCore.dll) がアクセシビリティ ツールとアプリケーションの両方のプロセスに読み込まれます。 コア コンポーネントは、クロスプロセス通信を管理し、プロパティ値による要素の検索などの上位レベルのサービスを提供し、プロパティの一括フェッチまたはキャッシュを有効にします。これにより、Microsoft Active Accessibility の実装よりもパフォーマンスが向上します。
UI オートメーションには、USER コントロール、USER メニュー、共通コントロールなどの標準 UI 要素に関する UI 情報を提供するプロキシ オブジェクトが含まれています。 また、UI オートメーション クライアントが Microsoft Active Accessibility サーバーから UI 情報を取得できるようにするプロキシも含まれています。
次の図は、アクセシビリティ ツール (クライアント) とアプリケーション (プロバイダー) で使用されるさまざまな UI オートメーション コンポーネント間の関係を示しています。
アクセシビリティ ツールのコンポーネントがアプリケーション内のコンポーネントとどのように対話するかを示す図
Microsoft Active Accessibility と UI オートメーションの相互運用性
MICROSOFT Active Accessibility Bridge への UI オートメーションを使用すると、MICROSOFT Active Accessibility クライアントは、UI オートメーション オブジェクト モデルを Microsoft Active Accessibility オブジェクト モデルに変換することで、UI オートメーション プロバイダーにアクセスできます。 次の図は、UI オートメーションから Microsoft Active Accessibility Bridge へのロールを示しています。
同様に、Microsoft Active Accessibility-to-UI Automation Proxy は、UI オートメーション クライアント用の Microsoft Active Accessibility ベースのサーバー オブジェクト モデルを変換します。 次の図は、Microsoft Active Accessibility-to-UI Automation プロキシの役割を示しています。
IAccessibleEx インターフェイス
IAccessibleEx インターフェイスを使用すると、既存のアプリケーションまたは UI ライブラリで Microsoft Active Accessibility オブジェクト モデルを拡張し、実装をゼロから書き直すことなく UI オートメーションをサポートできます。 IAccessibleExを使用すると、UI とその機能を完全に記述するために必要な追加の UI オートメーション プロパティとコントロール パターンのみを実装できます。
Microsoft Active Accessibility-to-UI Automation Proxy は、IAccessibleEx対応の Microsoft Active Accessibility サーバーオブジェクト モデルを UI オートメーション オブジェクト モデルとして変換するため、UI オートメーション クライアントは追加の作業を行う必要はありません。 IAccessibleEx インターフェイスを使用すると、インプロセスの Microsoft Active Accessibility クライアントが UI オートメーション プロバイダーと直接やり取りすることもできます。
詳細については、「IAccessibleEx インターフェイス」を参照してください。
関連トピック