Semantik dan pembaca layar

Pernahkah Anda bertanya-tanya bagaimana teknologi pendukung, seperti pembaca layar, mengetahui apa yang harus diumumkan kepada pengguna? Jawabannya adalah bahwa teknologi ini mengandalkan developer yang me-markup halaman mereka dengan HTML semantik. Namun, apa itu semantik, dan bagaimana pembaca layar menggunakannya?

Kemampuan dan semantik

Sebelum mempelajari semantik, sebaiknya pahami istilah lain: kemampuan. {i>affordance<i} adalah objek yang menawarkan, atau memberi, penggunanya peluang untuk melakukan suatu tindakan. Contoh klasiknya adalah teko:

Gagang teko adalah kemampuan alami.

Teko ini tidak memerlukan panduan petunjuk. Sebagai gantinya, desain fisiknya akan memberi tahu pengguna cara pengoperasiannya. Alat ini memiliki handle, dan karena Anda telah melihat objek lain di dunia dengan handle yang serupa, Anda dapat menyimpulkan cara mengambil dan mengoperasikannya.

Ketika membuat antarmuka pengguna grafis, kita menggunakan hal-hal seperti CSS untuk menambahkan kemampuan visual ke UI. Misalnya, Anda dapat memberi tombol sebuah drop shadow dan batas sehingga menyerupai tombol sebenarnya di dunia nyata.

Namun, jika pengguna tidak dapat melihat layar, kemampuan visual ini tidak akan disampaikan kepada mereka. Oleh karena itu, Anda perlu memastikan bahwa UI dibuat dengan cara yang dapat menyampaikan kemampuan yang sama ini kepada teknologi pendukung. Eksposur non-visual dari kemampuan elemen UI ini disebut semantik.

Menggunakan HTML semantik

Cara termudah untuk menyampaikan semantik yang tepat adalah dengan menggunakan elemen HTML yang kaya secara semantik.

Dengan CSS, Anda dapat menata gaya elemen <div> dan <button> agar menyampaikan kemampuan visual yang sama, tetapi kedua pengalaman tersebut sangat berbeda saat menggunakan pembaca layar. <div> hanyalah elemen pengelompokan generik, sehingga pembaca layar hanya membacakan konten teks <div>. <button> diumumkan sebagai "tombol", sinyal yang jauh lebih kuat bagi pengguna bahwa mereka dapat berinteraksi dengan sesuatu hal tersebut.

Solusi paling sederhana dan sering kali untuk masalah ini adalah dengan menghindari kontrol interaktif kustom sama sekali. Misalnya, ganti <div> yang bertindak seperti tombol dengan <button> yang sebenarnya.

Properti semantik dan hierarki aksesibilitas

Secara umum, setiap elemen HTML akan memiliki beberapa properti semantik berikut:

  • Peran atau jenis
  • Nama
  • value (opsional)
  • state (opsional)

Peran elemen menjelaskan jenisnya, misalnya, "tombol", "input", atau bahkan hanya "group" untuk hal-hal seperti elemen div dan span.

Nama elemen adalah label yang dihitung. Pembaca layar biasanya mengucapkan nama elemen diikuti dengan perannya, misalnya "Daftar, tombol". Algoritma yang menentukan nama elemen berdasarkan hal-hal seperti apakah ada konten teks di dalam elemen, apakah elemen tersebut memiliki atribut seperti title atau placeholder, apakah elemen tersebut terkait dengan elemen <label> yang sebenarnya, dan apakah elemen tersebut memiliki atribut ARIA seperti aria-label dan aria-labelledby atau tidak.

Beberapa elemen mungkin memiliki nilai. Misalnya, <input type="text"> mungkin memiliki nilai yang mencerminkan apa pun yang telah diketik pengguna di kolom teks.

Beberapa elemen mungkin juga memiliki state, yang menunjukkan statusnya saat ini. Misalnya, elemen <select> dapat berada dalam status diperluas atau diciutkan, bergantung pada apakah elemen tersebut terbuka atau tertutup.

Hierarki aksesibilitas

Untuk setiap node dalam DOM, browser akan menentukan apakah node "menarik" secara semantik dan menambahkannya ke hierarki aksesibilitas. Saat teknologi pendukung, seperti pembaca layar, menyediakan UI alternatif kepada pengguna, teknologi tersebut sering kali melakukannya dengan mengikuti hierarki aksesibilitas ini.

Dengan Chrome DevTools, Anda dapat memeriksa properti semantik elemen dan mempelajari posisinya di hierarki aksesibilitas.

Langkah berikutnya

Setelah mengetahui sedikit tentang semantik dan bagaimana semantik membantu navigasi pembaca layar, Anda akan mempertimbangkan untuk melihat halaman yang Anda buat secara berbeda. Di bagian berikutnya, kita akan mundur ke belakang dan mempertimbangkan bagaimana seluruh garis batas halaman dapat disampaikan menggunakan judul dan penanda yang efektif.