Bagikan melalui


Mengekspos informasi aksesibilitas dasar

Info aksesibilitas dasar sering dikategorikan ke dalam nama, peran, dan nilai. Topik ini menjelaskan kode untuk membantu aplikasi Anda mengekspos informasi dasar yang dibutuhkan teknologi bantuan.

Nama yang dapat diakses

Nama yang dapat diakses adalah string teks deskriptif pendek yang digunakan pembaca layar untuk mengumumkan elemen UI. Atur nama yang dapat diakses untuk elemen UI sehingga memiliki arti yang penting untuk memahami konten atau berinteraksi dengan UI. Elemen tersebut biasanya mencakup gambar, bidang input, tombol, kontrol, dan wilayah.

Tabel ini menjelaskan cara menentukan atau mendapatkan nama yang dapat diakses untuk berbagai jenis elemen dalam antarmuka pengguna XAML.

Jenis elemen Deskripsi
Teks statis Untuk elemen TextBlock dan RichTextBlock , nama yang dapat diakses secara otomatis ditentukan dari teks (dalam) yang terlihat. Semua teks dalam elemen tersebut digunakan sebagai nama. Lihat Nama dari teks dalam.
Gambar Elemen Gambar XAML tidak memiliki analog langsung ke atribut alt HTML img dan elemen serupa. Gunakan AutomationProperties.Name untuk memberikan nama, atau menggunakan teknik keterangan. Lihat Nama yang dapat diakses untuk gambar.
Elemen formulir Nama yang dapat diakses untuk elemen formulir harus sama dengan label yang ditampilkan untuk elemen tersebut. Lihat Label dan LabeledBy.
Tombol dan tautan Secara default, nama tombol atau tautan yang dapat diakses didasarkan pada teks yang terlihat, menggunakan aturan yang sama seperti yang dijelaskan dalam Nama dari teks dalam. Dalam kasus di mana tombol hanya berisi gambar, gunakan AutomationProperties.Name untuk menyediakan teks saja yang setara dengan tindakan yang dimaksudkan tombol.

Sebagian besar elemen kontainer seperti panel tidak mempromosikan kontennya sebagai nama yang dapat diakses. Ini karena ini adalah konten item yang harus melaporkan nama dan peran yang sesuai, bukan kontainernya. Elemen kontainer mungkin melaporkan bahwa elemen tersebut adalah elemen yang memiliki turunan dalam representasi Microsoft UI Automation, sehingga logika teknologi bantuan dapat melintasinya. Tetapi pengguna teknologi bantuan umumnya tidak perlu tahu tentang kontainer dan dengan demikian sebagian besar kontainer tidak diberi nama.

Peran dan nilai

Kontrol dan elemen UI lainnya yang merupakan bagian dari kosakata XAML mengimplementasikan dukungan Automation UI untuk melaporkan peran dan nilai sebagai bagian dari definisi mereka. Anda dapat menggunakan alat Automation UI untuk memeriksa peran dan informasi nilai untuk kontrol, atau Anda dapat membaca dokumentasi untuk implementasi AutomationPeer dari setiap kontrol. Peran yang tersedia dalam kerangka kerja Automation UI ditentukan dalam enumerasi AutomationControlType . Klien Automation UI seperti teknologi bantuan dapat memperoleh informasi peran dengan memanggil metode yang diekspos kerangka kerja Automation UI dengan menggunakan AutomationPeer kontrol.

Tidak semua kontrol memiliki nilai. Kontrol yang memiliki nilai melaporkan informasi ini ke Otomatisasi UI melalui rekan dan pola yang didukung oleh kontrol tersebut. Misalnya, elemen formulir TextBox memang memiliki nilai. Teknologi bantuan dapat menjadi klien Automation UI dan dapat menemukan bahwa nilai ada dan apa nilainya. Dalam hal khusus ini TextBox mendukung pola IValueProvider melalui definisi TextBoxAutomationPeer .

Catatan

Untuk kasus di mana Anda menggunakan AutomationProperties.Name atau teknik lain untuk menyediakan nama yang dapat diakses secara eksplisit, jangan sertakan teks yang sama seperti yang digunakan oleh peran kontrol atau ketik informasi dalam nama yang dapat diakses. Misalnya, jangan sertakan string seperti "tombol" atau "daftar" dalam nama. Informasi peran dan jenis berasal dari properti Automation UI yang berbeda (LocalizedControlType) yang disediakan oleh dukungan kontrol default untuk Automasi UI. Banyak teknologi bantuan menambahkan LocalizedControlType ke nama yang dapat diakses, sehingga menduplikasi peran dalam nama yang dapat diakses dapat menghasilkan kata-kata yang tidak perlu diulang. Misalnya, jika Anda memberikan kontrol Tombol nama "tombol" yang dapat diakses atau menyertakan "tombol" sebagai bagian terakhir dari nama, ini mungkin dibaca oleh pembaca layar sebagai "tombol tombol". Anda harus menguji aspek info aksesibilitas Anda ini menggunakan Narator.

