Gambaran umum aksesibilitas

Artikel ini adalah gambaran umum konsep dan teknologi yang terkait dengan skenario aksesibilitas untuk aplikasi Windows.

Aksesibilitas dan aplikasi Anda

Ada banyak kemungkinan disabilitas atau gangguan, termasuk keterbatasan mobilitas, penglihatan, persepsi warna, pendengaran, ucapan, kognisi, dan literasi. Namun, Anda dapat mengatasi sebagian besar persyaratan dengan mengikuti panduan yang ditawarkan di sini. Ini berarti menyediakan:

  • Dukungan untuk interaksi keyboard dan pembaca layar.
  • Dukungan untuk kustomisasi pengguna, seperti font, pengaturan zoom (pembesaran), warna, dan pengaturan kontras tinggi.
  • Alternatif atau suplemen untuk bagian UI Anda.

Kontrol untuk XAML menyediakan dukungan dan dukungan keyboard bawaan untuk teknologi bantuan seperti pembaca layar, yang memanfaatkan kerangka kerja aksesibilitas yang sudah mendukung aplikasi UWP, HTML, dan teknologi UI lainnya. Dukungan bawaan ini memungkinkan tingkat aksesibilitas dasar yang dapat Anda sesuaikan dengan sedikit pekerjaan, dengan mengatur hanya beberapa properti. Jika Anda membuat komponen dan kontrol XAML kustom Anda sendiri, Anda juga dapat menambahkan dukungan serupa ke kontrol tersebut dengan menggunakan konsep peer otomatisasi.

Selain itu, fitur pengikatan data, gaya, dan templat memudahkan penerapan dukungan untuk perubahan dinamis guna menampilkan pengaturan dan teks untuk UI alternatif.

UI Automation

Dukungan aksesibilitas terutama berasal dari dukungan terintegrasi untuk kerangka kerja Microsoft UI Automation. Dukungan tersebut diberikan melalui kelas dasar dan perilaku bawaan implementasi kelas untuk jenis kontrol, dan representasi antarmuka API penyedia Automation UI. Setiap kelas kontrol menggunakan konsep Automation UI dari rekan otomatisasi dan pola otomatisasi yang melaporkan peran dan konten kontrol ke klien Automation UI. Aplikasi ini diperlakukan sebagai jendela tingkat atas oleh Automasi UI, dan melalui kerangka kerja Automation UI semua konten yang relevan aksesibilitas dalam jendela aplikasi tersebut tersedia untuk klien Automation UI. Untuk informasi selengkapnya tentang Automasi UI, lihat Gambaran Umum Automasi UI.

Teknologi bantuan

Banyak kebutuhan aksesibilitas pengguna terpenuhi oleh produk teknologi bantuan yang diinstal oleh pengguna atau oleh alat dan pengaturan yang disediakan oleh sistem operasi. Ini termasuk fungsionalitas seperti pembaca layar, pembesaran layar, dan pengaturan kontras tinggi.

Produk teknologi bantuan mencakup berbagai perangkat lunak dan perangkat keras. Produk-produk ini bekerja melalui antarmuka keyboard standar dan kerangka kerja aksesibilitas yang melaporkan informasi tentang konten dan struktur UI kepada pembaca layar dan teknologi bantuan lainnya. Contoh produk teknologi bantuan meliputi:

  • Keyboard Di Layar, yang memungkinkan orang menggunakan penunjuk sebagai pengganti keyboard untuk mengetik teks.
  • Perangkat lunak pengenalan suara, yang mengonversi kata-kata lisan menjadi teks yang diketik.
  • Pembaca layar, yang mengonversi teks menjadi kata lisan atau bentuk lain seperti Braille.
  • Pembaca layar Narator, yang secara khusus merupakan bagian dari Windows. Narator memiliki mode sentuh, yang dapat melakukan tugas pembacaan layar dengan memproses gerakan sentuh, ketika tidak ada keyboard yang tersedia.
  • Program atau pengaturan yang menyesuaikan tampilan atau areanya, misalnya tema kontras tinggi, pengaturan titik per inci (dpi) tampilan, atau alat Pembesar.

