Microsoft Active Accessibility (MSAA) は、ユーザーインターフェイスのアクセシビリティのためのアプリケーションプログラミングインターフェイス (API)である。 MSAAは、1997年にMicrosoft Windows 95プラットフォームの追加機能として導入された。 MSAAにより、 支援技術 (AT)製品がアプリケーション(またはオペレーティングシステム)の標準およびカスタムユーザーインターフェイス (UI)要素とやり取りし、アプリケーションのUI要素にアクセス、識別、および操作できるようになる。 支援技術製品はMSAA対応のアプリケーションと連携して、身体的または認知的困難を持つ障碍者が、対応アプリケーションをより使いやすくするよう支援する。 支援技術製品の例としては、視力障害のあるユーザー向けのスクリーンリーダー、身体的障害のあるユーザー向けのスクリーンキーボード、聴覚障害のあるユーザー向けのナレーターなどがある。 MSAAは、自動テストツール、RPAやコンピュータベースのトレーニングアプリケーションでも使用される。

MSAAの最新版は、Microsoft UI Automation Community Promise仕様の一部に含まれる。

## 歴史

Active Accessibilityは当初OLE Accessibilityと呼ばれ、これは`oleacc.dll`といったバイナリファイルや、定義と宣言を含むヘッダーファイル`oleacc.h`などの名前に反映されている。 1996年3月にはマイクロソフトはActiveXのブランド名を前面に押し出す施策の一環として、OLE AccessibilityはActiveX Accessibility(AXAとも呼ばれる)に改名され、1996年3月にサンフランシスコで開催されたMicrosoft Professional Developers Conferenceで発表された。 その後、ActiveXブランドはインターネット固有のテクノロジーに集約され、ActiveX AccessibilityはActive Accessibility、短縮名MSAAとなった。

MSAAは、1997年4月にMicrosoft Active Accessibility Software Developers Kit(SDK)バージョン1.0の一部として提供された。 SDKには、ドキュメント、プログラミングライブラリ、サンプルソースコード、および再配布可能キット(RDK)が含まれており、支援技術の提供ベンダーが製品に含めることができた。 RDKには、Microsoft Windows 95用の更新されたオペレーティングシステムコンポーネントが含まれていた。 Windows 98およびWindows NT 4.0 Service Pack 4以降、MSAAはWindowsプラットフォームのすべてのバージョンに組み込まれており、その後定期的に更新されている。

Windowsと支援技術アプリケーションのプログラムによる連携は、これまでMSAAを通じて行われてきた。 ただし、新しいアプリケーションでは、 Windows VistaおよびNET Framework 3.0で導入されたMicrosoft UI Automation (UIA) を使用するようになった。

## バージョン履歴

今までに次のActive Accessibilityバージョンがリリースされた。

| バージョン | 説明 |
| --- | --- |
| 1.0 | Windows 95用の追加機能として最初のバージョンをリリース。 RDKは、英語版OSでのみサポートされた。(1997) |
| 1.1 | Windows 98に同梱された。 |
| 1.2.x | 英語版Windowsとローカライズ版Windowsの両方で利用可能になったMSAAの最初のバージョン。 (1998) |
| 1.3.x | より多くの言語でサポートされた。言語リソースを格納するサテライトDLL (oleaccrc.dll) が導入された。 その後、Windows NT 4.0 Service Pack 6以降、Windows 98、Windows 2000、およびWindows Meに統合された。 (1999) |
| 2.0 | MSAAの最初のメジャーバージョンアップ。Dynamics AnnotationとMSAA Textのサポートが追加された。 このバージョンはWindows XPに統合された。 以降のバージョンのWindowsには、MSAAフレームワークにマイナーな改訂が行われた。 バージョン2.0の再配布可能キットは、2003年に古いプラットフォーム(Windows 95、98、2000、Me、NT)で利用可能になった。(2000–2008) |
| 3.0 | MSAAおよびUI Automation (UIA) はWindows プラットフォームアクセシビリティAPIであるWindows Automation API 3.0の一部となった。 Windows Automation APIはWindows 7に含まれ、Windows VistaおよびXPでも利用可能となった。(2009) |

## 目的

MSAAは、基盤となるオペレーティングシステムやアプリケーションと、支援技術製品の間の、シームレスな通信メカニズムを可能にするために開発された。

MSAAのプログラム上の目標は、Windowsコントロールが、名前、画面上の場所、コントロールの種類などの基本情報、および表示/非表示や、有効/無効の状態、選択済みなどの状態情報を公開できるようにすることである。

## 利用できるオペレーティングシステム

MSAAは当初、Windows 95の追加機能としてリリースされた。 以降のすべてのバージョンのWindowsに同梱されている。

## 関連テクノロジ

Microsoft UI Automation (UIA) :MSAAの後継は、UI Automation (UIA) である。しかし MSAA に依存するアプリケーションがまだ存在するため、UIA アプリケーションと MSAA アプリケーションの橋渡しが行われ、2つの API の間で情報共有が可能である。MSAA-to-UIA プロキシと UIA-to-MSAA ブリッジが開発された。前者は MSAA の情報を元に UIA クライアント API で利用可能とするコンポーネントである。後者は MSAA を使うクライアントアプリケーションが UIA を実装するアプリケーションにアクセスできるようにする仕組みである。

Accessible Rich Internet Applications (WAI-ARIA):ARIA 属性から UIA への一般的なマッピングも利用できる。

IAccessible2 :MSAAの機能をベースにしている。 IAccessible2はMSAAの実装活用し、追加機能を提供する。

Windows Automation API :Windows 7 より、マイクロソフトはアクセシビリティテクノロジーを Windows Automation API と呼ばれるフレームワークにパッケージした。MSAA も UIA もこのフレームワークの一部となった。

## Microsoft Active Accessibilityの実装

Active Accessibilityは、Windows 95以降のすべてのバージョンで開発者が利用できる。 最初に導入されて以来、MSAAは、Microsoft Internet Explorer、Mozilla Firefox、Microsoft Officeなど、多くのビジネスおよびコンシューマアプリケーションのUIへのプログラムによるアクセスを行う方法として使用された。 スクリーンリーダー、画面拡大鏡、重度障害者用意思伝達装置などのアクセシビリティツールに加えて、このテクノロジーはQuickTest Pro、Functional Tester、SilkTestなどのテスト自動化ソフトウェアでも使用されている。

MSAAを実装しているアプリケーションおよび支援技術製品は、マイクロソフトアクセシビリティサイトまたは支援技術情報Webサイトで検索できる。