Condividi tramite


Panoramica di TextPattern per l'Automazione dell'Interfaccia Utente

Annotazioni

Questa documentazione è destinata agli sviluppatori .NET Framework che vogliono usare le classi di automazione interfaccia utente gestite definite nello spazio dei nomi System.Windows.Automation. Per le informazioni più recenti sull'automazione interfaccia utente, vedere API di automazione di Windows: Automazione interfaccia utente.

Questa panoramica descrive come usare Automazione interfaccia utente Microsoft per esporre il contenuto testuale, inclusi gli attributi di formato e stile, dei controlli di testo nelle piattaforme supportate dall'automazione interfaccia utente. Questi controlli includono, ma non solo, Microsoft .NET Framework TextBox e RichTextBox i relativi equivalenti Win32.

L'esposizione del contenuto testuale di un controllo viene eseguita tramite l'uso del pattern di TextPattern controllo, che rappresenta il contenuto di un contenitore di testo come flusso di testo. A sua volta, TextPattern richiede il supporto della TextPatternRange classe per esporre attributi di formato e stile. TextPatternRange supporta TextPattern rappresentando intervalli di testo contigui o multipli, disgiunti, all'interno di un contenitore di testo con una raccolta di endpoint Start e End. TextPatternRange supporta funzionalità quali selezione, confronto, recupero e attraversamento.

Annotazioni

Le TextPattern classi non forniscono un mezzo per inserire o modificare il testo. Tuttavia, a seconda del controllo, questa operazione può essere eseguita dall'automazione ValuePattern interfaccia utente o tramite input diretto da tastiera. Per un esempio, vedere Esempio di Inserimento Testo di TextPattern.

La funzionalità descritta in questa panoramica è fondamentale per i fornitori di assistive technology e i relativi utenti finali. Le tecnologie assistive possono usare l'Automazione interfaccia utente per raccogliere informazioni complete sulla formattazione del testo per l'utente e fornire la navigazione programmatica e la selezione di testo in base a TextUnit (carattere, parola, riga o paragrafo).

TextPattern di Automazione interfaccia utente e Text Services Framework

Text Services Framework (TSF) è un framework di sistema semplice e scalabile che consente servizi di linguaggio naturale e input di testo avanzato sul desktop e all'interno delle applicazioni. Oltre a fornire interfacce per le applicazioni per esporre il proprio archivio di testo, supporta anche i metadati per tale archivio di testo.

Tuttavia, TSF è stato progettato per le applicazioni che devono inserire input in scenari con riconoscimento del contesto, mentre TextPattern è una soluzione di sola lettura (con la soluzione limitata indicata in precedenza) progettata per fornire l'accesso ottimizzato a un archivio di testo per le utilità per la lettura dello schermo e i dispositivi Braille.

In breve, le tecnologie accessibili che richiedono l'accesso in sola lettura a un archivio di testo possono usare TextPattern, ma richiederanno la funzionalità più complessa di TSF per l'input compatibile con il contesto.

Tipi di controllo

Testo

Il controllo Text è l'elemento di base che rappresenta una parte di testo sullo schermo.

Un controllo di testo autonomo può essere usato come etichetta o testo statico in un modulo. I controlli di testo possono anche essere contenuti all'interno della struttura di un ListItem, un TreeItem o un DataItem.

Annotazioni

I controlli di testo potrebbero non essere visualizzati nella visualizzazione contenuto dell'albero di automazione interfaccia utente (vedere Ui Automation Tree Overview). Ciò è dovuto al fatto che i controlli di testo vengono spesso visualizzati tramite la proprietà Name di un altro controllo. Ad esempio, il testo utilizzato per etichettare un controllo Edit viene esposto tramite la proprietà Name del controllo Modifica. Poiché il controllo Modifica si trova nella visualizzazione contenuto dell'albero di automazione interfaccia utente, non è necessario che l'elemento di testo stesso si trova in tale visualizzazione dell'albero di automazione interfaccia utente. L'unico testo visualizzato nella visualizzazione del contenuto è testo che non contiene informazioni ridondanti. Ciò consente a qualsiasi tecnologia assistive di filtrare rapidamente solo le informazioni necessarie agli utenti.

Redigere

