Elemen
dan : Menambahkan Interaktivitas Tanpa JavaScript


Categories :

Elemen <details> dan <summary>

Dalam pengembangan web, interaktivitas sering kali diandalkan pada JavaScript. Namun, tidak semua kebutuhan interaktif memerlukan skrip tambahan. HTML5 menghadirkan sejumlah elemen semantik baru yang memungkinkan interaktivitas sederhana langsung dari markup. Salah satu kombinasi yang menarik adalah elemen <details> dan <summary>. Dengan dua elemen ini, pengembang dapat menciptakan fitur expand-collapse (buka-tutup konten) tanpa menulis satu baris pun kode JavaScript.

Artikel ini akan membahas apa itu <details> dan <summary>, cara penggunaannya, keuntungan, hingga praktik terbaik agar tampilannya lebih menarik di mata pengguna.


Memahami Fungsi <details> dan <summary>

Elemen <details> adalah sebuah kontainer yang dapat menyembunyikan atau menampilkan konten tambahan. Ketika digunakan, konten di dalamnya secara default tersembunyi dan hanya akan muncul ketika pengguna mengklik bagian ringkasannya.

Elemen <summary> berfungsi sebagai judul atau label yang bisa diklik untuk membuka dan menutup konten dalam <details>. Dengan kata lain, <summary> menjadi pintu masuk dari informasi tersembunyi.

Contoh sederhana:

<details>
<summary>Pelajari lebih lanjut</summary>
<p>Ini adalah konten yang akan ditampilkan setelah pengguna mengklik summary.</p>
</details>

Ketika halaman dimuat, pengguna hanya akan melihat teks “Pelajari lebih lanjut”. Saat diklik, konten paragraf di bawahnya akan terbuka.


Keuntungan Menggunakan <details> dan <summary>

Ada beberapa alasan mengapa elemen ini semakin populer di kalangan pengembang web:

1. Tidak Membutuhkan JavaScript

Dengan HTML saja, kita sudah bisa menambahkan fitur interaktif sederhana. Ini sangat bermanfaat bagi situs yang ingin menjaga performa tetap ringan tanpa tambahan skrip.

2. Aksesibilitas yang Lebih Baik

Elemen ini memiliki dukungan aksesibilitas bawaan. Misalnya, pengguna pembaca layar dapat memahami bahwa konten tersebut bisa diperluas atau diperkecil.

3. SEO-Friendly

Konten di dalam <details> tetap dapat diindeks oleh mesin pencari. Artinya, informasi yang tersembunyi tetap memberi nilai SEO bagi halaman Anda.

4. Ringkas dan Efisien

Struktur kode lebih sederhana karena tidak perlu menambahkan event listener atau manipulasi DOM.


Studi Kasus Penggunaan

FAQ (Frequently Asked Questions)

FAQ sering memerlukan daftar pertanyaan yang bisa dibuka-tutup untuk menampilkan jawabannya. Dengan <details> dan <summary>, implementasi FAQ menjadi sangat mudah.

<details>
<summary>Apa itu HTML5?</summary>
<p>HTML5 adalah versi terbaru dari HyperText Markup Language yang digunakan untuk membuat struktur halaman web.</p>
</details>
<details>
<summary>Apakah saya perlu JavaScript untuk interaktivitas?</summary>
<p>Tidak selalu. Beberapa fitur sederhana dapat menggunakan elemen HTML seperti &lt;details&gt; dan &lt;summary&gt;.</p>
</details>

Menyembunyikan Informasi Tambahan

Misalnya pada artikel panjang, pengembang dapat menyembunyikan detail teknis yang hanya perlu dibaca oleh pengguna tertentu.

<details>
<summary>Lihat kode lengkap</summary>
<pre><code>
function helloWorld() {
console.log("Hello World!");
}
</code></pre>
</details>

Menambahkan Gaya dengan CSS

Secara default, browser akan menampilkan simbol panah kecil di samping <summary>. Namun, tampilan ini dapat dimodifikasi menggunakan CSS agar sesuai dengan desain situs.

details summary {
cursor: pointer;
font-weight: bold;
}
details[open] summary {
color: #007BFF;
}

Kode di atas membuat teks <summary> lebih menonjol dan berubah warna ketika konten terbuka.

Jika ingin menyembunyikan ikon default, dapat menggunakan properti list-style atau ::-webkit-details-marker.

summary::-webkit-details-marker {
display: none;
}

Dengan begitu, Anda bisa menambahkan ikon khusus menggunakan background image atau simbol dari font-icon seperti Font Awesome.


Pertimbangan Aksesibilitas

Walaupun <details> dan <summary> ramah aksesibilitas, ada beberapa hal yang perlu diperhatikan:

  • Gunakan teks <summary> yang jelas dan deskriptif. Hindari kata umum seperti “Klik di sini”.

  • Pastikan warna teks memiliki kontras yang cukup agar mudah dibaca.

  • Jangan menyembunyikan informasi penting yang krusial hanya dengan elemen ini.


Dukungan Browser

Sebagian besar browser modern seperti Chrome, Firefox, Safari, dan Edge sudah mendukung <details> dan <summary>. Namun, jika ingin menjangkau pengguna lama, sebaiknya cek kompatibilitas. Untuk browser yang tidak mendukung, konten dalam <details> akan ditampilkan secara terbuka, sehingga tidak merusak pengalaman pengguna.


Praktik Terbaik dalam Implementasi

  1. Gunakan dengan Bijak
    Jangan sembunyikan semua konten di balik elemen ini. Gunakan hanya untuk informasi tambahan atau opsional.

  2. Tambahkan Animasi Ringan
    Dengan CSS transition, konten yang terbuka bisa terasa lebih halus.

details[open] p {
animation: fadeIn 0.3s ease-in-out;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

  1. Kombinasikan dengan Elemen Lain
    Anda bisa memadukan <details> dengan gambar, tabel, atau kode untuk memberikan pengalaman interaktif yang kaya.


Kesimpulan

Elemen <details> dan <summary> adalah contoh nyata bagaimana HTML5 menghadirkan solusi praktis untuk menambahkan interaktivitas sederhana tanpa JavaScript. Mereka membantu membuat halaman web lebih ringkas, ramah aksesibilitas, sekaligus tetap SEO-friendly.

Dari penggunaan untuk FAQ, menyembunyikan kode, hingga menampilkan detail tambahan dalam artikel, elemen ini sangat berguna bagi pengembang web modern. Dengan sedikit kreativitas dalam styling, Anda dapat menyulap fitur sederhana ini menjadi elemen interaktif yang menarik dan informatif.

Baca juga : Mengenal dan Menggunakan clamp() untuk Ukuran Responsif