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. WPF 要素には Active Accessibility のネイティブサポートが含まれていません。ただし、サポートさ UI オートメーションUI Automation れています。これには Active Accessibility クライアントのブリッジングサポートが含まれます。WPF 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 が、テキストの豊富なサポートなど、WPF のユーザー補助機能を最大限に活用できます。Only clients written specifically for UI オートメーションUI Automation can take full advantage of the accessibility features of WPF, 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 UIUI は、要素を IAccessible
インターフェイスまたは子識別子として提示します。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. FindFirst と FindAllを使用して、特定の子または子孫に移動することもできます。たとえば、指定したコントロール パターンがサポートされるダイアログ ボックス内のすべての要素を非常に簡単に取得できます。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
) を使用して、ROLE_SYSTEM_SLIDER や ROLE_SYSTEM_MENUITEM など、内の要素のロールの説明を取得し UIUI ます。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::accSelect
や IAccessible::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 | CalendarCalendar |
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 | ImageImage |
ROLE_SYSTEM_LISTROLE_SYSTEM_LIST | ListList |
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 | テーブルTable |
ROLE_SYSTEM_STATICTEXTROLE_SYSTEM_STATICTEXT | テキストText |
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 |
次の表は、 UI オートメーションUI Automation Active Accessibility 状態定数に対応するプロパティを示しています。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 |
YY |
STATE_SYSTEM_COLLAPSEDSTATE_SYSTEM_COLLAPSED | ExpandCollapseState = Collapsed | YY |
STATE_SYSTEM_EXPANDEDSTATE_SYSTEM_EXPANDED | ExpandCollapseState = Expanded または PartiallyExpandedExpandCollapseState = Expanded or PartiallyExpanded | YY |
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 | YY |
次の状態は、ほとんどの 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.
eventsEvents
のイベントメカニズムは、Active Accessibility とは UI オートメーションUI Automation 異なり、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 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.