Aksesibilitas (a11y)

Ekstensi memungkinkan pengguna menciptakan pengalaman penjelajahan yang ideal, yang disesuaikan dengan kemampuan dan preferensi seseorang. Ekstensi harus menyertakan komponen aksesibilitas yang mendorong basis pengguna yang inklusif dengan memungkinkan pengguna penyandang gangguan penglihatan, gangguan pendengaran, keterbatasan ketangkasan, dan disabilitas lainnya untuk mengakses ekstensi.

Semua orang, bukan hanya pengguna berkebutuhan khusus, bisa mendapatkan manfaat dari fitur aksesibilitas. Pengguna dengan gangguan penglihatan, ketangkasan yang rendah, dan pengguna super dapat memanfaatkan pintasan keyboard. Teks dan transkrip sangat penting bagi pengguna tunarungu, tetapi juga membantu peserta didik bahasa.

Orang dapat berinteraksi dengan ekstensi dalam berbagai cara. Beberapa pengguna memiliki monitor, keyboard, dan mouse standar - atau mungkin bergantung pada pembesar layar dan mungkin pembaca layar. Meskipun tidak mungkin untuk memprediksi alat apa yang akan digunakan orang untuk mengakses ekstensi, ada langkah-langkah yang dapat dilakukan oleh setiap developer untuk membuat ekstensi semudah mungkin.

Mengintegrasikan kontrol UI yang mudah diakses

Jika tidak dapat mengakses kontrol antarmuka pengguna, pengguna tidak dapat menggunakan ekstensi. Cara termudah untuk membuat UI yang mudah diakses adalah dengan menggunakan kontrol HTML standar.

Kontrol standar

Jika memungkinkan, gunakan kontrol UI HTML standar. Kontrol HTML standar dapat diakses dari keyboard, dapat diskalakan dengan mudah, dan umumnya dipahami oleh pembaca layar.

Screenshot dan kode untuk tombol, kotak centang, radio, teks, pilih/opsi, dan link

WAI-ARIA dalam kontrol kustom

Web Accessibility Initiative - Accessible Rich Internet Applications, WAI-ARIA, adalah spesifikasi untuk membuat kontrol UI dapat diakses oleh pembaca layar melalui kumpulan standar atribut DOM. Atribut ini memberikan informasi kepada pembaca layar tentang fungsi dan status kontrol saat ini di halaman web.

Untuk menambahkan dukungan WAI-ARIA ke kontrol kustom, elemen DOM ekstensi perlu dimodifikasi agar menyertakan atribut yang digunakan Chrome untuk memunculkan peristiwa selama interaksi pengguna. Pembaca layar merespons peristiwa ini dan menjelaskan fungsi kontrol. Atribut DOM yang ditentukan oleh WAI-ARIA diklasifikasikan menjadi peran, status, dan properti.

<div role="toolbar">

Properti aria-activedescendant menentukan turunan toolbar mana yang menerima fokus saat toolbar menerima fokus. Kode tabindex="0" menentukan bahwa toolbar menerima fokus dalam urutan dokumen.

Perhatikan spesifikasi lengkap untuk contoh toolbar di bawah ini:

<div role="toolbar" tabindex="0" aria-activedescendant="button1">
  <img src="buttoncut.png" role="button" alt="cut" id="button1">
  <img src="buttoncopy.png" role="button" alt="copy" id="button2">
  <img src="buttonpaste.png" role="button" alt="paste" id="button3">
</div>

Setelah peran, status, dan properti WAI-ARIA ditambahkan ke DOM kontrol, Google Chrome akan memunculkan peristiwa yang sesuai ke pembaca layar. Karena dukungan WAI-ARIA masih dalam proses, Google Chrome mungkin tidak memunculkan peristiwa untuk setiap properti WAI-ARIA, dan pembaca layar mungkin tidak mengenali semua peristiwa yang dimunculkan.

Untuk tutorial singkat cara menambahkan kontrol WAI-ARIA ke kontrol kustom, lihat presentasi Dave Raggett dari WWW2010.

Fokus di kontrol kustom

Fokus keyboard sangat penting bagi pengguna yang membuka web tanpa mouse. Pastikan kontrol operasi dan navigasi, seperti tombol, kotak daftar, dan panel menu dapat menerima fokus keyboard.

Secara default, satu-satunya elemen di DOM HTML yang dapat menerima fokus keyboard adalah anchor, tombol, dan kontrol formulir. Namun, menetapkan atribut HTML tabIndex ke 0 akan menempatkan elemen DOM dalam urutan tab default, sehingga dapat menerima fokus keyboard.

element.tabIndex = 0
element.focus();

Menyetel tabIndex = -1 akan menghapus elemen dari urutan tab, tetapi masih memungkinkan elemen menerima fokus keyboard secara terprogram.

Mendukung akses keyboard

Ekstensi harus dapat digunakan hanya dengan keyboard, sehingga memungkinkan pengguna yang tidak dapat menggunakan mouse, dan mendukung pengguna yang tidak menggunakan mouse, untuk mengaksesnya.

Periksa apakah pengguna dapat menavigasi di antara bagian ekstensi yang berbeda tanpa menggunakan mouse. Periksa apakah setiap penggunaan popup dapat dinavigasi dengan keyboard. Gunakan pintasan keyboard Chrome untuk menentukan apakah ekstensi dapat dibuka.

Pastikan Anda dapat melihat bagian antarmuka mana yang memiliki fokus keyboard. Biasanya garis fokus bergerak di sekitar antarmuka, tetapi jika CSS digunakan terlalu banyak, garis batas mungkin akan terhalang atau kontrasnya dikurangi.

