Informazioni sui modelli di controllo Text e TextRange
Il contenuto testuale di un controllo viene esposto utilizzando il pattern di controllo Text, che rappresenta il contenuto di un contenitore di testo come flusso di testo. Il pattern di controllo Text richiede il supporto del pattern di controllo TextRange per esporre attributi di formato e stile. Il pattern di controllo TextRange supporta il pattern di controllo Text rappresentando intervalli di testo contigui o multipli, anche non contigui, in un contenitore di testo con una raccolta di punti di inizio e fine. Il pattern di controllo TextRange supporta funzionalità quali selezione, confronto, recupero e attraversamento.
Nota
Il pattern di controllo testo non offre un modo per inserire o modificare il testo. Tuttavia, a seconda del controllo, questa operazione può essere eseguita usando Microsoft UI Automation Value pattern di controllo o tramite input diretto da tastiera. È disponibile anche un modello di TextEdit che supporta la modifica a livello di codice in testo.
La funzionalità descritta in questo argomento è fondamentale per i fornitori di assistive technology e i relativi utenti finali. Le tecnologie assistive possono usare UI Automation per raccogliere informazioni complete sulla formattazione del testo per l'utente e fornire navigazione programmatica e selezione del testo in base a TextUnit (carattere, parola, riga o paragrafo).
Questo argomento contiene le sezioni seguenti:
- Automazione dell'interfaccia utente TextPattern e Text Services Framework
- Tipi di Controllo
- interfacce provider
- interfacce client
- prestazioni
- modello di testo e oggetti incorporati virtualizzati
- uso del tipo di controllo personalizzato con il pattern di controllo testo
- durata di un intervallo di testo
- argomenti correlati
Automazione della Interfaccia Utente: TextPattern 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 nelle applicazioni. Oltre a fornire interfacce per le applicazioni per esporre il proprio archivio testo, supporta anche i metadati per l'archivio di testo.
TSF è stato progettato per le applicazioni che devono inserire l'input in scenari con riconoscimento del contesto. Il modello di controllo Testo è tuttavia una soluzione di sola lettura progettata per fornire accesso ottimizzato a un archivio di testo per i lettori di schermo e per i dispositivi Braille.
Le tecnologie accessibili che richiedono l'accesso in sola lettura a un archivio di testo possono usare il pattern di controllo Text, ma richiederanno la funzionalità di TSF per l'input compatibile con il contesto.
Per altre informazioni, vedere Text Services Framework.
Tipi di controllo
L'automazione interfaccia utente Modifica tipo di controllo e tipo di controllo Document deve supportare il pattern di controllo Text. Per migliorare l'accessibilità, Microsoft consiglia che i tipi di controllo ToolTip e Testo supportino anche il pattern di controllo Testo, ma non è obbligatorio.
Interfacce del provider
I provider di automazione dell'interfaccia utente supportano il pattern di controllo testo per un controllo implementando le interfacce ITextProvider e ITextRangeProvider. Queste interfacce espongono informazioni dettagliate sugli attributi per il testo nel controllo e offrono funzionalità di navigazione affidabili.
Un provider non deve supportare tutti gli attributi di testo se il controllo non supporta alcun attributo specifico.
Un provider deve supportare i metodi ITextProvider::GetSelection e ITextRangeProvider::Select se il controllo supporta la selezione del testo o il posizionamento del cursore di testo (o cursore di sistema) all'interno dell'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 proprietà ITextProvider::SupportedTextSelection.
Un provider deve sempre supportare le costanti TextUnit, TextUnit_Character e TextUnit_Document, nonché eventuali altri che sia in grado di supportare.
Nota
Il provider può ignorare il supporto per uno specifico TextUnit rinviando alla successiva unità più grande supportata nell'ordine seguente: TextUnit_Character, TextUnit_Format, TextUnit_Word, TextUnit_Line, TextUnit_Paragraph, TextUnit_Pagee TextUnit_Document.
Interfacce client
Le applicazioni client di automazione interfaccia utente usano le interfacce IUIAutomationTextPattern e IUIAutomationTextRange per accedere al contenuto testuale di un controllo di testo. I client usano IUIAutomationTextPattern per selezionare porzioni di testo chiamati intervalli di testo, e per recuperare i puntatori alle interfacce IUIAutomationTextRange per questi intervalli. L'interfaccia IUIAutomationTextRange consente ai client di modificare l'intervallo di testo e di recuperare informazioni sul testo nell'intervallo, inclusi attributi quali il nome del carattere, il colore di primo piano, lo stile di sottolineatura e così via. Per altre informazioni, vedere identificatori di attributo di testo .
Prestazione
Il modello di controllo testo si basa su chiamate tra processi per la maggior parte delle funzionalità, pertanto non fornisce un meccanismo di memorizzazione nella cache per migliorare le prestazioni durante l'elaborazione del contenuto. È possibile accedere ad altri pattern di controllo in Automazione interfaccia utente Microsoft usando il metodo IUIAutomationElement::GetCachedPattern.
Una tecnica per migliorare le prestazioni consiste nel garantire che i client di automazione interfaccia utente tentino di recuperare blocchi di testo di dimensioni moderate usando il metodo IUIAutomationTextRange::GetText. Ad esempio, l'uso di GetText per recuperare singoli caratteri comporta riscontri tra processi per ogni carattere, mentre non specificando una lunghezza massima quando si chiama GetText si verifica un hit tra processi, ma può avere una latenza elevata a seconda delle dimensioni dell'intervallo di testo.
Modello di testo e oggetti incorporati virtualizzati
Quando possibile, un'implementazione del provider di ITextProvider e ITextRangeProvider deve supportare l'intero testo di un documento, incluso qualsiasi testo al di fuori del riquadro di visualizzazione. Per il testo fuori schermo o gli oggetti incorporati che sono virtualizzati, i provider devono supportare il pattern di controllo VirtualizedItem (IVirtualizedItemProvider).
Se un documento viene virtualizzato mentre l'intero flusso di testo è ancora disponibile, la proprietà ITextProvider::D ocumentRange recupera un intervallo di testo che include l'intero documento. Tuttavia, la chiamata al metodo ITextRangeProvider recupererà una raccolta di oggetti virtualizzati che rappresentano tutti gli oggetti incorporati nel documento. Per interagire con un oggetto incorporato virtualizzato, i client devono chiamare il metodo IVirtualizedItemProvider::Realize, che rende gli elementi completamente accessibili come elementi di automazione interfaccia utente. I clienti devono seguire un processo simile per lavorare con gli elementi della griglia in una tabella incorporata, in cui una parte della tabella è fuori dallo schermo e virtualizzata.
Utilizzo del tipo di controllo personalizzato con il pattern di controllo del testo
Mentre il pattern di controllo Text supporta molti attributi di testo e oggetti incorporati, non è possibile definire in anticipo tutti i possibili elementi documento e tipi di presentazione. Per gli elementi del documento non supportati dagli attributi o dai tipi di controllo standard esistenti, i provider possono usare le funzionalità di estendibilità fornite dall'automazione interfaccia utente tipo di controllo Personalizzato.
Per le applicazioni e le interfacce utente basate su presentazioni di pagine, il limite e la presentazione del layout di "pagina" possono essere espressi anche come oggetto incorporato con un tipo di controllo personalizzato , ovvero LocalizedControlType="page"
. In questo modo, l'oggetto incorporato può ospitare altri elementi di pagina che non possono essere facilmente inclusi nel flusso di testo del documento, ad esempio i campi intestazione e piè di pagina di ogni pagina, come elementi figlio dell'oggetto incorporato "page". In alternativa, ogni oggetto "pagina" può supportare il pattern di controllo testo in modo indipendente, il che funziona bene per applicazioni come strumenti di editing per presentazioni diapositive o ambienti di pubblicazione desktop basati su pagine.
Durata di un intervallo di testo
Se possibile, un provider deve assicurarsi che eventuali modifiche al testo, ad esempio eliminazioni, inserimenti e spostamenti, vengano riflesse nell'intervallo di testo associato. Se l'aggiornamento dell'intervallo di testo non è possibile, il provider deve generare un evento UIA_Text_TextChangedEventId per notificare ai client che l'intervallo di testo non è più valido e ne deve essere recuperato uno nuovo.
Argomenti correlati
-
Concettuale
-
Come l'Automazione dell'Interfaccia Utente supporta gli Oggetti Incorporati
-
Panoramica dei modelli di controllo per l'automazione dell'interfaccia utente
-
altre risorse