Aplikasi yang memiliki dukungan keyboard dan pembaca layar yang baik biasanya bekerja dengan baik dengan berbagai produk teknologi bantuan. Dalam banyak kasus, aplikasi UWP berfungsi dengan produk-produk ini tanpa modifikasi informasi atau struktur tambahan. Namun, Anda mungkin ingin memodifikasi beberapa pengaturan untuk pengalaman aksesibilitas yang optimal atau menerapkan dukungan tambahan.

Beberapa opsi yang dapat Anda gunakan untuk menguji skenario aksesibilitas dasar dengan teknologi bantuan tercantum dalam Pengujian aksesibilitas.

Dukungan pembaca layar dan informasi aksesibilitas dasar

Pembaca layar menyediakan akses ke teks dalam aplikasi dengan merendernya dalam beberapa format lain, seperti bahasa lisan atau output Braille. Perilaku yang tepat dari pembaca layar tergantung pada perangkat lunak dan pada konfigurasi penggunanya.

Misalnya, beberapa pembaca layar membaca seluruh UI aplikasi saat pengguna memulai atau beralih ke aplikasi yang sedang dilihat, yang memungkinkan pengguna untuk menerima semua konten informasi yang tersedia sebelum mencoba menavigasinya. Beberapa pembaca layar juga membaca teks yang terkait dengan kontrol individual saat menerima fokus selama navigasi tab. Ini memungkinkan pengguna untuk mengorientasikan diri mereka saat mereka menavigasi di antara kontrol input aplikasi. Narator adalah contoh pembaca layar yang menyediakan kedua perilaku, tergantung pada pilihan pengguna.

Informasi terpenting yang dibutuhkan pembaca layar atau teknologi bantuan lainnya untuk membantu pengguna memahami atau menavigasi aplikasi adalah nama yang dapat diakses untuk bagian elemen aplikasi. Dalam banyak kasus, kontrol atau elemen sudah memiliki nama yang dapat diakses yang dihitung dari nilai properti lain yang telah Anda berikan. Kasus paling umum di mana Anda dapat menggunakan nama yang sudah dihitung adalah dengan elemen yang mendukung dan menampilkan teks dalam. Untuk elemen lain, Terkadang Anda perlu memperhitungkan cara lain untuk memberikan nama yang dapat diakses dengan mengikuti praktik terbaik untuk struktur elemen. Dan terkadang Anda perlu memberikan nama yang secara eksplisit dimaksudkan sebagai nama yang dapat diakses untuk aksesibilitas aplikasi. Untuk daftar berapa banyak nilai terhitung ini bekerja dalam elemen UI umum, dan untuk informasi selengkapnya tentang nama yang dapat diakses secara umum, lihat Informasi aksesibilitas dasar.

Ada beberapa properti otomatisasi lain yang tersedia (termasuk properti keyboard yang dijelaskan di bagian berikutnya). Namun, tidak semua pembaca layar mendukung semua properti otomatisasi. Secara umum, Anda harus mengatur semua properti otomatisasi yang sesuai dan menguji untuk memberikan dukungan seluas mungkin untuk pembaca layar.

Dukungan keyboard

Untuk memberikan dukungan keyboard yang baik, Anda harus memastikan bahwa setiap bagian aplikasi Anda dapat digunakan dengan keyboard. Jika aplikasi Anda menggunakan sebagian besar kontrol standar dan tidak menggunakan kontrol kustom apa pun, Anda sebagian besar sudah menggunakan kontrol kustom. Model kontrol XAML dasar menyediakan dukungan keyboard bawaan termasuk navigasi tab, input teks, dan dukungan khusus kontrol. Elemen yang berfungsi sebagai kontainer tata letak (seperti panel) menggunakan urutan tata letak untuk membuat urutan tab default. Urutan tersebut sering kali merupakan urutan tab yang benar untuk digunakan untuk representasi UI yang dapat diakses. Jika Anda menggunakan kontrol ListBox dan GridView untuk menampilkan data, kontrol tersebut menyediakan navigasi tombol panah bawaan. Atau jika Anda menggunakan kontrol Tombol , tombol tersebut sudah menangani Bilah Spasi atau Masukkan tombol untuk aktivasi tombol.

