アーキテクチャと相互運用性

このトピックでは、Microsoft Active Accessibility と Microsoft UI オートメーション のアーキテクチャと、2 つの異なるテクノロジに基づくアプリケーション間の相互運用性を可能にするコンポーネントについて簡単に説明します。

相互運用性と相互Microsoft Active AccessibilityのUI オートメーション、Common Infrastructure に関するページ を参照してください

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

Microsoft Active Accessibility アーキテクチャ

Microsoft Active Accessibility、コントロール名、画面上の場所、コントロールの種類などのコントロールに関する基本情報と、可視性や有効/無効状態などの状態情報を公開します。 UI は、アクセス可能なオブジェクトの階層として表されます。変更とアクションは WinEvents として表されます。

Microsoft Active Accessibilityは、次のコンポーネントで構成されます。

  • アクセス可能なオブジェクト- IAccessible コンポーネント オブジェクト モデル (COM) インターフェイスと整数子識別子 (ChildID) によって表される論理 UI 要素 (ボタンなど)。
  • WinEvents - アクセス可能なオブジェクトが変更された場合にサーバーがクライアントに通知できるイベント システムです。 詳細については 、「WinEvents」を参照してください
  • OLEACC.dll- Microsoft Active Accessibility API とアクセシビリティ システム フレームワークを提供する実行時のダイナミック リンク ライブラリ。 OLEACC は、ユーザー コントロール、ユーザー メニュー、コモン コントロールなど、標準 UI 要素の既定のアクセシビリティ情報を提供するプロキシ オブジェクトを実装します。

たとえばMicrosoft Active Accessibilityアクセシビリティ フレームワーク (OLEACC) のシステム コンポーネントは、次の図に示すように、支援技術 (アクセシビリティ ツール) とアプリケーション間の通信に役立ちます。

アクセシビリティ ツールがアプリケーションと対話する方法を示す図

アプリケーション (Microsoft Active Accessibility サーバー) は、ユーザーに代わって UI と対話するツール (Microsoft Active Accessibility クライアント) に UI アクセシビリティ情報を提供します。 コード境界は、プログラムとプロセスの両方の境界です。

UI オートメーション アーキテクチャ

このUI オートメーション、UI オートメーション コア コンポーネント (UIAutomationCore.dll) がアクセシビリティ ツールとアプリケーションのプロセスの両方に読み込まれます。 コア コンポーネントは、プロセス間通信を管理し、プロパティ値で要素を検索するなどの高レベルのサービスを提供し、プロパティの一括フェッチまたはキャッシュを有効にし、Microsoft Active Accessibility 実装よりも優れたパフォーマンスを提供します。

UI オートメーションには、ユーザー コントロール、ユーザー メニュー、コモン コントロールなどの標準 UI 要素に関する UI 情報を提供するプロキシ オブジェクトが含まれています。 また、クライアントがサーバーから UI 情報をUI オートメーションできるプロキシもMicrosoft Active Accessibilityされます。

次の図は、アクセシビリティ ツール (クライアント) とアプリケーション (プロバイダー) でUI オートメーションされるさまざまな機能の関係を示しています。

アクセシビリティ ツールのコンポーネントがアプリケーション内のコンポーネントと対話する方法を示す図

Microsoft Active AccessibilityとUI オートメーション相互運用性

Bridge UI オートメーションのMicrosoft Active Accessibilityでは、Microsoft Active Accessibility UI オートメーション オブジェクト モデルを UI オートメーション オブジェクト モデルに変換することで、Microsoft Active Accessibility クライアントが Microsoft Active Accessibility プロバイダーにアクセスできます。 次の図は、アプリケーション間ブリッジUI オートメーション役割をMicrosoft Active Accessibilityしています。

UI オートメーションとアクセシビリティ ツールとアプリケーションの動作を示す図

同様に、Microsoft Active Accessibility間プロキシUI オートメーションクライアントMicrosoft Active Accessibilityベースのサーバー オブジェクト モデルをUI オートメーションします。 次の図は、アプリケーション間プロキシMicrosoft Active AccessibilityロールUI オートメーションしています。

UI オートメーション プロキシとアクセシビリティ ツールとアプリケーションの動作を示す図

IAccessibleEx インターフェイス

IAccessibleExインターフェイスを使用すると、既存のアプリケーションまたは UI ライブラリで、実装を最初から書き換えることなく、Microsoft Active Accessibility オブジェクト モデルを拡張して UI オートメーション をサポートできます。 IAccessibleEx を使用 すると、UI とその機能を完全に記述するためにUI オートメーション追加のプロパティとコントロール パターンのみを実装できます。

Microsoft Active Accessibility から UI オートメーション プロキシは 、IAccessibleEx対応 Microsoft Active Accessibility サーバーのオブジェクト モデルを UI オートメーション オブジェクト モデルとして変換します。そのため、UI オートメーション クライアントは追加の作業を行う必要はありません。 また、IAccessibleEx インターフェイスを使用すると、クライアントがインプロセス Microsoft Active Accessibilityプロバイダーと直接やり取りUI オートメーションすることもできます。

詳細については 、「IAccessibleEx インターフェイス」を参照してください

WindowsAutomation API の概要

IAccessibleEx インターフェイス

支援技術のセキュリティに関する考慮事項