I controlli di modifica consentono a un utente di visualizzare e modificare una singola riga di testo.

Annotazioni

La singola riga di testo può essere disposta in determinati scenari di layout.

Documento

I controlli documento consentono a un utente di spostarsi e ottenere informazioni da più pagine di testo.

API Client di TextPattern

TIPO Descrizione
Classe System.Windows.Automation.TextPattern Punto di ingresso per il modello di testo di Automazione interfaccia utente Microsoft.

Questa classe contiene anche i due listener di eventi, TextPattern, TextSelectionChangedEvent e TextChangedEvent.
Classe System.Windows.Automation.Text.TextPatternRange Rappresentazione di un intervallo di testo all'interno di un contenitore di testo che supporta TextPattern.

I client di automazione interfaccia utente devono prestare attenzione alla validità corrente di un intervallo di testo creato usando TextPatternRange. Se il testo originale nel controllo testo viene completamente sostituito da un nuovo testo, l'intervallo di testo corrente diventa non valido. Tuttavia, l'intervallo di testo può comunque avere una certa redditività se viene modificata solo parte del testo originale e il controllo testo sottostante gestisce il relativo "puntatore" di testo con ancoraggi (o endpoint) anziché con il posizionamento assoluto dei caratteri.

I client possono monitorare un TextChangedEvent per ricevere notifica di eventuali modifiche al testo su cui stanno lavorando.
Classe System.Windows.Automation.AutomationTextAttribute Utilizzato per identificare gli attributi di formattazione di un intervallo di testo.

API del provider TextPattern

Gli elementi o i controlli dell'interfaccia utente che supportano TextPattern implementando le interfacce ITextProvider e ITextRangeProvider, sia in modo nativo che tramite proxy di Automazione UI di Microsoft, sono in grado di fornire informazioni dettagliate sugli attributi di qualsiasi testo che contengono, oltre a offrire funzionalità di navigazione affidabili.

Un TextPattern provider non deve supportare tutti gli attributi di testo se il controllo non supporta alcun attributo specifico.

Un TextPattern provider deve supportare le funzioni GetSelection e Select se il controllo supporta la selezione o il posizionamento del cursore del testo (o cursore di sistema) all'interno di un'area di testo. Se il controllo non supporta questa funzionalità, non è necessario supportare uno di questi metodi. Tuttavia, il controllo deve esporre il tipo di selezione del testo supportato implementando la SupportedTextSelection proprietà .

Un TextPattern provider deve sempre supportare le TextUnitCharacter costanti e Document tutte le altre TextUnit costanti che è in grado di supportare.

Annotazioni

Il provider può ignorare il supporto per uno specifico TextUnit rinviando al successivo più grande TextUnit supportato nell'ordine seguente: Character, Format, WordLineParagraph, , Page, e Document.

API (Interfaccia di Programmazione delle Applicazioni) Descrizione
interfaccia ITextProvider Espone metodi, proprietà e attributi che supportano TextPattern nelle applicazioni client (vedere ITextProvider).
interfaccia ITextRangeProvider Rappresenta un intervallo di testo in un fornitore di testo (vedere ITextRangeProvider).
Classe System.Windows.Automation.TextPatternIdentifiers Contiene valori usati come identificatori per i provider di testo (vedere TextPatternIdentifiers).

Sicurezza

