Microsoft UI Automation

Microsoft UI Automation (UIA) (マイクロソフト・ユーアイ・オートメーション) は他のアプリケーションのユーザインターフェイス (UI) 要素を識別して操作するためのアプリケーションプログラミングインターフェイス (API)である。 UIA はユーザインターフェイスのアクセシビリティの提供を目標としており、Microsoft Active Accessibility の後継である。また、グラフィカルユーザインターフェイス(GUI)のテスト自動化を容易にし、多くのテスト自動化ツールが基礎にするエンジンでもある。RPAツールもビジネスプロセスで使われるアプリケーションの自動化に利用している。 UIAのプロパティプロバイダは Win32 と .NET のプログラムもサポートする。 UIAの最新仕様は Microsoft UI Automation Community Promise Specification の一部となっている。マイクロソフトは Microsoft Windows プラットフォーム以外への移植はデザイン目標の一つであると主張しており、Mono にも移植された。 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 向けに提供された。 MSAA の後継として UIA では以下のことを目指している。 対象となるアプリケーションのプロセスにクライアントをフックしなくても、クライアントの効率的なパフォーマンスを実現する。 UI について、より多くの情報を提供する。 MSAA と共存し、利用するがMSAAに存在した課題は継承しない。 MSAA に代わる単純な実装を提供する。 UIA は当初 Windows Vista と Windows Server 2008 で利用でき、その後 Windows XP と Windows Server 2003 でも .NET Framework 3.0 の一部として利用可能となった。Windows 7 等、以降のすべての Windows バージョンに統合された。 Windows プラットフォーム以外には、Olive プロジェクト (.NET Framework のサポートを約束している　Mono coreのアドオンライブラリ一式) が WPF (PresentationFramework および WindowsBase) と UI Automation のサブセットを同梱した。 ノベルによる Mono アクセシビリティプロジェクトは Mono フレームワークを対象とした UIA プロバイダとクライアントの実装である。加えて、このプロジェクトは Accessibility Toolkit (ATK) for Linux assistive technologies (ATs) との橋渡しとなっている。ノベルは UIA-based ATs との橋渡しを行うことで、ATK を実装するアプリケーションと関われるようにしている。 Microsoft Active Accessibility (MSAA): UIA は MSAA の後継である。しかし MSAA に依存するアプリケーションがまだ存在するため、UIA アプリケーションと MSAA アプリケーションの橋渡しが行われ、2つの API の間で情報共有が可能である。MSAA-to-UIA プロキシと UIA-to-MSAA ブリッジが開発された。前者は MSAA の情報を元に UIA クライアント API で利用可能とするコンポーネントである。後者は MSAA を使うクライアントアプリケーションが UIA を実装するアプリケーションにアクセスできるようにする仕組みである。 Accessible Rich Internet Applications (ARIA): UIA の AriaRole および AriaProperties プロパティは HTML 要素 (ウェブブラウザによりオートメーション要素としてアクセス可能となる)に対応する ARIA 属性値へのアクセスを可能とする。ARIA 属性から UIA への一般的なマッピングも利用できる。 Windows Automation API: Windows 7 より、マイクロソフトはアクセシビリティテクノロジーを Windows Automation API と呼ばれるフレームワークにパッケージした。MSAA も UIA もこのフレームワークの一部となった。旧バージョンの Windows については KB971513 を参照。 Mono アクセシビリティプロジェクト: 2007年11月7日にマイクロソフトとノベルは相互運用性に関する合意完了後、アクセシビリティ機能の拡張についてアナウンスを行った。特に、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 UIオートメーションの概要 UIオートメーションのススメ UI Automation Verify (UIA Verify) Test Automation Framework UI Automation PowerShell Extensions TestStack/White 表示 編集