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
- vzory ovládacích prvků
- WinEvents pro události změny vlastností automatizace uživatelského rozhraní
- související témata
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.
Související témata