Sdílet prostřednictvím


Pokyny k implementaci IAccessibleEx

Jádro Automatizace uživatelského rozhraní Microsoftu může načíst všechny vlastnosti přístupnosti microsoftu Active pro všechny přístupné objekty vystavené serverem prostřednictvím rozhraní IAccessible. Při implementaci IAccessibleExmusíte zveřejnit pouze ty aspekty funkcí uživatelského rozhraní, které nelze jinak zpřístupnit prostřednictvím existujících vlastností microsoft Active Accessibility. Toto téma identifikuje vlastnosti automatizace uživatelského rozhraní a vzory ovládacích prvků, které představují funkce uživatelského rozhraní, které nemají žádný protějšek v microsoft Active Accessibility – jedná se o vlastnosti a vzory ovládacích prvků, které můžete zveřejnit v implementaci IAccessibleEx.

Toto téma obsahuje následující části:

Vlastnosti

Následující vlastnosti automatizace uživatelského rozhraní se nepřekrývají s funkcemi microsoft Active Accessibility. Lze je použít v implementaci IAccessibleEx:

  • AriaProperties
  • AriaRole
  • AutomationId
  • ClassName
  • ClickablePoint
  • ControllerFor
  • Kultura
  • Popsáno
  • Toky
  • FrameworkId
  • IsContentElement
  • IsControlElement
  • IsDataValidForForm
  • IsRequiredForForm
  • ItemStatus
  • ItemType
  • LabeledBy
  • LocalizedControlType
  • Orientace

I když se vlastnosti Automation uživatelského rozhraní AcceleratorKey a AccessKey překrývají s vlastností accKeyboardShortcut Microsoft Active Accessibility, můžete je stále používat v IAccessibleEx implementaci pro ovládací prvky, které mají přístupový klíč i akcelerátor. Podobně se vlastnost ControlType UI Automation překrývá s vlastností AccRole microsoft Active Accessibility, ale můžete ji přesto použít v implementaci IAccessibleEx definovat konkrétnější roli ovládacího prvku.

Vzhledem k tomu, že následující vlastnosti elementu automatizace uživatelského rozhraní jsou již pokryty vlastnostmi microsoft Active Accessibility, není nutné je používat v implementaci IAccessibleEx.

Vlastnost automatizace uživatelského rozhraní Ekvivalent přístupnosti Microsoft Active Accessibility
OhraničujícíRectangle accLocation
HasKeyboardFocus accState, STATE_SYSTEM_FOCUSED
IsEnabled accState, STATE_SYSTEM_UNAVAILABLE
IsKeyboardFocusable accState, STATE_SYSTEM_FOCUSABLE
IsPassword accState, STATE_SYSTEM_PROTECTED
Text nápovědy accHelp
Jméno accName
NativeWindowHandle WindowFromAccessibleObject
Obrazovka IsOffscreen accState, STATE_SYSTEM_INVISIBLE/STATE_SYSTEM_OFFSCREEN
Id procesu Poskytuje jádro automatizace uživatelského rozhraní.

 

U jakékoli nepodporované vlastnosti automatizace uživatelského rozhraní by vaše implementace IRawElementProviderSimple::GetPropertyValue metoda by měla nastavit pRetVal parametr na VT_EMPTY a vrátit S_OK. Vrácení UIA_E_NOTSUPPORTED může způsobit, že proxy serveru MSAA-to-UIA odebere výchozí mapování odpovídající vlastnosti.

Vzory ovládacích prvků

Následující vzory ovládacích prvků automatizace uživatelského rozhraní se nepřekrývají s funkcemi microsoft Active Accessibility. Lze je použít v implementaci IAccessibleEx:

  • Dok
  • ExpandCollapse
  • Mřížka
  • GridItem
  • MultipleView
  • RangeValue
  • Svitek
  • ScrollItem
  • SynchronizedInput
  • Stůl
  • TableItem
  • Transformovat

