Condividi tramite


Progettare proprietà, eventi e pattern di controllo personalizzati

La progettazione di una proprietà personalizzata, di un evento o di un pattern di controllo deve essere utile in un'ampia gamma di implementazioni dei controlli. È consigliabile evitare progettazioni specifiche del controllo o dell'applicazione utili solo in scenari limitati. La progettazione deve seguire l'esempio delle proprietà, degli eventi e dei pattern di controllo esistenti di Automazione interfaccia utente Microsoft, che sono stati specificati con attenzione per soddisfare le esigenze di un'ampia gamma di applicazioni di test automatizzate e accessibilità.

L'implementazione della specifica per una proprietà personalizzata, un evento o un modello di controllo implica la cooperazione e l'accordo delle parti sia sul lato client che sul lato provider e richiede che entrambe le parti implementino in modo coerente la specifica. Le aziende sono incoraggiate a collaborare con organizzazioni di settore come accessibility Interoperability Alliance (AIA) progettare e pubblicare la specifica per la proprietà personalizzata, l'evento o il pattern di controllo. In questo modo, è possibile raggiungere il consenso e garantire l'interoperabilità con la più ampia varietà di applicazioni.

Questo argomento contiene le sezioni seguenti:

Quando usare proprietà ed eventi personalizzati

Prima di creare una proprietà personalizzata, un evento o un pattern di controllo, assicurarsi che Automazione interfaccia utente non fornisca una soluzione esistente. Ad esempio, la creazione di un pattern di controllo personalizzato "Click" non è necessaria perché il pattern di controllo Invoke descrive già tale funzionalità.

Se si decide che è necessaria una proprietà personalizzata, un evento o un pattern di controllo, assicurarsi che non sia troppo vaga o generica. Ad esempio, un pattern di controllo denominato "Show" non è utile perché la visibilità di un controllo può essere indicata da una proprietà di disponibilità sull'elemento, ad esempio UIA_IsExpandCollapsePatternAvailablePropertyId o UIA_IsScrollItemPatternAvailablePropertyId.

Prima di implementare una soluzione personalizzata, verificare attentamente che sia necessaria e quindi progettare completamente la funzionalità.

Progettazione di proprietà personalizzate

Automazione interfaccia utente include due tipi di base di proprietà: proprietà degli elementi di automazione e proprietà del pattern di controllo. Le proprietà degli elementi di automazione sono costituite da un set comune di proprietà, ad esempio Name, AcceleratorKey e ClassName, esposte da tutti gli elementi di automazione interfaccia utente, indipendentemente dal tipo di controllo. Le proprietà del pattern di controllo vengono esposte da un controllo tramite un pattern di controllo specifico. Ogni pattern di controllo ha un set corrispondente di proprietà del pattern di controllo che il controllo deve esporre. Ad esempio, un controllo che supporta il Grid pattern di controllo espone le proprietà ColumnCount e RowCount.

Una proprietà personalizzata degli elementi di automazione o del pattern di controllo deve rispettare le linee guida di progettazione seguenti:

  • Una proprietà personalizzata deve avere uno dei tipi di dati seguenti specificati dall'enumerazioneUIAutomationType. Nessun altro tipo di dati è supportato per le proprietà personalizzate.
    • UIAutomationType_Bool
    • UIAutomationType_Double
    • UIAutomationType_Element
    • UIAutomationType_Int
    • UIAutomationType_Point
    • UIAutomationType_String
  • Se la proprietà personalizzata contiene dati stringa (BSTR), la specifica deve indicare se la proprietà è localizzabile, ovvero se la stringa può essere tradotta in lingue diverse dell'interfaccia utente.
  • La proprietà personalizzata non deve sovrapporsi alle funzionalità o alle funzionalità delle proprietà esistenti.

Progettazione di eventi personalizzati

