UI オートメーションと Microsoft Active AccessibilityUI Automation and Microsoft Active Accessibility

注意

このドキュメントは、UI オートメーションUI Automation 名前空間で定義されているマネージド System.Windows.Automation クラスを使用する .NET Framework 開発者を対象としています。This documentation is intended for .NET Framework developers who want to use the managed UI オートメーションUI Automation classes defined in the System.Windows.Automation namespace. UI オートメーションUI Automationの最新情報については、「 Windows Automation API: UI オートメーション」を参照してください。For the latest information about UI オートメーションUI Automation, see Windows Automation API: UI Automation.

Microsoft Active Accessibility は、アプリケーションをアクセス可能にするための以前のソリューションでした。Microsoft Active Accessibility was the earlier solution for making applications accessible. Microsoft UI オートメーションMicrosoft UI Automation は、Microsoft Windows の新しいユーザー補助モデルであり、支援技術製品および自動テストツールのニーズに対応することを目的としています。is the new accessibility model for Microsoft Windows and is intended to address the needs of assistive technology products and automated testing tools. UI オートメーションUI Automation は、Active Accessibility よりも多くの機能強化を提供します。offers many improvements over Active Accessibility.

このトピックでは、UI オートメーションUI Automation の主な機能と、これらの機能が Active Accessibility とどのように異なるかについて説明します。This topic includes the main features of UI オートメーションUI Automation and explains how these features differ from Active Accessibility.

プログラミング言語Programming Languages

< Active Accessibility は、デュアルインターフェイスをサポートするコンポーネントオブジェクトモデル (COM) に基づいているため、C/C++、Microsoft Visual Basic 6.0、スクリプト言語でプログラミングできます。<Active Accessibility is based on the Component Object Model (COM) with support for dual interfaces, and is therefore programmable in C/C++, Microsoft Visual Basic 6.0, and scripting languages. UI オートメーションUI Automation (標準コントロールのクライアント側プロバイダーライブラリを含む) はマネージコードで記述されており、UI オートメーションクライアントアプリケーションはまたはC# Visual Basic .net を使用して最も簡単にプログラミングできます。(including the client-side provider library for standard controls) is written in managed code, and UI Automation client applications are most easily programmed using C# or Visual Basic .NET. インターフェイスを実装する UI オートメーション プロバイダーは、マネージド コードまたは C/C++ で記述できます。UI Automation providers, which are interface implementations, can be written in managed code or in C/C++.

Windows Presentation Foundation におけるサポートSupport in Windows Presentation Foundation

Windows Presentation Foundation (WPF) は、ユーザーインターフェイスを作成するための新しいモデルです。Windows Presentation Foundation (WPF) is the new model for creating user interfaces. WPFWPF 要素には、Active Accessibility のネイティブサポートは含まれていません。ただし、Active Accessibility クライアントのブリッジングサポートを含む UI オートメーションUI Automationをサポートしています。elements do not contain native support for Active Accessibility; however, they do support UI オートメーションUI Automation, which includes bridging support for Active Accessibility clients. UI オートメーションUI Automation 専用に作成されたクライアントだけが WPFWPFのユーザー補助機能 (テキストに関する豊富なサポートなど) を最大限に利用できます。Only clients written specifically for UI オートメーションUI Automation can take full advantage of the accessibility features of WPFWPF, such as the rich support for text.

サーバーとクライアントServers and Clients

Active Accessibility では、サーバーとクライアントは、主にサーバーの IAccessibleの実装を介して直接通信します。In Active Accessibility, servers and clients communicate directly, largely through the server's implementation of IAccessible.

UI オートメーションUI Automationでは、サーバー (プロバイダー) とクライアントの間にコア サービスが存在します。In UI オートメーションUI Automation, a core service lies between the server (called a provider) and the client. このコア サービスは、プロバイダーによって実装されたインターフェイスを呼び出して、追加のサービス (要素の一意のランタイム識別子の生成など) を提供します。The core service makes calls to the interfaces implemented by providers and provides additional services such as generating unique runtime identifiers for elements. クライアント アプリケーションはライブラリ関数を使用して UI オートメーションUI Automation サービスを呼び出します。Client applications use library functions to call the UI オートメーションUI Automation service.

UI オートメーションプロバイダーは Active Accessibility クライアントに情報を提供でき、Active Accessibility サーバーは UI オートメーションクライアントアプリケーションに情報を提供できます。UI Automation providers can provide information to Active Accessibility clients, and Active Accessibility servers can provide information to UI Automation client applications. ただし、Active Accessibility は UI オートメーションUI Automationほど多くの情報を公開しないため、2つのモデルは完全には互換性がありません。However, because Active Accessibility does not expose as much information as UI オートメーションUI Automation, the two models are not fully compatible.

UI 要素UI Elements