Berpengaruh pada tampilan pohon Automation UI

Kerangka kerja Automation UI memiliki konsep tampilan pohon, di mana klien Automation UI dapat mengambil hubungan antara elemen di UI menggunakan tiga tampilan yang mungkin: mentah, kontrol, dan konten. Tampilan kontrol adalah tampilan yang sering digunakan oleh klien Automation UI karena memberikan representasi dan organisasi elemen yang baik dalam UI yang interaktif. Alat pengujian biasanya memungkinkan Anda memilih tampilan pohon mana yang akan digunakan saat alat menyajikan organisasi elemen.

Secara default, kelas turunan Kontrol apa pun dan beberapa elemen lain akan muncul dalam tampilan kontrol saat kerangka kerja Automation UI mewakili UI untuk aplikasi Windows. Tetapi terkadang Anda tidak ingin elemen muncul dalam tampilan kontrol karena komposisi UI, di mana elemen tersebut menduplikasi informasi atau menyajikan informasi yang tidak penting untuk skenario aksesibilitas. Gunakan properti terlampir AutomationProperties.AccessibilityView untuk mengubah bagaimana elemen diekspos ke tampilan pohon. Jika Anda meletakkan elemen di pohon Mentah , sebagian besar teknologi bantuan tidak akan melaporkan elemen tersebut sebagai bagian dari pandangan mereka. Untuk melihat beberapa contoh cara kerjanya di kontrol yang ada, buka file XAML referensi desain generic.xaml di editor teks, dan cari AutomationProperties.AccessibilityView di templat.

Nama dari teks dalam

Untuk mempermudah penggunaan string yang sudah ada di UI yang terlihat untuk nilai nama yang dapat diakses, banyak kontrol dan elemen UI lainnya menyediakan dukungan untuk menentukan nama default yang dapat diakses secara otomatis berdasarkan teks dalam dalam elemen, atau dari nilai string properti konten.

  • TextBlock, RichTextBlock, TextBox , dan RichTextBlock masing-masing mempromosikan nilai properti Teks sebagai nama default yang dapat diakses.
  • Setiap subkelas ContentControl menggunakan teknik "ToString" berulang untuk menemukan string dalam nilai Kontennya , dan mempromosikan string ini sebagai nama default yang dapat diakses.

Catatan

Seperti yang diberlakukan oleh Automation UI, panjang nama yang dapat diakses tidak boleh lebih besar dari 2048 karakter. Jika string yang digunakan untuk penentuan nama yang dapat diakses otomatis melebihi batas tersebut, nama yang dapat diakses dipotong pada saat itu.

Nama yang dapat diakses untuk gambar

Untuk mendukung pembaca layar dan memberikan informasi identifikasi dasar untuk setiap elemen di UI, Anda terkadang harus memberikan alternatif teks untuk informasi non-tekstual seperti gambar dan bagan (tidak termasuk elemen dekoratif atau struktural murni). Elemen-elemen ini tidak memiliki teks dalam sehingga nama yang dapat diakses tidak akan memiliki nilai terhitung. Anda dapat mengatur nama yang dapat diakses secara langsung dengan mengatur properti terlampir AutomationProperties.Name seperti yang ditunjukkan dalam contoh ini.

XAML

<!-- Comment -->
<Image Source="product.png"
  AutomationProperties.Name="An image of a customer using the product."/>

Atau, pertimbangkan untuk menyertakan caption teks yang muncul di UI yang terlihat dan yang juga berfungsi sebagai informasi aksesibilitas terkait label untuk konten gambar. Berikut contohnya:

XAML

<Image HorizontalAlignment="Left" Width="480" x:Name="img_MyPix"
  Source="snoqualmie-NF.jpg"
  AutomationProperties.LabeledBy="{Binding ElementName=caption_MyPix}"/>
<TextBlock x:Name="caption_MyPix">Mount Snoqualmie Skiing</TextBlock>

Label dan LabeledBy