Le applicazioni usano le notifiche degli eventi di automazione interfaccia utente per rispondere alle modifiche e alle azioni che coinvolgono gli elementi dell'interfaccia utente. La maggior parte delle proprietà ha associato eventi di modifica delle proprietà generati da Automazione interfaccia utente quando cambia il valore della proprietà. Se si introduce una proprietà personalizzata, è consigliabile introdurre eventuali eventi personalizzati corrispondenti che potrebbero essere necessari.

Un evento personalizzato deve rispettare le linee guida di progettazione seguenti:

  • L'evento personalizzato deve essere "senza stato". Non può essere associato a una proprietà o a un valore specifico.
  • L'evento personalizzato non deve sovrapporsi alla definizione o al ruolo di un evento esistente.

Eventi di automazione interfaccia utente personalizzati e Eventi WinEvent

WinEvents sono un meccanismo utile per la comunicazione e l'evento tra processi nella piattaforma Microsoft Windows. Tuttavia, l'introduzione di un nuovo ID WinEvent è rischiosa perché può causare conflitti con altre applicazioni o il sistema operativo, causando un'instabilità del sistema. Per evitare conflitti, Microsoft ha definito diverse categorie di Eventi WinEvent e, per ogni categoria, ha definito uno o più intervalli di valori da usare come ID WinEvent. Per altre informazioni, vedere Allocazione di ID WinEvent .

Gli eventi di automazione interfaccia utente personalizzati evitano conflitti allocando internamente l'ID evento nel framework di automazione interfaccia utente.

Progettazione di modelli di controllo personalizzati

Un pattern di controllo è un'interfaccia con proprietà, metodi ed eventi che definiscono una parte discreta di funzionalità disponibile da un elemento di automazione. I metodi del pattern di controllo consentono ai client di automazione interfaccia utente di modificare un particolare aspetto del controllo. Le proprietà e gli eventi del pattern di controllo forniscono informazioni su alcuni aspetti del controllo e forniscono informazioni sullo stato dell'elemento di automazione che implementa il pattern di controllo.

Un pattern di controllo personalizzato deve rispettare le linee guida di progettazione seguenti:

  • Un pattern di controllo personalizzato deve coprire uno scenario specifico. Ad esempio, il ItemContainer pattern di controllo è destinato all'esecuzione di query su un oggetto contenuto indipendentemente dallo stato di virtualizzazione, ma non enumera o conta gli oggetti contenuti.
  • Un pattern di controllo personalizzato non deve sovrapporsi alle caratteristiche dei pattern di controllo esistenti. Ad esempio, il Invoke e ExpandCollapse i pattern di controllo non devono essere combinati e presentati come un nuovo pattern di controllo. Riutilizzare i pattern di controllo esistenti o definire scenari univoci con nuovi pattern di controllo.
  • È possibile progettare più schemi di controllo personalizzati per supportare scenari complessi. Ad esempio, Selection e SelectionItem modelli di controllo interagiscono per supportare scenari generali di selezione degli oggetti.

Tipi di controllo personalizzati

Anche se questo argomento è incentrato su come registrare proprietà, eventi e pattern di controllo personalizzati di automazione interfaccia utente, è anche possibile introdurre nuovi tipi di controllo. A differenza delle proprietà personalizzate, degli eventi e dei pattern di controllo, un tipo di controllo personalizzato non può essere registrato a livello di codice in fase di esecuzione perché è in realtà solo un valore potenziale della proprietà ControlType di automazione interfaccia utente. Tuttavia, è possibile definire, pubblicare e rendere disponibile un ID tipo di controllo personalizzato per altri client e provider da usare. Per altre informazioni sui tipi di controllo, vedere Panoramica dei tipi di controllo di automazione interfaccia utente.

concettuale

registrazione di proprietà, eventi e pattern di controllo personalizzati

panoramica delle proprietà di automazione interfaccia utente

panoramica degli eventi di automazione interfaccia utente

Panoramica modelli di controllo di automazione interfaccia utente