Garis fokus pada tombol Telusuri

Garis besar fokus pada salah satu rangkaian tautan

Pintasan

Meskipun strategi navigasi keyboard yang paling umum melibatkan penggunaan tombol Tab untuk memutar fokus melalui antarmuka ekstensi, tombol ini tidak selalu menjadi opsi yang paling mudah atau paling efisien.

Pengendali keyboard JavaScript sederhana dapat terlihat seperti berikut. Perhatikan bagaimana properti WAI-ARIA aria-activedescendant diperbarui sebagai respons terhadap input pengguna untuk mencerminkan tombol toolbar yang aktif saat ini.

 function optionKeyEvent(event) {
  var tb = event.target;
  var buttonid;

  ENTER_KEYCODE = 13;
  RIGHT_KEYCODE = 39;
  LEFT_KEYCODE = 37;
  // Partial sample code for processing arrow keys.
  if (event.type == "keydown") {
    // Implement circular keyboard navigation within the toolbar buttons
    if (event.keyCode == ENTER_KEYCODE) {
      ExecuteButtonAction(getCurrentButtonID());
      // getCurrentButtonID defined elsewhere
    } else if (event.keyCode == event.RIGHT_KEYCODE) {
      // Change the active toolbar button to the one to the right (circular).
      var buttonid = getNextButtonID();
      // getNextButtonID defined elsewhere
      tb.setAttribute("aria-activedescendant", buttonid);
    } else if (event.keyCode == event.LEFT_KEYCODE) {
      // Change the active toolbar button to the one to the left (circular).
      var buttonid = getPrevButtonID();
      // getPrevButtonID defined elsewhere
      tb.setAttribute("aria-activedescendant", buttonid);
    } else {
      return true;
    }
    return false;
  }
}
<div role="toolbar" tabindex="0" aria-activedescendant="button1" id="tb1"
     onkeydown="return optionKeyEvent(event);"
     onkeypress="return optionKeyEvent(event);">
  <img src="buttoncut" role="button" alt="cut" id="button1">
  <img src="buttoncopy" role="button" alt="copy" id="button2">
  <img src="buttonpaste" role="button" alt="paste" id="button3">
</div>

Ekstensi dapat membuat pintasan keyboard eksplisit ke elemen UI ekstensi yang penting. Untuk menerapkan pintasan ini, hubungkan pemroses peristiwa keyboard ke kontrol. Buat pengguna mengetahui pintasan yang tersedia dengan memberikannya di halaman opsi.

Menyediakan konten yang dapat diakses

Menyediakan konten yang mudah diakses adalah hal penting bagi semua pengguna. Banyak pedoman berikut mungkin terdengar familier, karena pedoman tersebut mencerminkan praktik yang baik untuk semua konten web.

Teks

Pilihan font dan ukuran teks memengaruhi seberapa mudah konten ekstensi dibaca. Pengguna dengan masalah penglihatan mungkin perlu meningkatkan ukuran teks ekstensi. Jika menggunakan pintasan keyboard, pastikan pintasan tersebut tidak mengganggu pintasan zoom bawaan Chrome.

Sebagai indikator fleksibilitas UI ekstensi, terapkan pengujian 200%; jika ukuran teks atau zoom halaman ditingkatkan 200%, apakah teks tersebut masih dapat digunakan?

Hindari menyisipkan teks ke dalam gambar. Pengguna tidak dapat mengubah ukuran dan pembaca layar tidak dapat menafsirkan gambar. Sebagai gantinya, pilih font web bergaya, seperti salah satu font yang ada dalam Google Font API. Font web dapat diskalakan ke berbagai ukuran dan dapat diakses oleh pengguna pembaca layar.

Warna

Harus ada kontras yang cukup antara warna latar belakang dan warna teks dalam ekstensi. Gunakan alat pemeriksaan kontras untuk menguji apakah warna latar belakang dan latar depan memberikan kontras yang sesuai.

Saat mengevaluasi kontras, pastikan setiap bagian ekstensi yang mengandalkan grafis untuk menyampaikan informasi terlihat jelas. Untuk gambar tertentu, alat seperti Coblis—Color Blindness Simulator dapat digunakan untuk melihat tampilan gambar dalam berbagai bentuk kekurangan warna.

Pertimbangkan untuk menawarkan tema warna yang berbeda, atau beri pengguna kemampuan untuk menyesuaikan skema warna, untuk membuat kontras yang lebih baik.

Audio

Jika ekstensi mengandalkan suara atau video untuk menyampaikan informasi, pastikan teks atau transkrip tersedia. Lihat Pedoman Program Media dengan Teks dan Deskripsi untuk mengetahui informasi selengkapnya tentang teks.

Gambar

Menyediakan teks alternatif yang informatif untuk gambar.

<img src="img.jpg" alt="The logo for the extension">

Gunakan teks alternatif untuk menyatakan tujuan gambar, bukan deskripsi literal dari konten gambar. Gambar pengatur jarak atau gambar yang sepenuhnya dekoratif harus memiliki teks alternatif "" kosong atau dihapus dari HTML sepenuhnya dan ditempatkan di CSS.

Jika ekstensi harus menggunakan teks dalam gambar, sertakan teks gambar dalam teks alternatif. Referensi yang bagus untuk dirujuk adalah artikel WebAIM tentang teks alternatif yang sesuai.

Pelajari lebih lanjut

Pelajari lebih lanjut tentang aksesibilitas di Chrome dengan melihat saluran A11ycasts dan membaca Dokumentasi Teknis Aksesibilitas Chromium.