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

このトピックでは、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 は、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 and UI オートメーション 相互運用性

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

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

同様に、Microsoft Active Accessibility-to-UI オートメーション Proxy は、UI オートメーション クライアントの Microsoft Active Accessibility ベースのサーバー オブジェクト モデルを変換します。 次の図は、Microsoft Active Accessibility-to-UI オートメーション Proxy の役割を示しています。

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

IAccessibleEx インターフェイス

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

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

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

Windows Automation API の概要

IAccessibleEx インターフェイス

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