Linee guida per l'implementazione IAccessEx
Il core di Microsoft Automazione interfaccia utente può recuperare tutte le proprietà di Accessibilità attiva Microsoft per qualsiasi oggetto accessibile esposto da un server tramite l'interfaccia IAccessibile. Quando si implementa IAccessEx, è necessario esporre solo gli aspetti della funzionalità dell'interfaccia utente che non possono altrimenti essere esposti tramite le proprietà di Accessibilità Attiva Microsoft esistenti. In questo argomento vengono identificate le proprietà e i modelli di controllo Automazione interfaccia utente che rappresentano la funzionalità dell'interfaccia utente che non ha alcuna controparte in Microsoft Active Accessibility, ovvero le proprietà e i modelli di controllo che è possibile esporre in un'implementazione IAccessEx.
In questo argomento sono incluse le sezioni seguenti:
- Proprietà
- Modelli di controllo
- WinEvents per gli eventi modificati della proprietà Automazione interfaccia utente
- Argomenti correlati
Proprietà
Le proprietà di Automazione interfaccia utente seguenti non si sovrappongono con la funzionalità Accessibilità attiva Microsoft. Possono essere usati in un'implementazione IAccessEx :
- AriaProperties
- AriaRole
- AutomationId
- ClassName
- ClickablePoint
- ControllerFor
- Impostazioni cultura
- DescrittoBy
- FlowTo
- FrameworkId
- IsContentElement
- IsControlElement
- IsDataValidForForm
- IsRequiredForForm
- ItemStatus
- ItemType
- LabeledBy
- LocalizedControlType
- Orientamento
Anche se le proprietà acceleratorKey e AccessKey Automazione interfaccia utente si sovrappongono con la proprietà accKeyboardShortcut Microsoft Active Accessibility, è comunque possibile usarle in un'implementazione IAccessEx per i controlli con una chiave di accesso e un acceleratore. Analogamente, la proprietà ControlType Automazione interfaccia utente si sovrappone alla proprietà AccRole dell'accessibilità Microsoft Active, ma è comunque possibile usarla in un'implementazione IAccessEx per definire un ruolo più specifico per un controllo.
Poiché le proprietà dell'elemento Automazione interfaccia utente seguenti sono già coperte dalle proprietà di Accessibilità attiva Microsoft, non è necessario usarle in un'implementazione IAccessEx.
Proprietà di automazione interfaccia utente | Equivalente all'accessibilità attiva Microsoft |
---|---|
BoundingRectangle | accLocation |
HasKeyboardFocus | accState, STATE_SYSTEM_FOCUSED |
IsEnabled | accState, STATE_SYSTEM_UNAVAILABLE |
IsKeyboardFocusable | accState, STATE_SYSTEM_FOCUSABLE |
IsPassword | accState, STATE_SYSTEM_PROTECTED |
HelpText | accHelp |
Nome | accName |
NativeWindowHandle | WindowFromAccessObject |
IsOffscreen | accState, STATE_SYSTEM_INVISIBLE STATE_SYSTEM_OFFSCREEN/ |
ProcessId | Fornito da Automazione interfaccia utente core |
Per qualsiasi proprietà Automazione interfaccia utente non supportata, l'implementazione del metodo IRawElementProviderSimple::GetPropertyValue deve impostare il parametro pRetVal su VT_EMPTY e restituire S_OK. La restituzione di UIA_E_NOTSUPPORTED può causare la rimozione del mapping predefinito per la proprietà corrispondente da MSAA A-UIA Proxy.
Modelli di controllo
I modelli di controllo di Automazione interfaccia utente seguenti non si sovrappongono con la funzionalità Di accessibilità attiva Microsoft. Possono essere usati in un'implementazione IAccessEx :
- Ancora
- ExpandCollapse
- Griglia
- GridItem
- MultipleView
- RangeValue
- Scroll
- ScrollItem
- SynchronizedInput
- Tabella
- TableItem
- Trasformazione
Per i modelli di controllo RangeValue e Transform, alcuni metodi si sovrappongono tra il modello di controllo Automazione interfaccia utente e i metodi di accessibilità Microsoft Active. In questi casi, entrambi devono essere implementati. Ad esempio, entrambi i metodi IAccessi di Microsoft Active Accessibility::get_accValue e IAccess::p ut_accValue devono essere implementati, come devono essere implementati i metodi Automazione interfaccia utente IRangeValueProvider::Value e IRangeValueProvider::SetValue. Internamente, un'implementazione può condividere codice per questi elementi. Questo requisito per implementare entrambi i set evita di avere un'implementazione parziale di un'interfaccia pattern mantenendo l'interfaccia IAccessibile utilizzabile dai client Microsoft Active Accessibility esistenti.
I modelli di controllo seguenti Automazione interfaccia utente non sono necessari quando il controllo ha uno dei ruoli descritti di seguito. In caso contrario, devono essere supportati in modo esplicito se pertinente.
modello di controllo Automazione interfaccia utente | Ruolo di accessibilità attiva Microsoft |
---|---|
InvokePattern | ROLE_SYSTEM_PUSHBUTTON, ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_BUTTONDROPDOWN, ROLE_SYSTEM_SPLITBUTTON e qualsiasi altro ruolo in cui il valore della proprietà accDefaultAction non è NULL. |
Selectionitempattern | ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_RADIOBUTTON |
Selectionpattern | ROLE_SYSTEM_LIST |
Togglepattern | ROLE_SYSTEM_CHECKBUTTON |
Valuepattern | ROLE_SYSTEM_TEXT (quando non è di sola lettura), ROLE_SYSTEM_PROGRESSBAR, ROLE_SYSTEM_COMBOBOX e qualsiasi altro ruolo quando il valore della proprietà accValue non è NULL. |
Windowpattern | Supportato automaticamente in Microsoft Win32 HWNDs di primo livello. |
WinEvents per gli eventi modificati della proprietà Automazione interfaccia utente
Oltre agli eventi definiti per IAccess, vengono definiti anche gli identificatori di evento seguenti e possono essere usati con un'implementazione IAccessEx come eventi modificati delle proprietà per le proprietà Automazione interfaccia utente corrispondenti. Questi usano lo stesso meccanismo degli eventi definiti per IAccessibile. Per altre informazioni, vedere WinEvents.
Per gli eventi precedenti con un valore EVENT_OBJECT_ elencato dopo di esse e l'implementazione IAccessibleEx deve generare questo evento oltre all'evento modificato elencato. In questo modo, il codice client IAccessibleEx esistente può continuare a funzionare, trasmettendo al contempo informazioni sugli eventi più granulari ai client interessati.
Argomenti correlati