U vzorů ovládacích prvků RangeValue a Transform se některé metody překrývají mezi vzorem ovládacích prvků automatizace uživatelského rozhraní a metodami Microsoft Active Accessibility. V těchto případech musí být oba implementovány. Například obě metody Microsoft Active Accessibility IAccessible::get_accValue a IAccessible::p ut_accValue metody musí být implementovány, stejně jako automatizace uživatelského rozhraníIRangeValueProvider::Value a IRangeValueProvider::SetValue metody. Implementace pro tyto účely může interně sdílet kód. Tento požadavek na implementaci obou sad zabraňuje částečné implementaci vzorového rozhraní a současně udržuje IAccessible rozhraní použitelné stávajícími klienty Microsoft Active Accessibility.

Následující vzory ovládacích prvků automatizace uživatelského rozhraní nejsou vyžadovány, pokud má ovládací prvek jednu z níže uvedených rolí; jinak by měly být explicitně podporovány, pokud jsou relevantní.

Vzor ovládacího prvku automatizace uživatelského rozhraní Microsoft Active Accessibility Role
InvokePattern ROLE_SYSTEM_PUSHBUTTON, ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_BUTTONDROPDOWN, ROLE_SYSTEM_SPLITBUTTONa jakoukoli jinou roli, kde hodnota accDefaultAction vlastnost není NULL.
SelectionItemPattern ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_RADIOBUTTON
SelectionPattern ROLE_SYSTEM_LIST
Přepnoutpattern ROLE_SYSTEM_CHECKBUTTON
ValuePattern ROLE_SYSTEM_TEXT (pokud není jen pro čtení), ROLE_SYSTEM_PROGRESSBAR, ROLE_SYSTEM_COMBOBOXa jakoukoli jinou roli, pokud hodnota vlastnosti accValue není NULL.
WindowPattern Automaticky podporováno na nejvyšší úrovni Microsoft Win32 HWNDs.

 

Události Změny vlastností automatizace uživatelského rozhraní pro WinEvents

Kromě událostí definovaných pro IAccessiblejsou definovány také následující identifikátory událostí a mohou být použity s IAccessibleEx implementace jako události změny vlastností pro odpovídající vlastnosti automatizace uživatelského rozhraní. Používají stejný mechanismus jako události definované pro IAccessible. Další informace naleznete v tématu WinEvents.

ID WinEvent pro implementace IAccessibleEx Související ID WinEventu z Microsoft Active Accessibility
UIA_AriaPropertiesPropertyId Žádný
UIA_AriaRolePropertyId Žádný
UIA_ControllerForPropertyId Žádný
UIA_DescribedByPropertyId Žádný
UIA_ExpandCollapseExpandCollapseStatePropertyId EVENT_OBJECT_STATECHANGE
UIA_FlowsToPropertyId Žádný
UIA_InputDiscardedEventId Žádný
UIA_InputReachedOtherElementEventId Žádný
UIA_InputReachedTargetEventId Žádný
UIA_IsDataValidForFormPropertyId Žádný
UIA_IsEnabledPropertyId EVENT_OBJECT_STATECHANGE
UIA_ItemStatusPropertyId Žádný
UIA_MultipleViewCurrentViewPropertyId Žádný
UIA_ScrollHorizontallyScrollablePropertyId Žádný
UIA_ScrollHorizontalScrollPercentPropertyId EVENT_OBJECT_CONTENTSCROLLED
UIA_ScrollHorizontalViewSizePropertyId Žádný
UIA_ScrollVerticallyScrollablePropertyId Žádný
UIA_ScrollVerticalScrollPercentPropertyId EVENT_OBJECT_CONTENTSCROLLED
UIA_ScrollVerticalViewSizePropertyId Žádný
UIA_ToggleToggleStatePropertyId EVENT_OBJECT_STATECHANGE

 

U událostí výše, které mají EVENT_OBJECT_ hodnotu uvedenou za nimi, a IAccessibleEx implementace by měla tuto událost aktivovat kromě uvedené změněné události. To umožňuje, aby stávající IAccessibleEx klientský kód pokračoval v práci a předával zákazníkům podrobnější informace o událostech.

WinEvents

rozhraní IAccessibleEx