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 terlihataria-labelledby— merujuk ke teks terlihat yang sudah ada berdasarkan idaria-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
- Kapan Menggunakan ARIA dibandingkan HTML Bawaan
- role button alert dialog dan landmark
- aria-label aria-labelledby dan aria-describedby
- aria-hidden dan aria-live