0Pricing
HTML Academy · Pelajaran

aria-label aria-labelledby dan aria-describedby

Berikan nama dan deskripsi yang mudah diakses untuk elemen.

aria-label aria-labelledby dan aria-describedby adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.

Mengapa Nama Aksesibel Penting

Setiap elemen interaktif memerlukan nama aksesibel — string teks yang digunakan teknologi bantu untuk mengidentifikasinya. Tanpa nama aksesibel, pembaca layar tidak dapat memberi tahu pengguna fungsi tombol atau masukan.

aria-label

aria-label menyediakan nama aksesibel berupa teks secara langsung pada sebuah elemen:

<button aria-label="Close dialog">×</button>
<!-- The × character has no accessible meaning
     aria-label provides the name: 'Close dialog, button' -->

<input type="search" aria-label="Search products">
<!-- No visible label — aria-label provides the accessible name -->

aria-labelledby

aria-labelledby merujuk ke elemen lain sebagai nama aksesibel:

<h2 id="section-title">Billing Information</h2>
<form aria-labelledby="section-title">
  <!-- Form's accessible name is 'Billing Information' -->
</form>

<!-- Multiple id references: -->
<button aria-labelledby="action-verb object-name">
  Delete
</button>
<span id="object-name" hidden>User Account</span>
<!-- Screen reader: 'Delete User Account, button' -->

aria-describedby

aria-describedby menyediakan deskripsi tambahan (pelengkap nama):

<label for="pwd">Password</label>
<input
  type="password"
  id="pwd"
  aria-describedby="pwd-hint"
>
<p id="pwd-hint">Must be 8+ characters with one uppercase letter and one number.</p>
<!-- Screen reader: 'Password [input]' then reads the description on focus -->

Label vs Deskripsi

Perbedaan antara nama dan deskripsi aksesibel:

  • Nama aksesibel — mengidentifikasi elemen (aria-label, aria-labelledby, atau elemen label)
  • Deskripsi — melengkapi nama dengan konteks tambahan (aria-describedby)
  • Pembaca layar mengumumkan: nama, peran, status → lalu deskripsi

aria-label pada Penanda Wilayah

Gunakan aria-label untuk membedakan beberapa penanda wilayah dengan jenis yang sama:

<nav aria-label="Primary">...</nav>
<nav aria-label="Breadcrumb">...</nav>

<!-- Screen reader landmark list:
     'Primary, navigation'
     'Breadcrumb, navigation' -->

<!-- When only one nav, aria-label is optional but still helpful -->

aria-labelledby pada Bagian

Hubungkan bagian dengan judulnya untuk memberikan konteks kepada pembaca layar:

<section aria-labelledby="about-heading">
  <h2 id="about-heading">About Our Team</h2>
  <p>We are a team of passionate developers...</p>
</section>
<!-- Screen reader: 'About Our Team, region' when entering section -->

aria-label vs Teks yang Terlihat

aria-label menggantikan teks yang terlihat — gunakan dengan hati-hati:

<button aria-label="Delete account permanently">
  Delete
</button>
<!-- Screen reader hears: 'Delete account permanently'
     Sighted user reads: 'Delete' -->

<!-- Best practice: visible text and aria-label should agree
     If possible, include extra context in visible text too:
     <button>Delete account permanently</button> -->

<!-- aria-label should start with the visible text when possible
     for speech recognition users who use voice commands -->

aria-describedby untuk Kesalahan

Hubungkan pesan kesalahan dengan masukan terkait:

<label for="email">Email</label>
<input
  type="email"
  id="email"
  aria-describedby="email-error"
  aria-invalid="true"
>
<span id="email-error" role="alert">
  Please enter a valid email address.
</span>
<!-- When input receives focus, screen reader reads:
     'Email [field], invalid. Please enter a valid email address.' -->

Beberapa Referensi aria-describedby

aria-describedby dapat merujuk ke beberapa elemen:

<input
  type="password"
  aria-label="New password"
  aria-describedby="pwd-hint pwd-strength"
>
<p id="pwd-hint">Must be 8+ characters.</p>
<meter id="pwd-strength" aria-label="Password strength" value="2" max="4">Medium</meter>
<!-- Both elements are announced as the description -->

Label yang Terlihat vs Tersembunyi

Saat label yang terlihat tidak memungkinkan, gunakan kelas sr-only:

<label for="search" class="sr-only">Search</label>
<input type="search" id="search" placeholder="Search...">

/* Visually hidden but in accessibility tree: */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

Pemeriksaan Singkat

Apa perbedaan antara aria-label dan aria-labelledby?

Ringkasan: Label ARIA

Hal-hal penting tentang penamaan aksesibel:

  • aria-label — nama teks sebaris untuk elemen tanpa label yang terlihat
  • aria-labelledby — merujuk ke teks terlihat yang sudah ada berdasarkan id
  • aria-describedby — deskripsi tambahan (dibacakan setelah nama)
  • Utamakan label yang terlihat dan elemen label HTML bawaan
  • aria-label pada penanda wilayah membedakan beberapa wilayah dengan jenis yang sama

Pertanyaan yang Sering Diajukan

Apakah pelajaran “aria-label aria-labelledby dan aria-describedby” gratis?

Ya — teks lengkap “aria-label aria-labelledby dan aria-describedby” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “aria-label aria-labelledby dan aria-describedby”?

Berikan nama dan deskripsi yang mudah diakses untuk elemen. Kamu berlatih HTML Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai HTML Academy?

Tidak diperlukan pengalaman sebelumnya. HTML Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “aria-label aria-labelledby dan aria-describedby” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran HTML Academy ini?

Ya. Setiap pelajaran HTML Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Kapan Menggunakan ARIA dibandingkan HTML Bawaan
  2. role button alert dialog dan landmark
  3. aria-label aria-labelledby dan aria-describedby
  4. aria-hidden dan aria-live
← Kembali ke HTML Academy