aria-hidden dan aria-live
Sembunyikan elemen dekoratif dan umumkan konten dinamis kepada pembaca layar.
aria-hidden dan aria-live adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.
aria-hidden
aria-hidden="true" menghapus sebuah elemen dari pohon aksesibilitas — pembaca layar melewatinya sepenuhnya:
<!-- Decorative icon: visible but skip by screen readers -->
<span aria-hidden="true">★★★★☆</span>
<span class="sr-only">4 out of 5 stars</span>
<!-- Decorative separator -->
<img src="divider.svg" alt="" aria-hidden="true">
<!-- Note: aria-hidden does NOT affect visibility or tab focus
A button with aria-hidden is still tabbable! -->Kasus Penggunaan aria-hidden
Penggunaan aria-hidden yang sesuai:
<!-- 1. Icons next to descriptive text -->
<button>
<svg aria-hidden="true"><!-- icon --></svg>
Save Document
</button>
<!-- 2. Repeated text in a card link -->
<a href="/blog/post-1">
<span aria-hidden="true">Read more</span>
<span class="sr-only">Read more: HTML5 Forms Guide</span>
</a>
<!-- 3. UI decoration (dots, decorative borders) -->
<span aria-hidden="true">•••</span>Jebakan aria-hidden
Jangan pernah menerapkan aria-hidden pada elemen yang dapat menerima focus:
<!-- BAD: button is in tab order but invisible to screen readers -->
<button aria-hidden="true">Close</button>
<!-- Users reach this via Tab but hear nothing
They cannot tell if they're on a button or lost focus -->
<!-- If you want to hide from both: use hidden attribute -->
<button hidden>Close</button>
<!-- Or: disabled (but disabled removes from tab order) -->
<button disabled aria-hidden="true">Close</button>aria-live
aria-live mengubah suatu wilayah menjadi wilayah dinamis — perubahan akan diumumkan secara otomatis:
<!-- polite: announce when user is idle -->
<div aria-live="polite" id="status"></div>
<!-- assertive: announce immediately, interrupting current speech -->
<div aria-live="assertive" id="errors"></div>
<script>
// Inject text to trigger announcement:
document.getElementById('status').textContent = 'File saved successfully.';
// Screen reader announces this without user moving focus
</script>Nilai aria-live
Tiga nilai aria-live:
off— bawaan: perubahan tidak diumumkanpolite— diumumkan saat pengguna berhenti sejenak; untuk pembaruan yang tidak mendesakassertive— diumumkan segera dan menyela; untuk kesalahan dan peringatan kritis
aria-atomic
aria-atomic mengatur apakah seluruh wilayah atau hanya bagian yang berubah yang diumumkan:
<div aria-live="polite" aria-atomic="true" id="timer">
Time remaining: 05:00
</div>
<!-- aria-atomic="true": announce the whole div each update -->
<!-- Without it: only the changed text node is announced
'Time remaining: 05:00' vs just '05:00' -->
<script>
setInterval(() => {
document.getElementById('timer').textContent = `Time remaining: ${getTime()}`;
}, 1000);
</script>aria-relevant
aria-relevant menentukan jenis perubahan yang diumumkan:
<div
aria-live="polite"
aria-relevant="additions text" <!-- announce added content and text changes -->
id="feed"
>
<!-- New items added here -->
</div>
<!-- Values: additions, removals, text, all
Default: additions text
aria-relevant="removals" needed to announce deleted items -->Praktik Terbaik Wilayah Dinamis
Panduan untuk wilayah dinamis:
- Gunakan satu wilayah dinamis yang tetap ada untuk setiap jenis pengumuman (jangan membuat dan menghapusnya)
- Mulai dengan konten kosong; masukkan teks untuk memicu pengumuman
- Buat pengumuman tetap singkat — pembaca layar dapat menyela atau tertinggal
- Untuk status pemuatan: gunakan polite
- Untuk kesalahan formulir: gunakan assertive atau role="alert"
Pola untuk Notifikasi Pop-up Singkat
Mengumumkan notifikasi pop-up singkat dengan wilayah dinamis:
<div
role="status"
aria-live="polite"
aria-atomic="true"
id="toast-container"
class="sr-only"
></div>
<script>
function showToast(message) {
const container = document.getElementById('toast-container');
container.textContent = '';
// Force rerender for re-announcement:
requestAnimationFrame(() => {
container.textContent = message;
});
}
</script>aria-busy
aria-busy="true" menunjukkan bahwa konten sedang diperbarui:
<div id="feed" aria-live="polite" aria-busy="false">
<!-- content -->
</div>
<script>
const feed = document.getElementById('feed');
feed.setAttribute('aria-busy', 'true');
await loadContent();
feed.innerHTML = newContent;
feed.setAttribute('aria-busy', 'false');
// Only now does the live region announce the update
</script>Pemeriksaan Singkat
Kapan sebaiknya menggunakan aria-live="assertive" dibandingkan "polite"?
Ringkasan: aria-hidden dan aria-live
Hal-hal penting tentang penyembunyian dan wilayah dinamis:
aria-hidden="true"— menghapus dari pohon aksesibilitas (bukan elemen yang dapat menerima focus!)aria-live="polite"— mengumumkan perubahan saat pengguna sedang tidak melakukan apa-apaaria-live="assertive"— mengumumkan segera (untuk kesalahan)aria-atomic="true"— mengumumkan seluruh wilayah saat terjadi perubahanaria-busy— menahan pengumuman selama pemuatan
Belajar HTML dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 40
- Pelajaran
- 159
Pertanyaan yang Sering Diajukan
Apakah pelajaran “aria-hidden dan aria-live” gratis?
Ya — teks lengkap “aria-hidden dan aria-live” 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-hidden dan aria-live”?
Sembunyikan elemen dekoratif dan umumkan konten dinamis kepada pembaca layar. 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 4 dari 4.
Berapa lama pelajaran “aria-hidden dan aria-live” 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