Untuk informasi selengkapnya tentang semua aspek dukungan keyboard, termasuk urutan tab dan aktivasi atau navigasi berbasis kunci, lihat Aksesibilitas keyboard.

Media dan keterangan

Anda biasanya menampilkan media audiovisual melalui objek MediaElement. Anda dapat menggunakan API MediaElement untuk mengontrol pemutaran media. Untuk tujuan aksesibilitas, berikan kontrol yang memungkinkan pengguna untuk memutar, menjeda, dan menghentikan media sesuai kebutuhan. Terkadang, media menyertakan komponen tambahan yang ditujukan untuk aksesibilitas, seperti keterangan atau trek audio alternatif yang menyertakan deskripsi narasi.

Teks yang dapat diakses

Tiga aspek utama teks relevan dengan aksesibilitas:

  • Alat harus menentukan apakah teks akan dibaca sebagai bagian dari traversal urutan tab atau hanya sebagai bagian dari representasi dokumen keseluruhan. Anda dapat membantu mengontrol penentuan ini dengan memilih elemen yang sesuai untuk menampilkan teks atau dengan menyesuaikan properti elemen teks tersebut. Setiap elemen teks memiliki tujuan tertentu, dan tujuan tersebut sering memiliki peran Automasi UI yang sesuai. Menggunakan elemen yang salah dapat mengakibatkan pelaporan peran yang salah ke Automation UI dan menciptakan pengalaman yang membingungkan bagi pengguna teknologi bantuan.
  • Banyak pengguna memiliki batasan penglihatan yang menyulitkan mereka untuk membaca teks kecuali memiliki kontras yang memadai dengan latar belakang. Bagaimana hal ini berdampak pada pengguna tidak intuitif bagi desainer aplikasi yang tidak memiliki batasan penglihatan tersebut. Misalnya, untuk pengguna buta warna, pilihan warna yang buruk dalam desain dapat mencegah beberapa pengguna untuk dapat membaca teks. Rekomendasi aksesibilitas yang awalnya dibuat untuk konten web menentukan standar untuk kontras yang juga dapat menghindari masalah ini di aplikasi. Untuk informasi selengkapnya, lihat Persyaratan teks yang dapat diakses.
  • Banyak pengguna mengalami kesulitan membaca teks yang terlalu kecil. Anda dapat mencegah masalah ini dengan membuat teks di UI aplikasi Anda cukup besar. Namun, itu menantang bagi aplikasi yang menampilkan teks dalam jumlah besar, atau teks yang diselingi dengan elemen visual lainnya. Dalam kasus seperti itu, pastikan aplikasi berinteraksi dengan benar dengan fitur sistem yang dapat meningkatkan skala tampilan, sehingga teks apa pun dalam aplikasi ditingkatkan bersama dengannya. (Beberapa pengguna mengubah nilai dpi sebagai opsi aksesibilitas. Opsi tersebut tersedia dari Membuat hal-hal di layar lebih besar dalam Kemudahan Akses, yang mengalihkan ke Antarmuka Pengguna Panel Kontrol untuk Tampilan dan Tampilan Personalisasi / .)

Mendukung tema kontras tinggi

Kontrol UI menggunakan representasi visual yang didefinisikan sebagai bagian dari kamus sumber daya XAML tema. Satu atau beberapa tema ini secara khusus digunakan ketika sistem diatur untuk kontras tinggi. Ketika pengguna beralih ke kontras tinggi, dengan mencari tema yang sesuai dari kamus sumber daya secara dinamis, semua kontrol UI Anda juga akan menggunakan tema kontras tinggi yang sesuai. Pastikan Anda belum menonaktifkan tema dengan menentukan gaya eksplisit atau menggunakan teknik gaya lain yang mencegah tema kontras tinggi memuat dan mengesampingkan perubahan gaya Anda. Untuk informasi selengkapnya, lihat Tema kontras tinggi.

Desain untuk UI alternatif

