Bagikan melalui


Tentang Pola Kontrol Teks dan TextRange

Konten tekstual kontrol diekspos dengan menggunakan pola kontrol Teks , yang mewakili konten kontainer teks sebagai aliran teks. Pola kontrol Teks memerlukan dukungan pola kontrol TextRange untuk mengekspos atribut format dan gaya. Pola kontrol TextRange mendukung pola kontrol Teks dengan mewakili rentang teks yang berdampingan atau beberapa, rentang teks terputang (atau rentang) dalam kontainer teks dengan kumpulan titik akhir awal dan akhir. Pola kontrol TextRange mendukung fungsionalitas seperti pemilihan, perbandingan, pengambilan, dan traversal.

Catatan

Pola kontrol Teks tidak menyediakan sarana untuk menyisipkan atau mengubah teks. Namun, tergantung pada kontrol, ini dapat dicapai dengan menggunakan pola kontrol Nilai Automasi UI Microsoft atau melalui input keyboard langsung. Ada juga pola TextEdit yang mendukung perubahan terprogram ke teks.

 

Fungsionalitas yang dijelaskan dalam topik ini sangat penting untuk vendor teknologi bantuan dan pengguna akhir mereka. Teknologi bantuan dapat menggunakan Automasi UI untuk mengumpulkan informasi pemformatan teks lengkap untuk pengguna dan menyediakan navigasi terprogram dan pemilihan teks oleh TextUnit (karakter, kata, garis, atau paragraf).

Topik ini berisi bagian berikut:

TextPattern Automation UI dan Kerangka Kerja Layanan Teks

Text Services Framework (TSF) adalah kerangka kerja sistem sederhana dan dapat diskalakan yang memungkinkan layanan bahasa alami dan input teks tingkat lanjut di desktop dan dalam aplikasi. Selain menyediakan antarmuka bagi aplikasi untuk mengekspos penyimpanan teks mereka, ia juga mendukung metadata untuk penyimpanan teks.

TSF dirancang untuk aplikasi yang perlu menyuntikkan input ke dalam skenario sadar konteks. Namun, pola kontrol Teks adalah solusi baca-saja yang dimaksudkan untuk menyediakan akses yang dioptimalkan ke penyimpanan teks untuk pembaca layar dan perangkat Braille.

Teknologi yang dapat diakses yang memerlukan akses baca-saja ke penyimpanan teks dapat menggunakan pola kontrol Teks, tetapi akan memerlukan fungsionalitas TSF untuk input sadar konteks.

Untuk informasi selengkapnya, lihat Kerangka Kerja Layanan Teks.

Jenis kontrol

Tipe kontrol Edit Automation UI dan jenis kontrol Dokumen harus mendukung pola kontrol Teks . Untuk aksesibilitas yang ditingkatkan, Microsoft merekomendasikan agar jenis kontrol TipsAlat dan Teks juga mendukung pola kontrol Teks, tetapi tidak diperlukan.

Antarmuka Penyedia

Penyedia Automation UI mendukung pola kontrol Teks untuk kontrol dengan mengimplementasikan antarmuka ITextProvider dan ITextRangeProvider . Antarmuka ini mengekspos informasi atribut terperinci untuk teks dalam kontrol dan memberikan kemampuan navigasi yang kuat.

Penyedia tidak perlu mendukung semua atribut teks jika kontrol tidak memiliki dukungan untuk atribut tertentu.

Penyedia harus mendukung metode ITextProvider::GetSelection dan ITextRangeProvider::Select jika kontrol mendukung pemilihan teks atau penempatan kursor teks (atau caret sistem) dalam area teks. Jika kontrol tidak mendukung fungsionalitas ini, kontrol tidak perlu mendukung salah satu metode ini. Namun, kontrol harus mengekspos jenis pilihan teks yang didukungnya dengan mengimplementasikan properti ITextProvider::SupportedTextSelection .

Penyedia harus selalu mendukung konstanta TextUnit , TextUnit_Character dan TextUnit_Document, serta yang lain yang mampu didukungnya.

Catatan

Penyedia dapat melewati dukungan untuk TextUnit tertentu dengan menugaskan ke unit terbesar berikutnya yang didukung dalam urutan berikut: TextUnit_Character, TextUnit_Format, TextUnit_Word, TextUnit_Line, TextUnit_Paragraph, TextUnit_Page, dan TextUnit_Document.

 

Antarmuka Klien

