Menyembunyikan konten dari teknologi pendukung
aria-hidden
Teknik penting lainnya dalam penyempurnaan pengalaman untuk pengguna teknologi pendukung antara lain memastikan bahwa hanya bagian halaman yang relevan yang diekspos ke teknologi pendukung. Ada beberapa cara untuk memastikan bahwa bagian DOM tidak diekspos ke API aksesibilitas.
Pertama, apa pun yang secara eksplisit disembunyikan dari DOM juga tidak akan disertakan
dalam hierarki aksesibilitas. Jadi, apa pun yang memiliki gaya CSS visibility:
hidden
atau display: none
atau menggunakan atribut hidden
HTML5 juga akan
disembunyikan dari pengguna teknologi pendukung.
Namun, elemen yang secara visual tidak dirender, tetapi tidak secara eksplisit disembunyikan, masih disertakan dalam hierarki aksesibilitas. Salah satu teknik umum adalah menyertakan "teks khusus pembaca layar" dalam elemen yang diposisikan di luar layar secara mutlak.
.sr-only {
position: absolute;
left: -10000px;
width: 1px;
height: 1px;
overflow: hidden;
}
Selain itu, seperti yang telah kita lihat, Anda dapat menyediakan teks khusus pembaca layar melalui
atribut aria-label
, aria-labelledby
, atau aria-describedby
yang mereferensikan
elemen yang disembunyikan.
Lihat artikel WebAIM ini tentang Teknik untuk menyembunyikan teks untuk informasi selengkapnya tentang cara membuat teks "khusus pembaca layar".
Terakhir, ARIA menyediakan mekanisme untuk mengecualikan konten dari teknologi
pendukung yang tidak disembunyikan secara visual, menggunakan atribut aria-hidden
.
Menerapkan atribut ini ke sebuah elemen secara efektif akan menghapusnya dan semua
turunannya dari hierarki aksesibilitas. Satu-satunya pengecualian adalah elemen
yang dirujuk oleh atribut aria-labelledby
atau aria-describedby
.
<div class="deck">
<div class="slide" aria-hidden="true">
Sales Targets
</div>
<div class="slide">
Quarterly Sales
</div>
<div class="slide" aria-hidden="true">
Action Items
</div>
</div>
Misalnya, Anda dapat menggunakan aria-hidden
jika membuat beberapa UI modal yang
memblokir akses ke halaman utama. Dalam hal ini, pengguna yang berpenglihatan normal mungkin akan melihat semacam
overlay semi-transparan yang menunjukkan bahwa sebagian besar halaman saat ini tidak dapat
digunakan, tetapi pengguna pembaca layar mungkin masih dapat menjelajahi bagian lain
halaman. Dalam hal ini, serta membuat perangkap keyboard dijelaskan
sebelumnya,
Anda juga harus memastikan bahwa bagian halaman yang saat ini berada di luar cakupan
juga aria-hidden
.
Setelah Anda memahami dasar-dasar ARIA, cara memainkannya dengan semantik HTML native, dan cara menggunakannya untuk melakukan pembedahan yang cukup besar pada hierarki aksesibilitas serta mengubah semantik elemen tunggal, mari kita lihat cara menggunakannya untuk menyampaikan informasi yang sensitif terhadap waktu.
aria-live
aria-live
memungkinkan developer menandai bagian halaman sebagai "live" dalam arti bahwa
pembaruan harus segera dikomunikasikan kepada pengguna, terlepas dari posisi
halaman, bukan hanya saat mereka menjelajahi bagian halaman tersebut. Jika
elemen memiliki atribut aria-live
, bagian halaman yang berisi elemen tersebut dan
turunannya disebut live region.
Misalnya, area aktif dapat berupa pesan status yang muncul sebagai hasil
dari tindakan pengguna. Jika pesan tersebut cukup penting untuk menarik perhatian pengguna
yang berpenglihatan normal, berarti cukup penting untuk mengarahkan perhatian pengguna
teknologi pendukung ke pesan tersebut dengan menyetel atribut aria-live
-nya. Bandingkan div
biasa ini
<div class="status">Your message has been sent.</div>
dengan pasangan "live"-nya.
<div class="status" aria-live="polite">Your message has been sent.</div>
aria-live
memiliki tiga nilai yang diizinkan: polite
, assertive
, dan off
.
aria-live="polite"
memberi tahu teknologi pendukung untuk memberi tahu pengguna tentang perubahan ini saat telah menyelesaikan pekerjaan yang sedang dilakukan. Cocok sekali digunakan jika ada sesuatu yang penting, tetapi tidak mendesak, dan merupakan alasan untuk mayoritas penggunaanaria-live
.aria-live="assertive"
memberi tahu teknologi pendukung untuk menginterupsi apa pun yang dilakukannya dan segera memperingatkan pengguna mengenai perubahan ini. Ini hanya untuk pembaruan penting dan mendesak, seperti pesan status seperti "Terjadi error server dan perubahan Anda tidak disimpan; harap muat ulang halaman", atau pembaruan pada kolom input sebagai hasil langsung dari tindakan pengguna, seperti tombol pada widget stepper.aria-live="off"
memberi tahu teknologi pendukung untuk menangguhkan gangguanaria-live
untuk sementara.
Ada beberapa trik untuk memastikan live-region Anda bekerja dengan benar.
Pertama, region aria-live
Anda mungkin harus ditetapkan pada pemuatan halaman awal.
Ini bukan aturan mutlak, tetapi jika Anda mengalami kesulitan dengan wilayah aria-live
, hal ini mungkin menjadi masalah.
Kedua, pembaca layar yang berbeda akan bereaksi berbeda terhadap berbagai jenis
perubahan. Misalnya, Anda dapat memicu pemberitahuan di beberapa pembaca layar
dengan mengubah gaya hidden
elemen turunan dari true ke false.
Atribut lain yang berfungsi dengan aria-live
membantu Anda menyesuaikan apa yang
dikomunikasikan kepada pengguna saat wilayah aktif berubah.
aria-atomic
menunjukkan apakah seluruh region harus dianggap sebagai
satu kesatuan saat mengomunikasikan update. Misalnya, jika widget tanggal yang terdiri dari
hari, bulan, dan tahun memiliki aria-live=true
dan aria-atomic=true
, dan pengguna
menggunakan kontrol stepper untuk mengubah nilai bulan saja, isi lengkap
widget tanggal akan dibaca lagi. Nilai aria-atomic
dapat berupa true
atau false
(default).
aria-relevant
menunjukkan jenis perubahan yang harus ditampilkan kepada pengguna.
Ada beberapa opsi yang dapat digunakan secara terpisah atau sebagai daftar token.
- additions, yang berarti bahwa setiap elemen yang ditambahkan ke area aktif
signifikan. Misalnya, menambahkan span ke log pesan status yang ada
berarti span tersebut akan diumumkan kepada pengguna (dengan asumsi
bahwa
aria-atomic
adalahfalse
). - text, yang berarti konten teks yang ditambahkan ke node turunan apa pun
relevan. Misalnya, mengubah properti
textContent
kolom teks kustom akan membacakan teks yang dimodifikasi kepada pengguna. - removals, yang berarti penghapusan teks atau node turunan harus disampaikan kepada pengguna.
- all, yang berarti semua perubahan adalah relevan. Namun, nilai default untuk
aria-relevant
adalahadditions text
, yang berarti jika Anda tidak menentukanaria-relevant
, pengguna akan diberi tahu tentang penambahan apa pun pada elemen, yang kemungkinan besar merupakan hal yang memang Anda inginkan.
Terakhir, aria-busy
memungkinkan Anda memberi tahu teknologi pendukung agar
mengabaikan perubahan pada elemen untuk sementara, seperti saat ada yang dimuat. Setelah
semuanya diterapkan, aria-busy
harus disetel ke false untuk menormalkan
operasi pembaca.