L'architettura di automazione interfaccia utente è stata progettata tenendo conto della sicurezza (vedere Ui Automation Security Overview). Tuttavia, le classi TextPattern descritte in questa panoramica richiedono alcune considerazioni specifiche sulla sicurezza.

  • I provider di testo di Microsoft Automazione Interfaccia Utente forniscono interfacce di sola lettura e non consentono di modificare il testo esistente in un controllo.

  • I client di automazione interfaccia utente possono usare Automazione interfaccia utente Microsoft solo se sono completamente "attendibili". Un esempio è il desktop di accesso protetto, in cui possono essere eseguite solo applicazioni note e attendibili.

  • Gli sviluppatori di provider di automazione interfaccia utente devono tenere presente che tutte le informazioni che scelgono di esporre nei propri controlli tramite Automazione interfaccia utente Microsoft sono essenzialmente pubbliche e completamente accessibili da altri codici. Automazione interfaccia utente Microsoft non si impegna a determinare l'attendibilità di qualsiasi client di automazione interfaccia utente e pertanto il provider di automazione interfaccia utente non deve esporre contenuto protetto o informazioni testuali riservate ,ad esempio campi password.

  • Una delle modifiche più importanti in tema di sicurezza per Windows Vista è comunemente chiamata "Input Sicuro", che comprende tecnologie come gli account utente con privilegi minimi (o limitati) (LUA) e l'isolamento del livello di privilegio dell'interfaccia utente (UIPI).

    • UIPI impedisce a un programma di controllare e/o monitorare un altro programma più "privilegiato", impedendo attacchi di messaggi di finestra tra processi che eseguono lo spoofing dell'input dell'utente.

    • LUA imposta limiti sui privilegi delle applicazioni eseguite dagli utenti nel gruppo Administrators. Le applicazioni non avranno necessariamente privilegi di amministratore, ma verranno invece eseguiti con i privilegi minimi necessari. Di conseguenza, potrebbero esserci alcune restrizioni applicate negli scenari LUA. In particolare il troncamento delle stringhe (incluse le stringhe TextPattern), in cui potrebbe essere necessario limitare le dimensioni delle stringhe recuperate dalle applicazioni a livello di amministratore in modo che non siano costrette ad allocare memoria al punto di disabilitare l'applicazione.

Prestazioni

Poiché TextPattern si basa su chiamate tra processi per la maggior parte delle funzionalità, non fornisce un meccanismo di memorizzazione nella cache per migliorare le prestazioni durante l'elaborazione del contenuto. A differenza di altri modelli di controllo nell'Automazione interfaccia utente Microsoft, a cui si può accedere usando i metodi GetCachedPattern o TryGetCachedPattern.

Una tattica per migliorare le prestazioni consiste nel assicurarsi che i client di automazione interfaccia utente tentino di recuperare blocchi di testo di dimensioni moderate usando GetText. Ad esempio, le chiamate GetText(1) comportano un hit tra processi per ogni carattere, mentre una chiamata GetText(-1) comporta un solo hit tra processi, ma può avere una latenza elevata a seconda delle dimensioni del provider di testo.

Terminologia di TextPattern

Attributo
Caratteristica di formattazione di un intervallo di testo, ad esempio IsItalicAttribute o FontNameAttribute.

Intervallo degenerato
Un intervallo degenerato è un intervallo di testo vuoto o zero caratteri. Ai fini del pattern di controllo TextPattern, il punto in cui viene inserito il testo (o il cursore di sistema) viene considerato come un intervallo degenerato. Se non è selezionato alcun testo, GetSelection restituisce un intervallo degenerato nel punto di inserimento del testo e RangeFromPoint restituisce un intervallo degenerato come endpoint iniziale. RangeFromChild e GetVisibleRanges possono restituire intervalli degenerati quando il provider di testo non riesce a trovare intervalli di testo che corrispondono alla condizione specificata. Questo intervallo degenerato può essere usato come endpoint iniziale all'interno del provider di testo. FindText e FindAttribute restituiscono un riferimento Null (Nothing in Microsoft Visual Basic .NET) per evitare confusione con un intervallo individuato rispetto a un intervallo degenerato.

Oggetto incorporato
Esistono due tipi di oggetti incorporati nel modello di testo dell'interfaccia utente automatizzata. Sono costituiti da elementi di contenuto basati su testo, ad esempio collegamenti ipertestuali o tabelle, e elementi di controllo come immagini e pulsanti. Per informazioni più dettagliate, vedere Accedere agli oggetti incorporati tramite automazione interfaccia utente.

Punto finale
Il punto Start o End assoluto di un intervallo di testo all'interno di un contenitore di testo.

TextPatternRangeEndpoints (inizio e fine). Di seguito viene illustrato un set di punti di inizio e di fine.

IntervalloDiTesto
Rappresentazione di un intervallo di testo, con punti di inizio e di fine, in un contenitore di testo che include tutti gli attributi e le funzionalità associati.

TextUnit
Unità predefinita di testo (carattere, parola, riga o paragrafo) utilizzata per spostarsi tra segmenti logici di un intervallo di testo.

Vedere anche