Active Accessibility は、IAccessible インターフェイスまたは子識別子として UIUI 要素を提示します。Active Accessibility presents UIUI elements either as an IAccessible interface or as a child identifier. 2 つの IAccessible ポインターを比較してそれらが同じ要素を参照しているかどうかを判断するのは困難です。It is difficult to compare two IAccessible pointers to determine if they refer to the same element.

UI オートメーションUI Automationでは、すべての要素が AutomationElement オブジェクトとして表現されます。In UI オートメーションUI Automation, every element is represented as an AutomationElement object. 比較は等値演算子または Equals メソッドを使用して行われますが、どちらの方法でも、要素の一意のランタイム識別子が比較されます。Comparison is done by using the equality operator or the Equals method, both of which compare the unique runtime identifiers of the elements.

ツリー ビューとナビゲーションTree Views and Navigation

画面上の ユーザー インターフェイス (UI)user interface (UI) 要素は、ツリー構造で表すことができます。デスクトップがルートで、その直接の子としてアプリケーション ウィンドウがあり、アプリケーション内の要素がその子孫となります。The ユーザー インターフェイス (UI)user interface (UI) elements on the screen can be seen as a tree structure with the desktop as the root, application windows as immediate children, and elements within applications as further descendants.

Active Accessibility では、エンドユーザーに関係のないオートメーション要素の多くがツリーで公開されます。In Active Accessibility, many automation elements that are irrelevant to end users are exposed in the tree. クライアント アプリケーションは、すべての要素の中から意味のあるものを特定する必要があります。Client applications have to look at all the elements to determine which are meaningful.

UI オートメーション クライアント アプリケーションは、フィルタリングしたビューを使用して UIUI を確認します。UI Automation client applications see the UIUI through a filtered view. このビューには、必要な要素 (ユーザーに情報を提供したり、対話を可能にしたりする要素) のみが表示されます。The view contains only elements of interest: those that give information to the user or enable interaction. コントロール要素だけが含まれるビューや、コンテンツ要素だけが含まれるビューがあらかじめ定義されています。さらに、アプリケーションでカスタム ビューを定義することもできます。Predefined views of only control elements and only content elements are available; in addition, applications can define custom views. UI オートメーションUI Automation は、ユーザーに対して UIUI を簡単に表せるようにして、ユーザーとアプリケーションの対話を支援します。simplifies the task of describing the UIUI to the user and helping the user interact with the application.

