Informazioni sui pattern 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 gli attributi di formato e stile. Il pattern di controllo TextRange supporta il pattern di controllo Text rappresentando intervalli di testo contigui o multipli,disgiunti (o intervalli) in un contenitore di testo con una raccolta di endpoint di inizio e fine. Il pattern di controllo TextRange supporta funzionalità quali selezione, confronto, recupero e attraversamento.

Nota

Il pattern di controllo Testo non fornisce un mezzo per inserire o modificare il testo. Tuttavia, a seconda del controllo, questa operazione può essere eseguita usando il pattern di controllo Microsoft Automazione interfaccia utente Value o tramite l'input diretto della tastiera. Esiste anche un modello TextEdit che supporta la modifica a livello di codice al testo.

 

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

In questo argomento sono incluse le sezioni seguenti:

Automazione 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 l'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 pattern di controllo Testo , tuttavia, è una soluzione di sola lettura progettata per fornire un accesso ottimizzato a un archivio di testo per le utilità per la lettura dello schermo e i dispositivi Braille.

Le tecnologie accessibili che richiedono l'accesso in sola lettura a un archivio di testo possono usare il modello di controllo Text, ma saranno necessarie le funzionalità di TSF per l'input compatibile con il contesto.

Per altre informazioni, vedere Framework di Servizi di testo.

Tipi di controllo

Il Automazione interfaccia utente Modifica tipo di controllo e Tipo di controllo Documento deve supportare il pattern di controllo Text. Per migliorare l'accessibilità, Microsoft consiglia che i tipi di controllo ToolTip e Text supportino anche il pattern di controllo Text, ma non è obbligatorio.

Interfacce del provider

Automazione interfaccia utente provider supportano il pattern di controllo Text 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 o il posizionamento del cursore di testo (o del 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 di testo supportato implementando la proprietà ITextProvider::SupportedTextSelection .

Un provider deve sempre supportare le costanti TextUnit , TextUnit_Character e TextUnit_Document, nonché qualsiasi altro elemento in grado di supportare.

Nota

Il provider può ignorare il supporto per un textUnit specifico rinviando l'unità più grande successiva supportata nell'ordine seguente: TextUnit_Character, TextUnit_Format, TextUnit_Word, TextUnit_Line, TextUnit_Paragraph, TextUnit_Page e TextUnit_Document.

 

Interfacce client

Automazione interfaccia utente applicazioni client usano le interfacce IUIAutomationTextPattern e IUIAutomationTextRange per accedere al contenuto testuale di un controllo di testo. I client usano IUIAutomationTextPattern per selezionare intervalli di testo denominati intervalli di testo e recuperare puntatori alle interfacce IUIAutomationTextRange per gli intervalli. L'interfaccia IUIAutomationTextRange consente ai client di modificare l'intervallo di testo e di recuperare informazioni sul testo nell'intervallo, inclusi attributi come 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.

Prestazioni

Il pattern di controllo Testo si basa sulle 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 Microsoft Automazione interfaccia utente usando il metodo IUIAutomationElement::GetCachedPattern.

Una tecnica per migliorare le prestazioni consiste nel garantire che Automazione interfaccia utente client tentino di recuperare blocchi di testo di dimensioni moderate usando il metodo IUIAutomationTextRange::GetText. Ad esempio, l'uso di GetText per recuperare i 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 all'esterno del viewport. Per gli oggetti incorporati o testo fuori schermo virtualizzati, i provider devono supportare il pattern di controllo VirtualizedItem (IVirtualizedItemProvider).

Se un documento è virtualizzato mentre l'intero flusso di testo è ancora disponibile, la proprietà ITextProvider::D ocumentRange recupererà 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 Automazione interfaccia utente. I client devono seguire un processo simile per lavorare con gli elementi della griglia in una tabella incorporata in cui una parte della tabella è disattivata e virtualizzata.

Utilizzo del tipo di controllo personalizzato con il pattern di controllo testo

Anche se 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 esistenti o dai tipi di controllo standard, i provider possono usare le funzionalità di estendibilità fornite dal tipo di controllo personalizzato Automazione interfaccia utente.

Per le applicazioni e le interfacce utente basate su presentazioni di pagine, il limite e la presentazione del layout di "page" 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 parte del flusso di testo del documento, ad esempio i campi di 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, che funziona bene per applicazioni come strumenti di creazione per presentazioni di presentazioni diapositive o ambienti di pubblicazione desktop basati su pagine.

Durata di un intervallo di testo

Se possibile, un provider deve garantire 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.

Informazioni concettuali

Come Automazione interfaccia utente supporta oggetti incorporati

Cenni preliminari sui pattern di controllo per l'automazione interfaccia utente

supporto di Automazione interfaccia utente per il contenuto testuale

Utilizzo dei controlli basati su testo

Altre risorse

Text Services Framework