Cara yang disukai untuk mengaitkan label dengan elemen formulir adalah dengan menggunakan TextBlock dengan x:Name untuk teks label, lalu mengatur properti terlampir AutomationProperties.LabeledBy pada elemen formulir untuk mereferensikan pelabelan TextBlock dengan nama XAML-nya. Jika Anda menggunakan pola ini, teknologi bantuan dapat menggunakan teks label sebagai nama yang dapat diakses untuk bidang formulir. Berikut adalah contoh yang menunjukkan teknik ini.

XAML

<StackPanel x:Name="LayoutRoot" Background="White">
   <StackPanel Orientation="Horizontal">
     <TextBlock Name="lbl_FirstName">First name</TextBlock>
     <TextBox
      AutomationProperties.LabeledBy="{Binding ElementName=lbl_FirstName}"
      Name="tbFirstName" Width="100"/>
   </StackPanel>
   <StackPanel Orientation="Horizontal">
     <TextBlock Name="lbl_LastName">Last name</TextBlock>
     <TextBox
      AutomationProperties.LabeledBy="{Binding ElementName=lbl_LastName}"
      Name="tbLastName" Width="100"/>
   </StackPanel>
 </StackPanel>

Deskripsi yang dapat diakses (opsional)

Deskripsi yang dapat diakses menyediakan informasi aksesibilitas tambahan tentang elemen UI tertentu. Anda biasanya memberikan deskripsi yang dapat diakses ketika nama yang dapat diakses saja tidak secara memadai menyampaikan tujuan elemen.

Pembaca layar Narator membaca deskripsi elemen yang dapat diakses hanya ketika pengguna meminta informasi lebih lanjut tentang elemen dengan menekan CapsLock+F.

Nama yang dapat diakses dimaksudkan untuk mengidentifikasi kontrol alih-alih sepenuhnya men dokumentasikan perilakunya. Jika deskripsi singkat tidak cukup untuk menjelaskan kontrol, Anda dapat mengatur properti terlampir AutomationProperties.HelpText selain AutomationProperties.Name.

Menguji aksesibilitas lebih awal dan sering

Pada akhirnya, pendekatan terbaik untuk mendukung pembaca layar adalah menguji aplikasi Anda menggunakan pembaca layar sendiri. Itu akan menunjukkan kepada Anda bagaimana pembaca layar berprilaku dan informasi aksesibilitas dasar apa yang mungkin hilang dari aplikasi. Kemudian Anda dapat menyesuaikan nilai properti Automation UI atau UI yang sesuai. Untuk informasi selengkapnya, lihat Pengujian aksesibilitas.

Salah satu alat yang dapat Anda gunakan untuk menguji aksesibilitas disebut AccScope. Alat AccScope sangat berguna karena Anda dapat melihat representasi visual UI Anda yang mewakili bagaimana teknologi bantuan mungkin melihat aplikasi Anda sebagai pohon otomatisasi. Secara khusus, ada mode Narator yang memberikan tampilan tentang bagaimana Narator mendapatkan teks dari aplikasi Anda dan cara mengatur elemen di UI. AccScope dirancang agar dapat digunakan dan berguna selama siklus pengembangan untuk aplikasi, bahkan selama fase desain awal. Untuk informasi selengkapnya, lihat AccScope.

Nama yang dapat diakses dari data dinamis

Windows mendukung banyak kontrol yang dapat digunakan untuk menampilkan nilai yang berasal dari sumber data terkait, melalui fitur yang dikenal sebagai pengikatan data. Saat Anda mengisi daftar dengan item data, Anda mungkin perlu menggunakan teknik yang mengatur nama yang dapat diakses untuk item daftar terikat data setelah daftar awal diisi. Untuk informasi selengkapnya, lihat "Skenario 4" dalam sampel aksesibilitas XAML.

Nama dan pelokalan yang dapat diakses

Untuk memastikan bahwa nama yang dapat diakses juga merupakan elemen yang dilokalkan, Anda harus menggunakan teknik yang benar untuk menyimpan string yang dapat dilokalkan sebagai sumber daya lalu mereferensikan koneksi sumber daya dengan nilai direktif x:Uid . Jika nama yang dapat diakses berasal dari AutomationProperties.Name penggunaan yang ditetapkan secara eksplisit, pastikan string di sana juga dapat dilokalkan.

Perhatikan bahwa properti terlampir seperti properti AutomationProperties menggunakan sintaks kualifikasi khusus untuk nama sumber daya, sehingga sumber daya mereferensikan properti terlampir seperti yang diterapkan ke elemen tertentu. Misalnya, nama sumber daya untuk AutomationProperties.Name seperti yang diterapkan ke elemen UI bernama MediumButton : MediumButton.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name.