Microsoft UI Automation

Microsoft UI Automation (UIA) について



Microsoft UI Automation (UIA) は、アプリケーションのユーザーインターフェース (UI) 要素を識別し、操作するためのAPIです。主な目的は、ユーザーインターフェースのアクセシビリティを向上させることであり、Microsoft Active Accessibility (MSAA) の後継として開発されました。UIAは、グラフィカルユーザーインターフェース (GUI) のテスト自動化を容易にし、多くのテスト自動化ツールやRPAツールで利用されています。

UIAのプロパティプロバイダは、Win32と.NETの両方のプログラムをサポートしています。最新の仕様は、Microsoft UI Automation Community Promise Specificationの一部として公開されており、MicrosoftはWindowsプラットフォーム以外への移植も視野に入れています。実際に、Mono環境にも移植されています。

歴史



2005年、MicrosoftはMSAAの後継としてUIAをリリースしました。マネージドUI Automation APIは、.NET Framework 3.0の一部として提供され、ネイティブUI Automation API (プロバイダ) は、Windows VistaおよびWindows Server 2008 SDKに含まれていました。その後、UIAはWindows 7にWindows Automation API 3.0の一部として組み込まれ、Windows XP、Windows Vista、Windows Server 2003/2008向けには個別にダウンロードが可能になりました。

目的



UIAは、MSAAの後継として以下の目標を掲げて開発されました。

クライアントが対象アプリケーションのプロセスにフックしなくても効率的なパフォーマンスを実現する。
UIに関するより詳細な情報を提供する。
MSAAと共存しつつ、MSAAの課題を解消する。
MSAAに代わるよりシンプルな実装を提供する。

技術概要



利用可能なオペレーティングシステム


当初、UIAはWindows VistaとWindows Server 2008で利用可能でしたが、その後.NET Framework 3.0の一部としてWindows XPとWindows Server 2003でも利用できるようになりました。Windows 7以降のすべてのWindowsバージョンには統合されています。

Windowsプラットフォーム以外では、Oliveプロジェクト(.NET Frameworkのサポートを目指すMono coreのアドオンライブラリ)が、WPF (PresentationFrameworkおよびWindowsBase) とUI Automationのサブセットを同梱しています。

また、ノベルによるMonoアクセシビリティプロジェクトは、Monoフレームワーク向けのUIAプロバイダとクライアントの実装を提供しています。このプロジェクトは、Linuxの支援技術 (AT) 向けのアクセシビリティツールキット (ATK) との橋渡し役も担い、UIAベースのATをATKを実装するアプリケーションと連携させることが可能となっています。

関連テクノロジーと相互運用性


Microsoft Active Accessibility (MSAA): UIAはMSAAの後継ですが、MSAAに依存するアプリケーションがまだ存在するため、UIAアプリケーションとMSAAアプリケーションの間で情報共有が必要です。MSAA-to-UIAプロキシとUIA-to-MSAAブリッジが開発され、相互運用性を実現しています。MSAA-to-UIAプロキシは、MSAAの情報を元にUIAクライアントAPIで利用できるようにし、UIA-to-MSAAブリッジは、MSAAクライアントがUIAを実装するアプリケーションにアクセスできるようにします。
Accessible Rich Internet Applications (ARIA): UIAのAriaRoleおよびAriaPropertiesプロパティは、HTML要素に対応するARIA属性値へのアクセスを可能にします。これにより、WebブラウザでUIオートメーション要素としてアクセスできるようになります。ARIA属性からUIAへの一般的なマッピングも利用できます。
Windows Automation API: Windows 7以降、Microsoftはアクセシビリティ技術をWindows Automation APIというフレームワークにまとめました。MSAAとUIAはともにこのフレームワークの一部となっています。旧バージョンのWindowsについては、KB971513を参照してください。
Monoアクセシビリティプロジェクト: Microsoftとノベルは2007年11月7日、相互運用性に関する合意を発表し、アクセシビリティ機能の拡張について発表しました。ノベルは特に、UIAフレームワークがLinux Accessibility Toolkit (ATK)などの既存のLinuxアクセシビリティプロジェクトと連携できるようにオープンソースのアダプタを開発し、SUSE Linux Enterprise Desktop、Red Hat Enterprise LinuxUbuntu Linuxと共にリリースされることを発表しました。これにより、UIAはクロスプラットフォームでの利用が可能になりました。

脚注



詳細については以下の資料を参照してください。

関連項目



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

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。