Active Accessibility の要素間のナビゲーションは、空間 (画面の左側にある要素に移動するなど)、論理 (たとえば、次のメニュー項目に移動する、ダイアログボックス内のタブオーダーで次の項目に移動するなど)、または階層 (たとえば、コンテナー内の最初の子を移動したり、子からその親に移動したりすることができます。Navigation between elements, in Active Accessibility, is either spatial (for example, moving to the element that lies to the left on the screen), logical (for example, moving to the next menu item, or the next item in the tab order within a dialog box), or hierarchical (for example, moving the first child in a container, or from the child to its parent). 子要素が IAccessibleを実装しているオブジェクトであるとは限らないため、階層的ナビゲーションは複雑です。Hierarchical navigation is complicated by the fact that child elements are not always objects that implement IAccessible.

UI オートメーションUI Automationでは、すべての UIUI 要素は、同じ基本機能をサポートする AutomationElement オブジェクトですIn UI オートメーションUI Automation, all UIUI elements are AutomationElement objects that support the same basic functionality. (プロバイダーの観点からは、これらは IRawElementProviderSimpleから継承されたインターフェイスを実装するオブジェクトです)。ナビゲーションは主に階層構造です。親から子、そして兄弟から次の兄弟へと移動します。(From the standpoint of the provider, they are objects that implement an interface inherited from IRawElementProviderSimple.) Navigation is mainly hierarchical: from parents to children, and from one sibling to the next. (兄弟間のナビゲーションは、タブオーダーに従っている場合があるため、論理要素を持ちます)。TreeWalker クラスを使用すると、ツリーのフィルター処理されたビューを使用して、任意の開始点から移動できます。(Navigation between siblings has a logical element, as it may follow the tab order.) You can navigate from any starting-point, using any filtered view of the tree, by using the TreeWalker class. FindFirstFindAllを使用して、特定の子または子孫に移動することもできます。たとえば、指定したコントロール パターンがサポートされるダイアログ ボックス内のすべての要素を非常に簡単に取得できます。You can also navigate to particular children or descendants by using FindFirst and FindAll; for example, it is very easy to retrieve all elements within a dialog box that support a specified control pattern.

UI オートメーションUI Automation でのナビゲーションは、Active Accessibility よりも一貫性があります。Navigation in UI オートメーションUI Automation is more consistent than in Active Accessibility. ドロップダウンリストやポップアップウィンドウなどの一部の要素が Active Accessibility ツリーに2回表示され、それらの要素からのナビゲーションが予期しない結果になる場合があります。Some elements such as drop-down lists and pop-up windows appear twice in the Active Accessibility tree, and navigation from them may have unexpected results. 実際には、rebar コントロールに Active Accessibility を正しく実装することはできません。It is actually impossible to properly implement Active Accessibility for a rebar control. UI オートメーションUI Automation では親の再指定や位置の変更が可能なため、ウィンドウの所有関係による階層にかかわらず、要素をツリー内の任意の場所に配置できます。enables reparenting and repositioning, so that an element can be placed anywhere in the tree despite the hierarchy imposed by ownership of windows.

役割とコントロール型Roles and Control Types

Active Accessibility は、accRole プロパティ (IAccessible::get_actRole) を使用して、UIUI内の要素のロールの説明 (ROLE_SYSTEM_SLIDER や ROLE_SYSTEM_MENUITEM など) を取得します。Active Accessibility uses the accRole property (IAccessible::get_actRole) to retrieve a description of the element's role in the UIUI, such as ROLE_SYSTEM_SLIDER or ROLE_SYSTEM_MENUITEM. 要素の役割は、要素の機能を表す主要な鍵になります。The role of an element is the main clue to its available functionality. コントロールとの対話は、 IAccessible::accSelectIAccessible::accDoDefaultActionなどの固定のメソッドを使用して実現されます。Interaction with a control is achieved by using fixed methods such as IAccessible::accSelect and IAccessible::accDoDefaultAction. クライアント アプリケーションと UIUI の間の対話は、 IAccessibleを通して実行できる範囲に限定されます。The interaction between the client application and the UIUI is limited to what can be done through IAccessible.

これに対して、 UI オートメーションUI Automation では、要素のコントロール型 ( ControlType プロパティで記述) と、その要素に期待される機能とが大きく分離されています。In contrast, UI オートメーションUI Automation largely decouples the control type of the element (described by the ControlType property) from its expected functionality. 機能は、特殊なインターフェイスの実装を通じてプロバイダーによってサポートされる、コントロール パターンによって決定されます。Functionality is determined by the control patterns that are supported by the provider through its implementation of specialized interfaces. 複数のコントロール パターンを組み合わせると、特定の UIUI 要素がサポートする機能をすべて記述することができます。Control patterns can be combined to describe the full set of functionality supported by a particular UIUI element. プロバイダーによっては、ある 1 つの特定のコントロール パターンをサポートしなければならないものがあります。たとえば、チェック ボックスのプロバイダーは Toggle コントロール パターンをサポートする必要があります。Some providers are required to support a particular control pattern; for example, the provider for a check box must support the Toggle control pattern. また、コントロール パターンのセットを 1 つ以上サポートしなければならないものもあります。たとえば、ボタンは、Toggle と Invoke のいずれかをサポートする必要があります。Other providers are required to support one or more of a set of control patterns; for example, a button must support either Toggle or Invoke. さらに、コントロール パターンをまったくサポートしないものもあります。たとえば、移動もサイズ変更もドッキングもできないペインには、コントロール パターンはありません。Still others support no control patterns at all; for example, a pane that cannot be moved, resized, or docked does not have any control patterns.

UI オートメーションUI Automation は、 Custom プロパティによって識別され、 LocalizedControlTypeProperty プロパティによって記述可能なカスタム コントロールをサポートします。supports custom controls, which are identified by the Custom property and can be described by the LocalizedControlTypeProperty property.

次の表は、Active Accessibility ロールと UI オートメーションUI Automation コントロール型とのマッピングを示しています。The following table shows the mapping of Active Accessibility roles to UI オートメーションUI Automation control types.

Active Accessibility ロールActive Accessibility role UI オートメーションUI Automation のコントロール型control type
ROLE_SYSTEM_PUSHBUTTONROLE_SYSTEM_PUSHBUTTON ボタンButton
ROLE_SYSTEM_CLIENTROLE_SYSTEM_CLIENT カレンダーCalendar
ROLE_SYSTEM_CHECKBUTTONROLE_SYSTEM_CHECKBUTTON チェック ボックスCheck box
ROLE_SYSTEM_COMBOBOXROLE_SYSTEM_COMBOBOX コンボ ボックスCombo box
ROLE_SYSTEM_CLIENTROLE_SYSTEM_CLIENT カスタムCustom
ROLE_SYSTEM_LISTROLE_SYSTEM_LIST データ グリッドData grid
ROLE_SYSTEM_LISTITEMROLE_SYSTEM_LISTITEM データ項目Data item
ROLE_SYSTEM_DOCUMENTROLE_SYSTEM_DOCUMENT ドキュメントDocument
ROLE_SYSTEM_TEXTROLE_SYSTEM_TEXT 編集Edit
ROLE_SYSTEM_GROUPINGROLE_SYSTEM_GROUPING グループGroup
ROLE_SYSTEM_LISTROLE_SYSTEM_LIST ヘッダーHeader
ROLE_SYSTEM_COLUMNHEADERROLE_SYSTEM_COLUMNHEADER ヘッダー項目Header item
ROLE_SYSTEM_LINKROLE_SYSTEM_LINK ハイパーリンクHyperlink
ROLE_SYSTEM_GRAPHICROLE_SYSTEM_GRAPHIC イメージImage
ROLE_SYSTEM_LISTROLE_SYSTEM_LIST 一覧List
ROLE_SYSTEM_LISTITEMROLE_SYSTEM_LISTITEM リスト アイテムList item
ROLE_SYSTEM_MENUPOPUPROLE_SYSTEM_MENUPOPUP メニューMenu
ROLE_SYSTEM_MENUBARROLE_SYSTEM_MENUBAR メニュー バーMenu bar
ROLE_SYSTEM_MENUITEMROLE_SYSTEM_MENUITEM メニュー項目Menu item
ROLE_SYSTEM_PANEROLE_SYSTEM_PANE ウィンドウPane
ROLE_SYSTEM_PROGRESSBARROLE_SYSTEM_PROGRESSBAR 進行状況バーProgress bar
ROLE_SYSTEM_RADIOBUTTONROLE_SYSTEM_RADIOBUTTON オプション ボタンRadio button
ROLE_SYSTEM_SCROLLBARROLE_SYSTEM_SCROLLBAR スクロール バーScroll bar
ROLE_SYSTEM_SEPARATORROLE_SYSTEM_SEPARATOR [区切り文字]Separator
ROLE_SYSTEM_SLIDERROLE_SYSTEM_SLIDER [スライダー]Slider
ROLE_SYSTEM_SPINBUTTONROLE_SYSTEM_SPINBUTTON SpinnerSpinner
ROLE_SYSTEM_SPLITBUTTONROLE_SYSTEM_SPLITBUTTON 分割ボタンSplit button
ROLE_SYSTEM_STATUSBARROLE_SYSTEM_STATUSBAR ステータス バーStatus bar
ROLE_SYSTEM_PAGETABLISTROLE_SYSTEM_PAGETABLIST タブTab
ROLE_SYSTEM_PAGETABROLE_SYSTEM_PAGETAB タブ項目Tab item
ROLE_SYSTEM_TABLEROLE_SYSTEM_TABLE TableTable
ROLE_SYSTEM_STATICTEXTROLE_SYSTEM_STATICTEXT TextText
ROLE_SYSTEM_INDICATORROLE_SYSTEM_INDICATOR サムThumb
ROLE_SYSTEM_TITLEBARROLE_SYSTEM_TITLEBAR タイトル バーTitle bar
ROLE_SYSTEM_TOOLBARROLE_SYSTEM_TOOLBAR ツール バーTool bar
ROLE_SYSTEM_TOOLTIPROLE_SYSTEM_TOOLTIP ToolTipToolTip
ROLE_SYSTEM_OUTLINEROLE_SYSTEM_OUTLINE ツリーTree
ROLE_SYSTEM_OUTLINEITEMROLE_SYSTEM_OUTLINEITEM ツリー項目Tree item
ROLE_SYSTEM_WINDOWROLE_SYSTEM_WINDOW ウィンドウWindow

さまざまなコントロール型の詳細については、「 UI Automation Control Types」を参照してください。For more information about the different control types, see UI Automation Control Types.

状態とプロパティStates and Properties

Active Accessibility では、要素は共通のプロパティセットをサポートし、一部のプロパティ (accStateなど) は、要素のロールに応じて、非常に異なる項目を記述する必要があります。In Active Accessibility, elements support a common set of properties, and some properties (such as accState) must describe very different things, depending on the element's role. サーバーは、プロパティを返す IAccessible のメソッドをすべて (要素に無関係なものも含む) 実装する必要があります。Servers must implement all methods of IAccessible that return a property, even those that are not relevant to the element.

UI オートメーションUI Automation では、さらに多くのプロパティが定義されていますが、その一部は Active Accessibility の状態に対応しています。defines many more properties, some of which correspond to states in Active Accessibility. すべての要素に共通するものもあれば、コントロール型とコントロール パターンに固有のものもあります。Some are common to all elements, but others are specific to control types and control patterns. プロパティは一意の識別子によって識別され、ほとんどのプロパティは単一のメソッド ( GetCurrentPropertyValue または GetCachedPropertyValue) を使用して取得できます。Properties are distinguished by unique identifiers, and most properties can be retrieved by using a single method, GetCurrentPropertyValue or GetCachedPropertyValue. 多くのプロパティは、 Current プロパティ アクセサーおよび Cached プロパティ アクセサーからも容易に取得できます。Many properties are also easily retrievable from the Current and Cached property accessors.

UI オートメーション プロバイダーは、無関係なプロパティを実装する必要はなく、サポートしていないプロパティに対しては単に null 値を返すことができます。A UI Automation provider does not have to implement irrelevant properties, but can simply return a null value for any properties it does not support. また、 UI オートメーションUI Automation のコア サービスは、一部のプロパティを既定のウィンドウ プロバイダーから取得できます。これらのプロパティは、プロバイダーによって明示的に実装されたプロパティと 1 つにまとめられます。Also, the UI オートメーションUI Automation core service can obtain some properties from the default window provider, and these are amalgamated with properties explicitly implemented by the provider.

UI オートメーションUI Automation では、多くのプロパティをサポートすることに加えて、単一のプロセス間呼び出しで複数のプロパティを取得できるので、パフォーマンスが向上します。As well as supporting many more properties, UI オートメーションUI Automation supplies better performance by allowing multiple properties to be retrieved with a single cross-process call.

次の表に、2 つのモデルのプロパティ間の対応を示します。The following table shows the correspondence between properties in the two models.

Active Accessibility プロパティアクセサーActive Accessibility property accessor UI オートメーションUI Automation のプロパティ IDproperty ID コメントRemarks
get_accKeyboardShortcut AccessKeyProperty または AcceleratorKeyPropertyAccessKeyProperty or AcceleratorKeyProperty 両方とも存在する場合はAccessKeyProperty が優先されます。AccessKeyProperty takes precedence if both are present.
get_accName NameProperty
get_accRole ControlTypeProperty 役割とコントロール型のマッピングについては、前の表を参照してください。See the previous table for mapping of roles to control types.
get_accValue ValuePattern.ValueProperty

RangeValuePattern.ValueProperty
ValuePattern または RangeValuePattern をサポートするコントロール型でのみ有効です。Valid only for control types that support ValuePattern or RangeValuePattern. MSAA 動作との一貫性を保つために、RangeValue 値は 0 ~ 100 に正規化されます。RangeValue values are normalized to 0-100, to be consistent with MSAA behavior. Value 項目は文字列を使用します。Value items use a string.
get_accHelp HelpTextProperty
accLocation BoundingRectangleProperty
get_accDescription UI オートメーションUI AutomationNot supported in UI オートメーションUI Automation accDescription に関する明確な仕様が MSAA 内に存在しなかったので、このプロパティに格納される情報はプロバイダーによって異なります。accDescription did not have a clear specification within MSAA, which resulted in providers placing different pieces of information in this property.
get_accHelpTopic UI オートメーションUI AutomationNot supported in UI オートメーションUI Automation

次の表は、Active Accessibility 状態定数に対応する UI オートメーションUI Automation プロパティを示しています。The following table shows which UI オートメーションUI Automation properties correspond to Active Accessibility state constants.

Active Accessibility の状態Active Accessibility state UI オートメーションUI Automation プロパティproperty 状態の変更をトリガーするTriggers State Change?
STATE_SYSTEM_CHECKEDSTATE_SYSTEM_CHECKED チェック ボックスの場合、 ToggleStatePropertyFor check box, ToggleStateProperty

オプション ボタンの場合、 IsSelectedPropertyFor radio button, IsSelectedProperty
Y
STATE_SYSTEM_COLLAPSEDSTATE_SYSTEM_COLLAPSED ExpandCollapseState = Collapsed Y
STATE_SYSTEM_EXPANDEDSTATE_SYSTEM_EXPANDED ExpandCollapseState = Expanded または PartiallyExpandedExpandCollapseState = Expanded or PartiallyExpanded Y
STATE_SYSTEM_FOCUSABLESTATE_SYSTEM_FOCUSABLE IsKeyboardFocusableProperty NN
STATE_SYSTEM_FOCUSEDSTATE_SYSTEM_FOCUSED HasKeyboardFocusProperty NN
STATE_SYSTEM_HASPOPUPSTATE_SYSTEM_HASPOPUP ExpandCollapsePattern (メニュー項目の場合)ExpandCollapsePattern for menu items NN
STATE_SYSTEM_INVISIBLESTATE_SYSTEM_INVISIBLE IsOffscreenProperty = True かつ GetClickablePoint の場合に NoClickablePointExceptionIsOffscreenProperty = True and GetClickablePoint causes NoClickablePointException NN
STATE_SYSTEM_LINKEDSTATE_SYSTEM_LINKED ControlTypeProperty =

Hyperlink
NN
STATE_SYSTEM_MIXEDSTATE_SYSTEM_MIXED ToggleState = Indeterminate NN
STATE_SYSTEM_MOVEABLESTATE_SYSTEM_MOVEABLE CanMoveProperty NN
STATE_SYSTEM_MUTLISELECTABLESTATE_SYSTEM_MUTLISELECTABLE CanSelectMultipleProperty NN
STATE_SYSTEM_OFFSCREENSTATE_SYSTEM_OFFSCREEN IsOffscreenProperty = TrueIsOffscreenProperty = True NN
STATE_SYSTEM_PROTECTEDSTATE_SYSTEM_PROTECTED IsPasswordProperty NN
STATE_SYSTEM_READONLYSTATE_SYSTEM_READONLY RangeValuePattern.IsReadOnlyProperty および ValuePattern.IsReadOnlyPropertyRangeValuePattern.IsReadOnlyProperty and ValuePattern.IsReadOnlyProperty NN
STATE_SYSTEM_SELECTABLESTATE_SYSTEM_SELECTABLE SelectionItemPattern がサポートされていますSelectionItemPattern is supported NN
STATE_SYSTEM_SELECTEDSTATE_SYSTEM_SELECTED IsSelectedProperty NN
STATE_SYSTEM_SIZEABLESTATE_SYSTEM_SIZEABLE CanResize NN
STATE_SYSTEM_UNAVAILABLESTATE_SYSTEM_UNAVAILABLE IsEnabledProperty Y

次の状態は、ほとんどの Active Accessibility コントロールサーバーで実装されていないか、UI オートメーションUI Automationに同等のものがありませんでした。The following states either were not implemented by most Active Accessibility control servers or have no equivalent in UI オートメーションUI Automation.

Active Accessibility の状態Active Accessibility state コメントRemarks
STATE_SYSTEM_BUSYSTATE_SYSTEM_BUSY UI オートメーションUI AutomationNot available in UI オートメーションUI Automation
STATE_SYSTEM_DEFAULTSTATE_SYSTEM_DEFAULT UI オートメーションUI AutomationNot available in UI オートメーションUI Automation
STATE_SYSTEM_ANIMATEDSTATE_SYSTEM_ANIMATED UI オートメーションUI AutomationNot available in UI オートメーションUI Automation
STATE_SYSTEM_EXTSELECTABLESTATE_SYSTEM_EXTSELECTABLE Active Accessibility サーバーで広く実装されていないNot widely implemented by Active Accessibility servers
STATE_SYSTEM_MARQUEEDSTATE_SYSTEM_MARQUEED Active Accessibility サーバーで広く実装されていないNot widely implemented by Active Accessibility servers
STATE_SYSTEM_SELFVOICINGSTATE_SYSTEM_SELFVOICING Active Accessibility サーバーで広く実装されていないNot widely implemented by Active Accessibility servers
STATE_SYSTEM_TRAVERSEDSTATE_SYSTEM_TRAVERSED UI オートメーションUI AutomationNot available in UI オートメーションUI Automation
STATE_SYSTEM_ALERT_HIGHSTATE_SYSTEM_ALERT_HIGH Active Accessibility サーバーで広く実装されていないNot widely implemented by Active Accessibility servers
STATE_SYSTEM_ALERT_MEDIUMSTATE_SYSTEM_ALERT_MEDIUM Active Accessibility サーバーで広く実装されていないNot widely implemented by Active Accessibility servers
STATE_SYSTEM_ALERT_LOWSTATE_SYSTEM_ALERT_LOW Active Accessibility サーバーで広く実装されていないNot widely implemented by Active Accessibility servers
STATE_SYSTEM_FLOATINGSTATE_SYSTEM_FLOATING Active Accessibility サーバーで広く実装されていないNot widely implemented by Active Accessibility servers
STATE_SYSTEM_HOTTRACKEDSTATE_SYSTEM_HOTTRACKED UI オートメーションUI AutomationNot available in UI オートメーションUI Automation
STATE_SYSTEM_PRESSEDSTATE_SYSTEM_PRESSED UI オートメーションUI AutomationNot available in UI オートメーションUI Automation

UI オートメーションUI Automation プロパティ識別子の完全な一覧については、「 UI オートメーションプロパティの概要」を参照してください。For a complete list of UI オートメーションUI Automation property identifiers, see UI Automation Properties Overview.

イベントEvents

UI オートメーションUI Automationのイベントメカニズムは、Active Accessibility とは異なり、Windows イベントルーティング (ウィンドウハンドルと密接に関連付けられています) に依存せず、クライアントアプリケーションでフックを設定する必要はありません。The event mechanism in UI オートメーションUI Automation, unlike that in Active Accessibility, does not rely on Windows event routing (which is closely tied in with window handles) and does not require the client application to set up hooks. イベントのサブスクリプションは、特定のイベントに対してだけでなく、ツリーの特定の部分を対象とするように細かく調整できます。Subscriptions to events can be fine-tuned not just to particular events but to particular parts of the tree. プロバイダーも、リッスンされているイベントを追跡して、イベントの生成を細かく調整できます。Providers can also fine-tune their raising of events by keeping track of what events are being listened for.

イベントを生成した要素をクライアントで取得することも簡単です。このような要素は、イベント コールバックに直接渡されるからです。It is also easier for clients to retrieve the elements that raise events, as these are passed directly to the event callback. クライアントがイベントをサブスクライブしているときにキャッシュ要求がアクティブであった場合は、自動的に要素のプロパティがプリフェッチされます。Properties of the element are automatically prefetched if a cache request was active when the client subscribed to the event.

次の表は、Active Accessibility WinEvents と UI オートメーションUI Automation イベントの対応を示しています。The following table shows the correspondence of Active Accessibility WinEvents and UI オートメーションUI Automation events.

WinEventWinEvent UI オートメーションUI Automation のイベント識別子event identifier
EVENT_OBJECT_ACCELERATORCHANGEEVENT_OBJECT_ACCELERATORCHANGE AcceleratorKeyProperty プロパティの変更AcceleratorKeyProperty property change
EVENT_OBJECT_CONTENTSCROLLEDEVENT_OBJECT_CONTENTSCROLLED 関連付けられたスクロール バーにおけるVerticalScrollPercentProperty または HorizontalScrollPercentProperty プロパティの変更VerticalScrollPercentProperty or HorizontalScrollPercentProperty property change on the associated scroll bars
EVENT_OBJECT_CREATEEVENT_OBJECT_CREATE StructureChangedEvent
EVENT_OBJECT_DEFACTIONCHANGEEVENT_OBJECT_DEFACTIONCHANGE 同等の機能がありませんNo equivalent
EVENT_OBJECT_DESCRIPTIONCHANGEEVENT_OBJECT_DESCRIPTIONCHANGE まったく同等の項目はありません (おそらく HelpTextProperty または LocalizedControlTypeProperty プロパティの変更)No exact equivalent; perhaps HelpTextProperty or LocalizedControlTypeProperty property change
EVENT_OBJECT_DESTROYEVENT_OBJECT_DESTROY StructureChangedEvent
EVENT_OBJECT_FOCUSEVENT_OBJECT_FOCUS AutomationFocusChangedEvent
EVENT_OBJECT_HELPCHANGEEVENT_OBJECT_HELPCHANGE HelpTextProperty の変更HelpTextProperty change
EVENT_OBJECT_HIDEEVENT_OBJECT_HIDE StructureChangedEvent
EVENT_OBJECT_LOCATIONCHANGEEVENT_OBJECT_LOCATIONCHANGE BoundingRectangleProperty プロパティの変更BoundingRectangleProperty property change
EVENT_OBJECT_NAMECHANGEEVENT_OBJECT_NAMECHANGE NameProperty プロパティの変更NameProperty property change
EVENT_OBJECT_PARENTCHANGEEVENT_OBJECT_PARENTCHANGE StructureChangedEvent
EVENT_OBJECT_REORDEREVENT_OBJECT_REORDER Active Accessibility では一貫して使用されません。Not consistently used in Active Accessibility. 直接対応するイベントが UI オートメーションUI Automationでは定義されていません。No directly corresponding event is defined in UI オートメーションUI Automation.
EVENT_OBJECT_SELECTIONEVENT_OBJECT_SELECTION ElementSelectedEvent
EVENT_OBJECT_SELECTIONADDEVENT_OBJECT_SELECTIONADD ElementAddedToSelectionEvent
EVENT_OBJECT_SELECTIONREMOVEEVENT_OBJECT_SELECTIONREMOVE ElementRemovedFromSelectionEvent
EVENT_OBJECT_SELECTIONWITHINEVENT_OBJECT_SELECTIONWITHIN 同等の機能がありませんNo equivalent
EVENT_OBJECT_SHOWEVENT_OBJECT_SHOW StructureChangedEvent
EVENT_OBJECT_STATECHANGEEVENT_OBJECT_STATECHANGE さまざまなプロパティ変更イベントVarious property-changed events
EVENT_OBJECT_VALUECHANGEEVENT_OBJECT_VALUECHANGE RangeValuePattern.ValueProperty および ValuePattern.ValueProperty の変更RangeValuePattern.ValueProperty and ValuePattern.ValueProperty changed
EVENT_SYSTEM_ALERTEVENT_SYSTEM_ALERT 同等の機能がありませんNo equivalent
EVENT_SYSTEM_CAPTUREENDEVENT_SYSTEM_CAPTUREEND 同等の機能がありませんNo equivalent
EVENT_SYSTEM_CAPTURESTARTEVENT_SYSTEM_CAPTURESTART 同等の機能がありませんNo equivalent
EVENT_SYSTEM_CONTEXTHELPENDEVENT_SYSTEM_CONTEXTHELPEND 同等の機能がありませんNo equivalent
EVENT_SYSTEM_CONTEXTHELPSTARTEVENT_SYSTEM_CONTEXTHELPSTART 同等の機能がありませんNo equivalent
EVENT_SYSTEM_DIALOGENDEVENT_SYSTEM_DIALOGEND WindowClosedEvent
EVENT_SYSTEM_DIALOGSTARTEVENT_SYSTEM_DIALOGSTART WindowOpenedEvent
EVENT_SYSTEM_DRAGDROPENDEVENT_SYSTEM_DRAGDROPEND 同等の機能がありませんNo equivalent
EVENT_SYSTEM_DRAGDROPSTARTEVENT_SYSTEM_DRAGDROPSTART 同等の機能がありませんNo equivalent
EVENT_SYSTEM_FOREGROUNDEVENT_SYSTEM_FOREGROUND AutomationFocusChangedEvent
EVENT_SYSTEM_MENUENDEVENT_SYSTEM_MENUEND MenuClosedEvent
EVENT_SYSTEM_MENUPOPUPENDEVENT_SYSTEM_MENUPOPUPEND MenuClosedEvent
EVENT_SYSTEM_MENUPOPUPSTARTEVENT_SYSTEM_MENUPOPUPSTART MenuOpenedEvent
EVENT_SYSTEM_MENUSTARTEVENT_SYSTEM_MENUSTART MenuOpenedEvent
EVENT_SYSTEM_MINIMIZEENDEVENT_SYSTEM_MINIMIZEEND WindowVisualStateProperty プロパティの変更WindowVisualStateProperty property change
EVENT_SYSTEM_MINIMIZESTARTEVENT_SYSTEM_MINIMIZESTART WindowVisualStateProperty プロパティの変更WindowVisualStateProperty property change
EVENT_SYSTEM_MOVESIZEENDEVENT_SYSTEM_MOVESIZEEND BoundingRectangleProperty プロパティの変更BoundingRectangleProperty property change
EVENT_SYSTEM_MOVESIZESTARTEVENT_SYSTEM_MOVESIZESTART BoundingRectangleProperty プロパティの変更BoundingRectangleProperty property change
EVENT_SYSTEM_SCROLLINGENDEVENT_SYSTEM_SCROLLINGEND VerticalScrollPercentProperty または HorizontalScrollPercentProperty プロパティの変更VerticalScrollPercentProperty or HorizontalScrollPercentProperty property change
EVENT_SYSTEM_SCROLLINGSTARTEVENT_SYSTEM_SCROLLINGSTART VerticalScrollPercentProperty または HorizontalScrollPercentProperty プロパティの変更VerticalScrollPercentProperty or HorizontalScrollPercentProperty property change
EVENT_SYSTEM_SOUNDEVENT_SYSTEM_SOUND 同等の機能がありませんNo equivalent
EVENT_SYSTEM_SWITCHENDEVENT_SYSTEM_SWITCHEND 同等の項目はありませんが、新しいアプリケーションがフォーカスを受け取ったことは AutomationFocusChangedEvent イベントによって通知されます。No equivalent, but an AutomationFocusChangedEvent event signals that a new application has received the focus
EVENT_SYSTEM_SWITCHSTARTEVENT_SYSTEM_SWITCHSTART 同等の機能がありませんNo equivalent
同等の機能がありませんNo equivalent CurrentViewProperty プロパティの変更CurrentViewProperty property change
同等の機能がありませんNo equivalent HorizontallyScrollableProperty プロパティの変更HorizontallyScrollableProperty property change
同等の機能がありませんNo equivalent VerticallyScrollableProperty プロパティの変更VerticallyScrollableProperty property change
同等の機能がありませんNo equivalent HorizontalScrollPercentProperty プロパティの変更HorizontalScrollPercentProperty property change
同等の機能がありませんNo equivalent VerticalScrollPercentProperty プロパティの変更VerticalScrollPercentProperty property change
同等の機能がありませんNo equivalent HorizontalViewSizeProperty プロパティの変更HorizontalViewSizeProperty property change
同等の機能がありませんNo equivalent VerticalViewSizeProperty プロパティの変更VerticalViewSizeProperty property change
同等の機能がありませんNo equivalent ToggleStateProperty プロパティの変更ToggleStateProperty property change
同等の機能がありませんNo equivalent WindowVisualStateProperty プロパティの変更WindowVisualStateProperty property change
同等の機能がありませんNo equivalent AsyncContentLoadedEvent イベントAsyncContentLoadedEvent event
同等の機能がありませんNo equivalent ToolTipOpenedEvent

セキュリティSecurity

IAccessible をカスタマイズするシナリオでは、基本 IAccessible をラップしてからこれに対する呼び出しを行うという要件が生じることがあります。Some IAccessible customization scenarios require wrapping a base IAccessible and calling through to it. このことは、セキュリティに影響を及ぼします。部分信頼コンポーネントにコード パスを中継させてはならないからです。This has security implications, since a partially trusted component should not be an intermediary on a code path.

UI オートメーションUI Automation モデルでは、プロバイダーが他のプロバイダー コードを呼び出す必要がありません。The UI オートメーションUI Automation model removes the need for providers to call through to other provider code. 必要な集約はすべて UI オートメーションUI Automation コア サービスが行います。The UI オートメーションUI Automation core service does all the necessary aggregation.

参照See also