Microsoft UI Automation
Microsoft UI Automation (UIA) (マイクロソフト・ユーアイ・オートメーション) は他のアプリケーションのユーザインターフェイス (UI) 要素を識別して操作するためのアプリケーションプログラミングインターフェイス (API)である[1][2]。
UIA はユーザインターフェイスのアクセシビリティの提供を目標としており、Microsoft Active Accessibility の後継である。また、グラフィカルユーザインターフェイス(GUI)のテスト自動化を容易にし、多くのテスト自動化ツールが基礎にするエンジンでもある。RPAツールもビジネスプロセスで使われるアプリケーションの自動化に利用している。 UIAのプロパティプロバイダは Win32 と .NET のプログラムもサポートする。
UIAの最新仕様は Microsoft UI Automation Community Promise Specification の一部となっている。マイクロソフトは Microsoft Windows プラットフォーム以外への移植はデザイン目標の一つであると主張しており、Mono にも移植された[3]。
歴史
[編集]2005年に、マイクロソフトは MSAA フレームワークの後継として UIA をリリースした。
マネージド UI Automation APIは.NET Framework 3.0の一部としてリリースされた。 ネイティブ UI Automation API (プロバイダ)はWindows Vista と Windows Server 2008 SDK に含まれており、.NET Frameworkと一緒にも配布された。
UIA は Windows Automation API 3.0 の一部として Windows 7 に同梱され、個別ダウンロードとして Windows XP、Windows Vista、Windows Server 2003/2008 向けに提供された[4]。
目的
[編集]MSAA の後継として UIA では以下のことを目指している。
- 対象となるアプリケーションのプロセスにクライアントをフックしなくても、クライアントの効率的なパフォーマンスを実現する。
- UI について、より多くの情報を提供する。
- MSAA と共存し、利用するがMSAAに存在した課題は継承しない。
- MSAA に代わる単純な実装を提供する。
技術的概要
[編集]利用できるオペレーティングシステム
[編集]UIA は当初 Windows Vista と Windows Server 2008 で利用でき、その後 Windows XP と Windows Server 2003 でも .NET Framework 3.0 の一部として利用可能となった。Windows 7 等、以降のすべての Windows バージョンに統合された[5]。
Windows プラットフォーム以外には、Olive プロジェクト (.NET Framework のサポートを約束している Mono coreのアドオンライブラリ一式) が WPF (PresentationFramework
および WindowsBase
) と UI Automation のサブセットを同梱した[6]。
ノベルによる Mono アクセシビリティプロジェクトは Mono フレームワークを対象とした UIA プロバイダとクライアントの実装である。加えて、このプロジェクトは Accessibility Toolkit (ATK) for Linux assistive technologies (ATs) との橋渡しとなっている。ノベルは UIA-based ATs との橋渡しを行うことで、ATK を実装するアプリケーションと関われるようにしている[7]。
関連テクノロジと相互運用
[編集]- Microsoft Active Accessibility (MSAA): UIA は MSAA の後継である。しかし MSAA に依存するアプリケーションがまだ存在するため、UIA アプリケーションと MSAA アプリケーションの橋渡しが行われ、2つの API の間で情報共有が可能である。MSAA-to-UIA プロキシと UIA-to-MSAA ブリッジが開発された。前者は MSAA の情報を元に UIA クライアント API で利用可能とするコンポーネントである。後者は MSAA を使うクライアントアプリケーションが UIA を実装するアプリケーションにアクセスできるようにする仕組みである[8]。
- Accessible Rich Internet Applications (ARIA): UIA の
AriaRole
およびAriaProperties
プロパティは HTML 要素 (ウェブブラウザによりオートメーション要素としてアクセス可能となる)に対応する ARIA 属性値へのアクセスを可能とする。ARIA 属性から UIA への一般的なマッピングも利用できる[3]。 - Windows Automation API: Windows 7 より、マイクロソフトはアクセシビリティテクノロジーを Windows Automation API と呼ばれるフレームワークにパッケージした。MSAA も UIA もこのフレームワークの一部となった。旧バージョンの Windows については KB971513 を参照[9]。
- Mono アクセシビリティプロジェクト: 2007年11月7日にマイクロソフトとノベルは相互運用性に関する合意完了後、アクセシビリティ機能の拡張についてアナウンスを行った[10][11]。特に、UIA フレームワークが Linux Accessibility Toolkit (ATK) 等の既存の Linux アクセシビリティプロジェクトと一緒に動作するよう、ノベルがオープンソースのアダプタを開発し、SUSE Linux Enterprise Desktop、Red Hat Enterprise Linux、Ubuntu Linuxと一緒にリリースされることがアナウンスされた。これにより UIA は最終的にクロスプラットフォームとなった。
脚注
[編集]- ^ Darryl K. Taft: Microsoft Promotes Cross-Platform Accessibility Tech, EWeek (2005-11-28), accessed 2007-02-07.
- ^ Microsoft: Microsoft's New Accessibility Model To Be Offered as Cross-Platform Solution for Industry, accessed 2007-02-06.
- ^ a b Microsoft Developer Network: UI Automation Specification and Community Promise
- ^ Description of the Windows Automation API
- ^ Microsoft: UI Automation Overview, accessed 2007-02-07.
- ^ Mono: Olive.
- ^ Miguel de Icaza and Philippe Cohen: Mono, Mainsoft and Cross-Platform Enterprise Development, Enterprise Open Source Magazine (2007-01-14), accessed 2007-02-07.
- ^ Microsoft Developer Network (MSDN): Microsoft, UI Automation and Microsoft Active Accessibility, accessed 2007-02-07.
- ^ KB971513: Windows Automation API download
- ^ Microsoft: Microsoft and Novell Celebrate Year of Interoperability, Expand Collaboration Agreement.
- ^ Mono Accessibility Project Homepage.
関連項目
[編集]- UI Automation Control Types
- UI Automation Control Patterns
- UI Automation Control Properties
- UI Automation Events