Aksesibilitas (a11y)

Ekstensi memungkinkan pengguna membuat pengalaman penjelajahan yang ideal, yang disesuaikan dengan kemampuan dan preferensi individu. Ekstensi harus menyertakan komponen aksesibilitas yang mendorong basis pengguna inklusif dengan memungkinkan orang dengan gangguan penglihatan, gangguan pendengaran, ketangkasan terbatas, dan disabilitas lainnya untuk mengakses ekstensi.

Semua orang, bukan hanya pengguna dengan kebutuhan khusus, dapat memperoleh manfaat dari fitur aksesibilitas. Pengguna dengan gangguan penglihatan, ketangkasan rendah, dan pengguna berat akan mendapatkan manfaat dari pintasan keyboard. Teks dan transkripsi sangat penting bagi pengguna tunarungu, tetapi juga membantu pelajar bahasa.

Orang dapat berinteraksi dengan ekstensi dengan berbagai cara. Beberapa pengguna memiliki monitor, keyboard, dan mouse standar - atau mereka mungkin bergantung pada kaca pembesar layar dan mungkin pembaca layar. Meskipun tidak mungkin untuk memprediksi alat yang akan digunakan pengguna untuk mengakses ekstensi, ada langkah-langkah yang dapat dilakukan developer mana pun agar ekstensi dapat diakses semudah mungkin.

Mengintegrasikan kontrol UI yang dapat diakses

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

Kontrol standar

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

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

WAI-ARIA di kontrol kustom

Web Accessibility Initiative - Accessible Rich Internet Applications, WAI-ARIA, adalah spesifikasi untuk membuat kontrol UI dapat diakses oleh pembaca layar melalui kumpulan atribut DOM standar. 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 harus diubah untuk menyertakan atribut yang digunakan Chrome untuk memicu 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:

<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 tentang cara menambahkan kontrol WAI-ARIA ke kontrol kustom, lihat presentasi Dave Raggett dari WWW2010.

Fokus dalam kontrol kustom

Fokus pada {i>keyboard<i} sangat penting bagi pengguna yang menavigasi web tanpa {i>mouse<i}. 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 elemen tersebut dapat menerima fokus keyboard.

element.tabIndex = 0
element.focus();

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

Mendukung akses keyboard

Ekstensi harus dapat digunakan hanya dengan keyboard, memungkinkan pengguna yang tidak bisa menggunakan mouse, dan bagi pengguna yang tidak bisa menggunakannya untuk mengaksesnya.

Memeriksa apakah pengguna dapat berpindah di antara bagian ekstensi yang berbeda tanpa menggunakan mouse. Pastikan penggunaan pop-up dapat dinavigasi dengan keyboard. Gunakan pintasan keyboard Chrome untuk menentukan apakah ekstensi dapat dijelajahi.

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

Garis fokus pada tombol Telusuri

Garis batas fokus pada salah satu rangkaian link

Pintasan

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

Pengendali keyboard JavaScript sederhana dapat terlihat seperti berikut. Perhatikan cara properti WAI-ARIA aria-activedescendant diperbarui sebagai respons terhadap input pengguna untuk mencerminkan tombol toolbar 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. Beri tahu pengguna tentang pintasan yang tersedia dengan menyediakannya di halaman opsi.

Menyediakan konten yang dapat diakses

Memberikan konten yang mudah diakses penting bagi semua pengguna. Banyak panduan berikut mungkin terdengar tidak asing, karena mencerminkan praktik yang baik untuk semua konten web.

Teks

Pilihan font dan ukuran teks memengaruhi seberapa mudah dibaca konten ekstensi. Pengguna yang memiliki masalah penglihatan mungkin perlu menambah ukuran teks ekstensi. Jika menggunakan pintasan keyboard, pastikan pintasan tersebut tidak mengganggu pintasan zoom yang ada di Chrome.

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

Hindari memadukan 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 ditemukan di Google Font API. Font web dapat diskalakan ke berbagai ukuran dan dapat diakses oleh orang yang menggunakan 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 bergantung pada grafik 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 memberi pengguna kemampuan untuk menyesuaikan skema warna, guna menciptakan kontras yang lebih baik.

Suara

Jika ekstensi mengandalkan suara atau video untuk menyampaikan informasi, pastikan subtitel atau transkrip tersedia. Lihat Pedoman Program Media yang Dijelaskan dan Berteks untuk mengetahui informasi selengkapnya tentang teks.

Gambar

Berikan 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 murni dekoratif harus memiliki teks alternatif "" kosong atau dihapus sepenuhnya dari HTML dan ditempatkan di CSS.

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

Pelajari lebih lanjut

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