Saat Anda merancang aplikasi, pertimbangkan bagaimana aplikasi tersebut dapat digunakan oleh orang-orang dengan mobilitas, visi, dan pendengaran terbatas. Karena produk teknologi bantu memanfaatkan UI standar secara ekstensif, sangat penting untuk memberikan dukungan keyboard dan pembaca layar yang baik meskipun Anda tidak membuat penyesuaian lain untuk aksesibilitas.

Dalam banyak kasus, Anda dapat menyampaikan informasi penting dengan menggunakan beberapa teknik untuk memperlebar audiens Anda. Misalnya, Anda dapat menyoroti informasi menggunakan informasi ikon dan warna untuk membantu pengguna yang buta warna, dan Anda dapat menampilkan pemberitahuan visual bersama dengan efek suara untuk membantu pengguna yang tuli atau sulit mendengar.

Jika perlu, Anda dapat memberikan elemen antarmuka pengguna alternatif yang dapat diakses yang sepenuhnya menghapus elemen dan animasi yang tidak penting, dan memberikan penyederhanaan lain untuk menyederhanakan pengalaman pengguna. Contoh kode berikut menunjukkan cara menampilkan satu instans UserControl sebagai pengganti instans lain tergantung pada pengaturan pengguna.

XAML

<StackPanel x:Name="LayoutRoot" Background="White">

  <CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
    Show Accessible UI
  </CheckBox>

  <UserControl x:Name="ContentBlock">
    <local:ContentPage/>
  </UserControl>

</StackPanel>

Visual Basic

Private Sub ShowAccessibleUICheckBox_Click(ByVal sender As Object,
    ByVal e As RoutedEventArgs)

    If (ShowAccessibleUICheckBox.IsChecked.Value) Then
        ContentBlock.Content = New AccessibleContentPage()
    Else
        ContentBlock.Content = New ContentPage()
    End If
End Sub

C#

private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if ((sender as CheckBox).IsChecked.Value)
    {
        ContentBlock.Content = new AccessibleContentPage();
    }
    else
    {
        ContentBlock.Content = new ContentPage();
    }
}

Verifikasi dan penerbitan

Untuk informasi selengkapnya tentang deklarasi aksesibilitas dan penerbitan aplikasi Anda, lihat Aksesibilitas di Toko.

Catatan

Mendeklarasikan aplikasi sebagai dapat diakses hanya relevan dengan Microsoft Store.

Dukungan teknologi bantuan dalam kontrol kustom

Saat Anda membuat kontrol kustom, sebaiknya Anda juga menerapkan atau memperluas satu atau beberapa subkelas AutomationPeer untuk memberikan dukungan aksesibilitas. Dalam beberapa kasus, selama Anda menggunakan kelas serekan yang sama seperti yang digunakan oleh kelas kontrol dasar, dukungan otomatisasi untuk kelas turunan Anda memadai pada tingkat dasar. Namun, Anda harus menguji ini, dan menerapkan serekan masih direkomendasikan sebagai praktik terbaik sehingga serekan dapat melaporkan nama kelas kelas kelas baru Anda dengan benar. Menerapkan rekan otomatisasi kustom memiliki beberapa langkah yang terlibat. Untuk informasi selengkapnya, lihat Rekan otomatisasi kustom.

Dukungan teknologi bantuan dalam aplikasi yang mendukung interop XAML / Microsoft DirectX

Konten Microsoft DirectX yang dihosting di UI XAML (menggunakan SwapChainPanel atau SurfaceImageSource) tidak dapat diakses secara default. Sampel interop XAML SwapChainPanel DirectX menunjukkan cara membuat rekan Automation UI untuk konten DirectX yang dihosting. Teknik ini membuat konten yang dihosting dapat diakses melalui Automasi UI.

Contoh

Tip

Buka aplikasi Galeri WinUI 3 dan lihat prinsip Aksesibilitas berikut ini dalam tindakan:

Aplikasi Galeri WinUI 3 mencakup contoh interaktif dari sebagian besar kontrol, fitur, dan fungsi WinUI 3. Dapatkan aplikasi dari Microsoft Store atau dapatkan kode sumber di GitHub