0Pricing
HTML Academy · Pelajaran

Kapan Menggunakan ARIA dibandingkan HTML Bawaan

Ikuti aturan pertama ARIA: utamakan semantik bawaan.

Kapan Menggunakan ARIA dibandingkan HTML Bawaan adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 ARIA?

ARIA (Aplikasi Internet Kaya yang Aksesibel) adalah sekumpulan atribut yang dapat ditambahkan ke HTML untuk meningkatkan aksesibilitas bagi teknologi bantu. ARIA mengisi kekurangan saat semantik HTML bawaan tidak memadai.

Aturan Pertama ARIA

Panduan ARIA yang paling penting: jangan gunakan ARIA jika HTML bawaan dapat melakukannya:

<!-- BAD: ARIA on a div -->
<div role="button" tabindex="0" onclick="submit()">Submit</div>

<!-- GOOD: use a real button -->
<button type="submit">Submit</button>

<!-- Native HTML elements:
  - Are keyboard accessible by default
  - Have correct semantics built in
  - Work in more contexts
  - Require less code
-->

Saat HTML Bawaan Tidak Memadai

ARIA diperlukan ketika:

  • Komponen UI kustom tidak memiliki padanan HTML (tab, combobox)
  • Peran elemen bawaan perlu diganti
  • Pembaruan konten dinamis perlu diumumkan
  • Hubungan kompleks antara elemen perlu dinyatakan secara eksplisit

ARIA Tidak Menambahkan Perilaku

Kesalahpahaman penting: ARIA menambahkan metadata aksesibilitas — bukan fungsionalitas:

<!-- Adding role="button" to a div does NOT:
  - Make it keyboard-focusable (add tabindex="0")
  - Make Enter/Space activate it (add event listeners)
  - Make it styled like a button (add CSS)
-->

<!-- You must implement ALL behavior yourself -->
<!-- Native <button> handles all this for free -->

Taksonomi ARIA

ARIA memiliki tiga kategori atribut:

  • Peran — menentukan apa itu sebuah elemen: role="button", role="dialog"
  • Properti — menjelaskan karakteristik statis: aria-label, aria-required
  • Status — menjelaskan kondisi dinamis: aria-expanded, aria-checked

HTML Semantik vs Padanan ARIA

Sebagian besar elemen HTML sudah memiliki peran ARIA implisit:

<nav>   ≡  role="navigation"
<main>  ≡  role="main"
<aside> ≡  role="complementary"
<header> ≡ role="banner" (page-level)
<footer> ≡ role="contentinfo" (page-level)
<button> ≡ role="button"
<a href> ≡ role="link"
<h1-h6> ≡ role="heading"
<ul>    ≡  role="list"

Penggunaan ARIA yang Valid dan Umum

Contoh penggunaan ARIA yang tepat:

<!-- 1. Custom dropdown (no native equivalent): -->
<div role="combobox" aria-expanded="false">...</div>

<!-- 2. Loading state announcement: -->
<div role="status" aria-live="polite">Loading results...</div>

<!-- 3. Override landmark label: -->
<nav aria-label="Primary navigation">...</nav>

<!-- 4. Associate error with input: -->
<input aria-describedby="error-msg">
<span id="error-msg" role="alert">Invalid email</span>

Penggunaan ARIA yang Tidak Valid

Kesalahan umum dalam penggunaan ARIA:

<!-- BAD: ARIA role contradicts the element -->
<h2 role="button">Heading</h2>  <!-- don't turn a heading into a button -->

<!-- BAD: ARIA on an unsupported element -->
<div role="listitem">Item</div>  <!-- listitem must be inside list role -->

<!-- BAD: ARIA where HTML works fine -->
<p role="paragraph">Text</p>  <!-- p already has paragraph semantics -->

<!-- BAD: aria-label on hidden element -->
<span aria-hidden="true" aria-label="something">  <!-- contradictory -->

Peran Penanda Wilayah

Peran penanda wilayah ARIA membantu pengguna pembaca layar menavigasi berbagai wilayah halaman:

<div role="banner">     <!-- header for the whole page -->
<div role="navigation">  <!-- major navigation -->
<div role="main">        <!-- main content -->
<div role="complementary"> <!-- aside content -->
<div role="contentinfo"> <!-- page footer -->
<div role="search">      <!-- search form -->
<div role="form">        <!-- form with label -->

<!-- These are ONLY needed if using divs instead of semantic elements -->
<!-- Prefer the native HTML elements instead -->

Menguji Penerapan ARIA

Cara memverifikasi bahwa ARIA Anda sudah benar:

  • Gunakan panel Aksesibilitas di DevTools Chrome/Firefox
  • Dengarkan dengan VoiceOver (Mac) atau NVDA (Windows)
  • Jalankan ekstensi DevTools axe
  • Periksa pohon aksesibilitas — apakah sudah mencerminkan yang Anda harapkan?

Kesalahan Umum aria-hidden

Kesalahan umum dalam penggunaan aria-hidden:

<!-- BAD: aria-hidden on element that still receives focus -->
<button aria-hidden="true">Close</button>
<!-- The button is still focusable but invisible to screen readers
     Screen reader users reach it via Tab but hear nothing -->

<!-- GOOD: for focus + hide, use hidden attribute or display:none: -->
<button hidden>Close</button>  <!-- removes from both tab order and AT -->

<!-- Or: if you must keep visible: -->
<button style="display:none" aria-hidden="true">Close</button>

Pemeriksaan Singkat

Apa yang secara otomatis Anda dapatkan dengan menambahkan role="button" ke sebuah div?

Ringkasan: ARIA vs HTML Bawaan

Hal-hal penting tentang ARIA:

  • Aturan pertama: gunakan HTML bawaan jika memungkinkan
  • ARIA hanya menambahkan semantik — Anda harus menerapkan perilakunya
  • Tiga kategori: Peran, Properti, Status
  • Peran penanda wilayah membantu navigasi pembaca layar
  • Uji dengan panel Aksesibilitas DevTools dan pembaca layar

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kapan Menggunakan ARIA dibandingkan HTML Bawaan” gratis?

Ya — teks lengkap “Kapan Menggunakan ARIA dibandingkan HTML Bawaan” 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 “Kapan Menggunakan ARIA dibandingkan HTML Bawaan”?

Ikuti aturan pertama ARIA: utamakan semantik bawaan. 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 1 dari 4.

Berapa lama pelajaran “Kapan Menggunakan ARIA dibandingkan HTML Bawaan” 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