Region Langsung aria-live aria-atomic aria-relevant
Umumkan pembaruan asinkron kepada teknologi bantu.
Region Langsung aria-live aria-atomic aria-relevant 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.
Apa Itu Wilayah Dinamis?
Wilayah dinamis adalah bagian halaman yang kontennya diperbarui secara dinamis. Pembaca layar memantau wilayah dinamis dan mengumumkan perubahan secara otomatis tanpa pengguna memindahkan focus.
Membuat Wilayah Dinamis
Tambahkan aria-live ke elemen container:
<!-- Polite: announce when user is idle -->
<div aria-live="polite" id="notifications"></div>
<!-- Inject text to announce: -->
<script>
document.getElementById('notifications').textContent = '5 new messages';
// Screen reader announces: '5 new messages' when user pauses
</script>Ringkasan Nilai aria-live
Tiga tingkat aria-live:
off— tidak ada pengumuman (bawaan untuk wilayah yang bukan wilayah dinamis)polite— diumumkan saat pengguna berhenti berbicaraassertive— diumumkan segera dan menyela ucapan yang sedang berlangsung
aria-atomic secara Mendalam
aria-atomic mengatur apa yang diumumkan saat konten berubah:
<div aria-live="polite" aria-atomic="false"> <!-- default -->
Items in cart: <span id="count">3</span>
</div>
<!-- Only the changed span is announced: '4' -->
<div aria-live="polite" aria-atomic="true">
Items in cart: <span id="count">3</span>
</div>
<!-- The entire div is announced: 'Items in cart: 4' -->
<!-- aria-atomic="true" gives more context but is more verbose -->Nilai aria-relevant
aria-relevant menentukan perubahan DOM mana yang memicu pengumuman:
<!-- Default: additions text -->
<div aria-live="polite" aria-relevant="additions text">
<!-- Announce removals too: -->
<div aria-live="polite" aria-relevant="removals">
<!-- Announce everything: -->
<div aria-live="polite" aria-relevant="all">
<!-- Values: additions, removals, text, all
'additions' = added nodes announced
'removals' = removed nodes announced
'text' = text content changes announced -->Peran Wilayah Dinamis yang Telah Ditentukan
Beberapa peran secara implisit menetapkan aria-live:
role="alert"— aria-live="assertive" + aria-atomic="true"role="status"— aria-live="polite" + aria-atomic="true"role="log"— aria-live="polite"role="timer"— aria-live="off"role="marquee"— aria-live="off"
Status Pemuatan dengan Wilayah Dinamis
Mengumumkan status pemuatan dan penyelesaian:
<div role="status" aria-live="polite" aria-atomic="true" id="load-status">
<!-- empty initially -->
</div>
<script>
async function loadData() {
document.getElementById('load-status').textContent = 'Loading...';
const data = await fetchData();
renderResults(data);
document.getElementById('load-status').textContent =
`${data.length} results loaded.`;
}
</script>Umpan Balik Pengiriman Formulir
Wilayah dinamis untuk status pengiriman formulir:
<form id="contact-form" novalidate>
<input type="email" name="email">
<button type="submit">Subscribe</button>
</form>
<div role="status" aria-live="polite" id="form-status"></div>
<script>
form.addEventListener('submit', async (e) => {
e.preventDefault();
const status = document.getElementById('form-status');
status.textContent = 'Submitting...';
await submitForm(new FormData(form));
status.textContent = 'Thank you! You are now subscribed.';
});
</script>Jumlah Hasil Pencarian
Mengumumkan hasil pencarian secara dinamis:
<label for="search">Search</label>
<input type="search" id="search">
<div role="status" aria-live="polite" aria-atomic="true" id="results-count"></div>
<div id="results"></div>
<script>
let debounceTimer;
search.addEventListener('input', () => {
clearTimeout(debounceTimer);
debounceTimer = setTimeout(() => {
const results = filterResults(search.value);
renderResults(results);
document.getElementById('results-count').textContent =
`${results.length} results for "${search.value}"`;
}, 300);
});
</script>Anti-Pola Wilayah Dinamis
Hindari kesalahan wilayah dinamis berikut:
- Jangan membuat dan menghapus wilayah dinamis — biarkan tetap ada dengan konten awal yang kosong
- Jangan menempatkan wilayah dinamis di dalam area aria-hidden
- Jangan menggunakan assertive untuk pembaruan rutin — hal ini sangat mengganggu
- Jangan mengumumkan pembaruan terlalu sering (batasi frekuensi jumlah hasil pencarian)
Menguji Wilayah Dinamis
Cara menguji pengumuman wilayah dinamis:
- Aktifkan VoiceOver (Mac: Cmd+F5) atau NVDA (Windows: Ctrl+Alt+N)
- Picu pembaruan dan dengarkan pengumumannya
- Verifikasi waktunya: polite menunggu, assertive menyela
- Periksa bahwa axe DevTools tidak menandai masalah wilayah dinamis
Pemeriksaan Singkat
Peran apa yang secara implisit menetapkan aria-live assertive dan aria-atomic true?
Ringkasan: Wilayah Dinamis
Hal-hal penting tentang wilayah dinamis:
aria-live="polite"— menunggu pengguna berhentiaria-live="assertive"— segera menyelaaria-atomic="true"— mengumumkan seluruh wilayahrole="alert"= assertive + atomic; role="status" = polite + atomic- Biarkan wilayah dinamis tetap ada; kosongkan lalu tetapkan kontennya
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Region Langsung aria-live aria-atomic aria-relevant” gratis?
Ya — teks lengkap “Region Langsung aria-live aria-atomic aria-relevant” 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 “Region Langsung aria-live aria-atomic aria-relevant”?
Umumkan pembaruan asinkron kepada teknologi bantu. 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 “Region Langsung aria-live aria-atomic aria-relevant” 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
- aria-expanded aria-controls untuk Sakelar
- aria-selected dan Pola Tab
- Region Langsung aria-live aria-atomic aria-relevant
- Pengujian dengan Pembaca Layar