次の方法で共有


IAccessibleEx 実装ガイドライン

Microsoft UI オートメーション コアは、IAccessible インターフェイスを介して、サーバーによって公開されるアクセシビリティ対応オブジェクトのすべての Microsoft Active Accessibility プロパティを取得できます。 IAccessibleEx実装する場合は、既存の Microsoft Active Accessibility プロパティを介して公開できない UI 機能の側面のみを公開する必要があります。 このトピックでは、Microsoft Active Accessibility に対応しない UI 機能を表す UI オートメーションのプロパティとコントロール パターンを示します。これらは、IAccessibleEx 実装で公開できるプロパティとコントロール パターンです。

このトピックには、次のセクションが含まれています。

プロパティ

次の UI オートメーション プロパティは、Microsoft Active Accessibility 機能と重複しません。 これらは、IAccessibleEx 実装で使用できます。

  • AriaProperties
  • AriaRole
  • AutomationId
  • ClassName
  • ClickablePoint
  • ControllerFor
  • 文化
  • DescribedBy
  • FlowsTo
  • FrameworkId
  • IsContentElement
  • IsControlElement
  • IsDataValidForForm
  • IsRequiredForForm
  • ItemStatus
  • ItemType
  • LabeledBy
  • LocalizedControlType
  • オリエンテーション

AcceleratorKey プロパティと AccessKey UI オートメーション プロパティは accKeyboardShortcut Microsoft Active Accessibility プロパティと重複しますが、アクセス キーとアクセラレータの両方を持つコントロールに対して、IAccessibleEx 実装で引き続き使用できます。 同様に、ControlType UI オートメーション プロパティは Microsoft Active Accessibility accRole プロパティと重複しますが、IAccessibleEx 実装で使用して、コントロールのより具体的なロールを定義することもできます。

次の UI オートメーション要素プロパティは既に Microsoft Active Accessibility プロパティでカバーされているため、IAccessibleEx 実装で使用する必要はありません。

UI オートメーション プロパティ Microsoft Active Accessibility Equivalent
BoundingRectangle accLocation
HasKeyboardFocus accState、STATE_SYSTEM_FOCUSED
IsEnabled accState、STATE_SYSTEM_UNAVAILABLE
IsKeyboardFocusable accState、STATE_SYSTEM_FOCUSABLE
IsPassword accState、STATE_SYSTEM_PROTECTED
HelpText accHelp
名前 accName
NativeWindowHandle WindowFromAccessibleObject
IsOffscreen accState、STATE_SYSTEM_INVISIBLE/STATE_SYSTEM_OFFSCREEN
ProcessId UI オートメーション コアによって提供される

 

サポートされていない UI オートメーション プロパティの場合、IRawElementProviderSimple::GetPropertyValue メソッドの実装では、pRetVal パラメーターをVT_EMPTYに設定し、S_OKを返す必要があります。 UIA_E_NOTSUPPORTED を返すと、MSAA から UIA へのプロキシによって、対応するプロパティの既定のマッピングが削除される可能性があります。

コントロール パターン

次の UI オートメーション コントロール パターンは、Microsoft Active Accessibility 機能と重複しません。 これらは、IAccessibleEx 実装で使用できます。

  • ドック
  • ExpandCollapse
  • グリッド
  • GridItem
  • MultipleView
  • RangeValue
  • スクロール
  • ScrollItem
  • SynchronizedInput
  • テーブル
  • TableItem
  • 変形する

RangeValue コントロール パターンと Transform コントロール パターンの場合、一部のメソッドは UI オートメーション コントロール パターンと Microsoft Active Accessibility メソッドの間で重複しています。 このような場合は、両方を実装する必要があります。 たとえば、Microsoft Active Accessibility の IAccessible::get_accValue メソッドと IAccessible::p ut_accValue メソッドの両方を実装する必要があります。これは、UI オートメーションIRangeValueProvider::Value メソッドと IRangeValueProvider::SetValueメソッド必要があります。 内部的には、実装でこれらのコードを共有できます。 両方のセットを実装するこの要件により、既存の Microsoft Active Accessibility クライアントで使用できる IAccessible インターフェイスを維持しながら、パターン インターフェイスの部分的な実装を回避できます。

次の UI オートメーション コントロール パターンは、コントロールに次に示すロールのいずれかが含まれている場合は必要ありません。それ以外の場合は、関連する場合は明示的にサポートする必要があります。

UI オートメーション コントロール パターン Microsoft Active Accessibility Role
InvokePattern ROLE_SYSTEM_PUSHBUTTONROLE_SYSTEM_MENUITEMROLE_SYSTEM_BUTTONDROPDOWNROLE_SYSTEM_SPLITBUTTON、および accDefaultAction プロパティの値が NULL しないその他のロール。
SelectionItemPattern ROLE_SYSTEM_LISTITEMROLE_SYSTEM_RADIOBUTTON
SelectionPattern ROLE_SYSTEM_LIST
TogglePattern ROLE_SYSTEM_CHECKBUTTON
ValuePattern ROLE_SYSTEM_TEXT (読み取り専用でない場合)、accValue プロパティの値が NULL でない場合は、ROLE_SYSTEM_PROGRESSBARROLE_SYSTEM_COMBOBOX、およびその他のロール
WindowPattern 最上位の Microsoft Win32 HWNDで自動的にサポートされます。

 

UI オートメーション プロパティ変更イベントの WinEvents

IAccessibleに対して定義されたイベントに加えて、次のイベント識別子も定義され、対応する UI オートメーション プロパティのプロパティ変更イベントとして、IAccessibleEx 実装で使用できます。 これらは、IAccessibleに定義されているイベントと同じメカニズムを使用します。 詳細については、「WinEvents」を参照してください。

IAccessibleEx 実装の WinEvent ID Microsoft Active Accessibility の関連 WinEvent ID
UIA_AriaPropertiesPropertyId 何一つ
UIA_AriaRolePropertyId 何一つ
UIA_ControllerForPropertyId 何一つ
UIA_DescribedByPropertyId 何一つ
UIA_ExpandCollapseExpandCollapseStatePropertyId EVENT_OBJECT_STATECHANGE
UIA_FlowsToPropertyId 何一つ
UIA_InputDiscardedEventId 何一つ
UIA_InputReachedOtherElementEventId 何一つ
UIA_InputReachedTargetEventId 何一つ
UIA_IsDataValidForFormPropertyId 何一つ
UIA_IsEnabledPropertyId EVENT_OBJECT_STATECHANGE
UIA_ItemStatusPropertyId 何一つ
UIA_MultipleViewCurrentViewPropertyId 何一つ
UIA_ScrollHorizontallyScrollablePropertyId 何一つ
UIA_ScrollHorizontalScrollPercentPropertyId EVENT_OBJECT_CONTENTSCROLLED
UIA_ScrollHorizontalViewSizePropertyId 何一つ
UIA_ScrollVerticallyScrollablePropertyId 何一つ
UIA_ScrollVerticalScrollPercentPropertyId EVENT_OBJECT_CONTENTSCROLLED
UIA_ScrollVerticalViewSizePropertyId 何一つ
UIA_ToggleToggleStatePropertyId EVENT_OBJECT_STATECHANGE

 

上記のイベントの後にEVENT_OBJECT_値が一覧表示され、IAccessibleEx実装は、一覧に示されている変更されたイベントに加えて、このイベントを発生させる必要があります。 これにより、既存の IAccessibleEx クライアント コードを引き続き動作させ、関心のあるクライアントにより細かいイベント情報を伝えます。

WinEvents

IAccessibleEx インターフェイス する