Aplikasi klien Automation UI menggunakan antarmuka IUIAutomationTextPattern dan IUIAutomationTextRange untuk mengakses konten tekstual kontrol teks. Klien menggunakan IUIAutomationTextPattern untuk memilih rentang teks yang disebut rentang teks, dan untuk mengambil pointer ke antarmuka IUIAutomationTextRange untuk rentang. Antarmuka IUIAutomationTextRange memungkinkan klien memanipulasi rentang teks, dan mengambil informasi tentang teks dalam rentang, termasuk atribut seperti nama font, warna latar depan, gaya garis bawah, dan sebagainya. Untuk informasi selengkapnya, lihat Pengidentifikasi Atribut Teks.

Performa

Pola kontrol Teks bergantung pada panggilan lintas proses untuk sebagian besar fungsionalitasnya, sehingga tidak menyediakan mekanisme penembolokan untuk meningkatkan performa saat memproses konten. Pola kontrol lain dalam Microsoft UI Automation dapat diakses dengan menggunakan metode IUIAutomationElement::GetCachedPattern .

Salah satu teknik untuk meningkatkan performa adalah memastikan bahwa klien Automation UI mencoba mengambil blok teks berukuran sedang dengan menggunakan metode IUIAutomationTextRange::GetText . Misalnya, menggunakan GetText untuk mengambil karakter tunggal akan menimbulkan hit lintas proses untuk setiap karakter, sedangkan tidak menentukan panjang maksimum saat memanggil GetText akan menimbulkan satu hit lintas proses, tetapi dapat memiliki latensi tinggi tergantung pada ukuran rentang teks.

Pola Teks dan Objek Tertanam Virtual

Jika memungkinkan, implementasi penyedia ITextProvider dan ITextRangeProvider harus mendukung seluruh teks dokumen, termasuk teks apa pun di luar viewport. Untuk teks di luar layar atau objek tersemat yang divirtualisasi, penyedia harus mendukung pola kontrol VirtualizedItem (IVirtualizedItemProvider).

Jika dokumen divirtualisasi saat seluruh aliran teks masih tersedia, properti ITextProvider::D ocumentRange akan mengambil rentang teks yang menyertakan seluruh dokumen. Namun, memanggil metode ITextRangeProvider akan mengambil kumpulan objek virtual yang mewakili semua objek yang disematkan dalam dokumen. Untuk berinteraksi dengan objek tersemat virtual, klien harus memanggil metode IVirtualizedItemProvider::Realisasi , yang membuat item dapat diakses sepenuhnya sebagai elemen Otomatisasi UI. Klien harus mengikuti proses serupa untuk bekerja dengan elemen kisi dalam tabel yang disematkan di mana sebagian tabel di luar layar dan divirtualisasikan.

Menggunakan Tipe Kontrol Kustom dengan Pola Kontrol Teks

Meskipun pola Kontrol teks mendukung banyak atribut teks dan objek yang disematkan, tidak dimungkinkan untuk menentukan terlebih dahulu semua elemen dokumen dan jenis presentasi yang mungkin. Untuk elemen dokumen yang tidak didukung oleh atribut atau jenis kontrol standar yang ada, penyedia dapat menggunakan fitur ekstensibilitas yang disediakan oleh jenis kontrol Kustom Automation UI.

Untuk aplikasi dan antarmuka pengguna yang didasarkan pada presentasi halaman, presentasi batas dan tata letak "halaman" juga dapat diekspresikan sebagai objek tersemat yang memiliki jenis kontrol kustom (yaitu, LocalizedControlType="page"). Dengan begitu, objek yang disematkan dapat menghosting elemen halaman lain yang tidak dapat dengan mudah menjadi bagian dari aliran teks dokumen, seperti bidang header dan footer setiap halaman, sebagai turunan dari objek tersemat "halaman". Atau, setiap objek "halaman" dapat mendukung pola kontrol Teks secara independen, yang berfungsi dengan baik untuk aplikasi seperti alat penulisan untuk presentasi peragaan slide, atau lingkungan penerbitan desktop berbasis halaman.

Masa Pakai Rentang Teks

Jika memungkinkan, penyedia harus memastikan bahwa setiap perubahan teks, seperti penghapusan, penyisipan, dan pemindahan, tercermin dalam rentang teks terkait. Jika memperbarui rentang teks tidak dimungkinkan, penyedia harus menaikkan peristiwa UIA_Text_TextChangedEventId untuk memberi tahu klien bahwa rentang teks tidak lagi valid dan yang baru harus diambil.

Konseptual

Bagaimana Automation UI Mendukung Objek Tersemat

Gambaran Umum Pola Kontrol Automasi UI

Dukungan Automasi UI untuk Konten Tekstual

Bekerja dengan Kontrol Berbasis Teks

Sumber Daya Lainnya

Kerangka Kerja Layanan Teks