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 DesktopRed Hat Enterprise LinuxUbuntu Linuxと一緒にリリースされることがアナウンスされた。これにより UIA は最終的にクロスプラットフォームとなった。

脚注

  1. ^ Darryl K. Taft: Microsoft Promotes Cross-Platform Accessibility Tech, EWeek (2005-11-28), accessed 2007-02-07.
  2. ^ Microsoft: Microsoft's New Accessibility Model To Be Offered as Cross-Platform Solution for Industry, accessed 2007-02-06.
  3. ^ a b Microsoft Developer Network: UI Automation Specification and Community Promise
  4. ^ Description of the Windows Automation API
  5. ^ Microsoft: UI Automation Overview, accessed 2007-02-07.
  6. ^ Mono: Olive.
  7. ^ Miguel de Icaza and Philippe Cohen: Mono, Mainsoft and Cross-Platform Enterprise Development, Enterprise Open Source Magazine (2007-01-14), accessed 2007-02-07.
  8. ^ Microsoft Developer Network (MSDN): Microsoft, UI Automation and Microsoft Active Accessibility, accessed 2007-02-07.
  9. ^ KB971513: Windows Automation API download
  10. ^ Microsoft: Microsoft and Novell Celebrate Year of Interoperability, Expand Collaboration Agreement.
  11. ^ Mono Accessibility Project Homepage.

関連項目

外部リンク