Pengantar ARIA

Pengantar ARIA dan semantik HTML non-native

Alice Boxhall
Alice Boxhall
Dave Gash
Dave Gash
Meggin Kearney
Meggin Kearney

Sejauh ini, kami telah menyarankan penggunaan elemen HTML native karena memberi Anda fokus, dukungan keyboard, dan semantik bawaan, tetapi ada kalanya tata letak yang sederhana dan HTML native tidak dapat melakukan tugasnya. Misalnya, saat ini tidak ada elemen HTML terstandardisasi untuk konstruksi UI yang sangat umum, yaitu menu pop-up. Atau tidak ada elemen HTML yang menyediakan karakteristik semantik seperti "pengguna perlu mengetahui tentang hal ini secepatnya".

Dalam pelajaran ini, kita akan mempelajari cara mengekspresikan semantik yang tidak dapat diekspresikan oleh HTML.

Spesifikasi Web Accessibility Initiative's Accessible Rich Internet Applications (WAI-ARIA, atau hanya ARIA) cocok untuk menjembatani area dengan masalah aksesibilitas yang tidak dapat dikelola dengan HTML native. Hal ini dapat dilakukan dengan memungkinkan Anda menentukan atribut yang memodifikasi cara elemen diterjemahkan ke dalam hierarki aksesibilitas. Mari kita lihat contohnya.

Dalam cuplikan kode berikut, kita menggunakan item daftar sebagai jenis kotak centang kustom. Class "checkbox" CSS memberi elemen karakteristik visual yang diperlukan.

<li tabindex="0" class="checkbox" checked>
    Receive promotional offers
</li>

Meskipun berfungsi dengan baik bagi pengguna yang berpenglihatan normal, pembaca layar tidak akan memberikan indikasi bahwa elemen tersebut dimaksudkan sebagai kotak centang, sehingga pengguna yang mengalami gangguan penglihatan mungkin melewatkan elemen tersebut sepenuhnya.

Namun, dengan menggunakan atribut ARIA, kita dapat memberi elemen tersebut informasi yang terlewat sehingga pembaca layar dapat menafsirkannya dengan benar. Di sini, kita telah menambahkan atribut role dan aria-checked untuk mengidentifikasi secara eksplisit elemen tersebut sebagai kotak centang dan untuk menentukan bahwa elemen tersebut dicentang secara default. Item daftar kini akan ditambahkan ke pohon aksesibilitas dan pembaca layar akan melaporkannya dengan benar sebagai kotak centang.

<li tabindex="0" class="checkbox" role="checkbox" checked aria-checked="true">
    Receive promotional offers
</li>

ARIA bekerja dengan mengubah dan menambah pohon aksesibilitas DOM standar.

Hierarki aksesibilitas DOM standar.
Pohon aksesibilitas yang ditambahkan ARIA.

Meskipun ARIA memungkinkan kita secara halus (atau bahkan secara radikal) memodifikasi hierarki aksesibilitas untuk elemen apa pun di halaman, hanya elemen itu yang berubah. ARIA tidak menambah perilaku inheren elemen; ARIA tidak akan membuat elemen dapat difokuskan atau memberinya pemroses peristiwa keyboard. Itu tetap merupakan bagian dari tugas pengembangan kami.

Penting untuk dipahami bahwa semantik default tidak perlu didefinisikan ulang. Apa pun penggunaannya, elemen <input type="checkbox"> HTML standar tidak memerlukan atribut ARIA role="checkbox" tambahan untuk diumumkan dengan benar.

Perlu diperhatikan juga bahwa elemen HTML tertentu memiliki batasan terkait peran dan atribut ARIA yang dapat digunakan pada elemen tersebut. Misalnya, mungkin tidak ada peran/atribut tambahan yang diterapkan pada elemen <input type="text"> standar.

Lihat spesifikasi ARIA dalam HTML untuk mengetahui informasi selengkapnya.

Mari kita lihat kemampuan lain yang ditawarkan ARIA.

Apa yang dapat dilakukan ARIA?

Seperti yang Anda lihat pada contoh kotak centang, ARIA dapat memodifikasi semantik elemen yang ada atau menambahkan semantik ke elemen yang tidak memiliki semantik native. Pola ini juga dapat mengekspresikan pola semantik yang tidak ada sama sekali di HTML, seperti menu atau panel tab. Sering kali, ARIA memungkinkan kita membuat elemen bertipe widget yang tidak akan memungkinkan dengan HTML biasa.

  • Misalnya, ARIA dapat menambahkan label dan teks deskripsi tambahan yang hanya diekspos ke API teknologi pendukung.
<button aria-label="screen reader only label"></button>
  • ARIA dapat menyatakan hubungan semantik antar elemen yang memperluas hubungan induk/turunan standar, seperti scrollbar kustom yang mengontrol wilayah tertentu.
    <div role="scrollbar" aria-controls="main"></div>
    <div id="main">
    . . .
    </div>
  • ARIA juga dapat membuat bagian halaman "aktif", sehingga segera memberi tahu teknologi pendukung saat berubah.
    <div aria-live="polite">
      <span>GOOG: $400</span>
    </div>

Salah satu aspek inti sistem ARIA adalah kumpulan peran-nya. Peran dalam istilah aksesibilitas setara dengan indikator singkatan untuk pola UI tertentu. ARIA menyediakan kosakata pola yang dapat kita gunakan melalui atribut role pada elemen HTML apa pun.

Saat menerapkan role="checkbox" dalam contoh sebelumnya, kita memberi tahu teknologi pendukung bahwa elemen harus mengikuti pola "kotak centang". Artinya, kami menjamin bahwa status tersebut akan dicentang (baik dicentang atau tidak dicentang), dan status tersebut dapat dialihkan menggunakan mouse atau tombol spasi, seperti elemen kotak centang HTML standar.

Faktanya, karena interaksi keyboard sangat terlihat dalam penggunaan pembaca layar, sangat penting untuk memastikan bahwa, saat membuat widget kustom, atribut role selalu diterapkan di tempat yang sama dengan atribut tabindex; hal ini memastikan bahwa peristiwa keyboard mengarah ke tempat yang tepat dan saat fokus berada pada elemen, perannya disampaikan secara akurat.

Spesifikasi ARIA menjelaskan taksonomi nilai yang memungkinkan untuk atribut role dan atribut ARIA terkait yang dapat digunakan bersama dengan peran tersebut. Ini adalah sumber informasi definitif terbaik tentang cara peran dan atribut ARIA bekerja sama dan bagaimana keduanya dapat digunakan dengan cara yang didukung oleh browser dan teknologi pendukung.

Daftar semua peran ARIA yang tersedia.

Namun, spesifikasinya sangat padat; tempat yang lebih mudah dicapai untuk memulai adalah dokumen Praktik Penulisan ARIA , yang mengeksplorasi praktik terbaik untuk menggunakan peran dan properti ARIA yang tersedia.

ARIA juga menawarkan peran landmark yang memperluas opsi yang tersedia di HTML5. Lihat spesifikasi Pola Desain Peran Penanda untuk mengetahui informasi selengkapnya.