HTML Audio Video Iframe Embedded Content Accessibility Security
Selesai membaca dokumentasi ini?
Kembali ke rujukan utama HTML untuk melanjutkan topik lainnya.
Kembali ke rujukan utama HTML untuk melanjutkan topik lainnya.
Halaman ini membahas elemen HTML yang dipakai untuk media dan konten tertanam:
audio untuk audiovideo untuk videosource untuk menyediakan beberapa format sumbertrack untuk subtitle, caption, chapter, dan metadata teksiframe untuk menyematkan konten dari sumber lainKalau topiknya diringkas, intinya begini: gunakan elemen media saat browser memang perlu memutar file media, dan gunakan embedded content saat sumber eksternal bisa diperlakukan sebagai komponen yang aman, terkontrol, dan tidak mengganggu pengalaman pengguna.
audio ketikavideo ketikaiframe ketikaaudioElemen audio dipakai untuk memutar audio di browser.
<audio controls>
<source src="podcast.mp3" type="audio/mpeg" />
<source src="podcast.ogg" type="audio/ogg" />
Browser Anda tidak mendukung elemen audio.
</audio>controlsMenampilkan kontrol bawaan browser. Untuk konten audio yang memang bisa diputar pengguna, ini hampir selalu perlu.
autoplayMeminta browser memulai pemutaran otomatis. Ini sering diblokir browser, terutama jika audio tidak di-mute atau tidak ada interaksi pengguna.
Praktik aman:
loopMengulang audio setelah selesai.
mutedMemulai audio dalam keadaan tanpa suara.
preloadMemberi petunjuk ke browser tentang seberapa agresif file diunduh sebelum diputar.
Nilai umum:
none — jangan preloadmetadata — ambil metadata sajaauto — browser boleh memuat lebih banyakUntuk halaman yang sensitif bandwidth, metadata atau none sering lebih masuk akal daripada auto.
Audio tanpa konteks visual tetap harus bisa dipahami.
Perhatikan:
Kalau audio adalah konten utama, transkrip bukan bonus. Itu bagian dari aksesibilitas.
videoElemen video dipakai untuk menampilkan media visual bergerak.
<video controls width="640" poster="thumbnail.jpg">
<source src="demo.mp4" type="video/mp4" />
<source src="demo.webm" type="video/webm" />
<track
controlsMenampilkan kontrol pemutaran bawaan. Untuk video umum, ini biasanya wajib agar pengguna bisa pause, seek, dan atur volume.
width dan heightMembantu browser menyiapkan ruang layout sebelum video dimuat, sehingga layout shift berkurang.
posterGambar penutup sebelum video diputar. Ini penting untuk memberi konteks visual dan mencegah area kosong yang membingungkan.
autoplaySama seperti audio, autoplay video sering dibatasi. Browser biasanya lebih permisif jika video dimulai dalam keadaan muted, tetapi itu tetap bukan alasan untuk memaksa autoplay.
Prinsip yang aman:
muted dan playsinline untuk pengalaman mobilemutedMemulai video tanpa suara. Ini sering jadi syarat teknis agar autoplay diizinkan.
playsinlineMencegah video memaksa mode layar penuh pada beberapa perangkat mobile. Ini penting untuk UX yang tetap terasa inline di halaman.
loopBerguna untuk video pendek yang memang dimaksudkan berulang, misalnya background motion atau demo singkat.
preloadSama seperti audio, membantu mengontrol perilaku pemuatan awal.
Video yang baik bukan cuma bisa diputar, tapi juga bisa dipahami.
Perhatikan:
sourceElemen source dipakai di dalam audio atau video untuk menyediakan beberapa format media.
Browser tidak selalu mendukung format yang sama. Dengan beberapa source, browser bisa memilih file yang paling cocok.
<video controls>
<source src="demo.webm" type="video/webm" />
<source src="demo.mp4" type="video/mp4" />
</video>srcAlamat file media.
typeMembantu browser menilai format tanpa harus mengunduh file dulu.
mediaKadang dipakai untuk memilih sumber berdasarkan kondisi media tertentu, walau ini lebih jarang di media player umum.
sourceUrutkan dari format yang paling disukai atau paling efisien untuk target browser Anda.
Praktik umum:
source tanpa alasan; itu hanya bikin markup bisingtrackElemen track dipakai untuk menambahkan teks pendamping ke media video atau audio.
Nilai kind yang umum:
subtitles — terjemahan dialog untuk orang yang bisa mendengar audio, tetapi butuh bahasa berbedacaptions — teks untuk membantu ketika audio tidak bisa didengar, termasuk dialog dan suara pentingdescriptions — deskripsi audio-visual untuk membantu pengguna yang tidak melihat isi visual dengan baikchapters — penanda bab/segmenmetadata — data tambahan untuk scripting, bukan untuk dibaca pengguna langsung<track
kind="captions"
src="captions-id.vtt"
srclang="id"
label="Bahasa Indonesia"
default
/>srcFile teks, biasanya WebVTT (.vtt).
kindMenentukan jenis track dan bagaimana browser atau assistive tech menggunakannya.
srclangKode bahasa track, misalnya id atau en.
labelNama manusiawi yang tampil di UI player.
defaultMenandai track default yang dipilih browser saat pemutaran.
Perbedaan ini sering dicampur, padahal tidak sama:
Kalau video Anda berisi informasi penting, captions biasanya lebih tepat daripada sekadar subtitle.
track pentingtrack membuat media lebih aksesibel untuk:
iframe bukan sekadar “tempel halaman lain”. Ia membawa konteks keamanan dan perilaku browsing yang perlu dikontrol.
iframe dengan hati-hatiContoh yang lebih terkontrol:
<iframe
src="https://www.youtube.com/embed/VIDEO_ID"
title="Video demo produk"
loading="lazy"
referrerpolicy="strict-origin-when-cross-origin"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>iframesrcURL tujuan embed. Pastikan benar-benar tujuan yang dipercaya.
titleWajib dipikirkan sebagai label aksesibilitas. Tanpa title, screen reader akan kesulitan menjelaskan isi frame.
loading="lazy"Menunda pemuatan iframe sampai mendekati viewport. Berguna untuk performa, terutama jika ada banyak embed.
sandboxSalah satu atribut keamanan paling penting.
sandbox membatasi kemampuan iframe. Anda bisa menambah izin secara eksplisit bila memang perlu.
Contoh:
<iframe
src="https://example.com/embed"
title="Embed aman"
sandbox="allow-scripts allow-same-origin"
></iframe>Catatan:
allowMengizinkan fitur tertentu seperti autoplay, fullscreen, clipboard, atau sensor tertentu. Pakai seperlunya saja.
referrerpolicyMengontrol informasi referrer yang dikirim ke sumber embed.
allowfullscreenMemberi izin fullscreen jika embed memang memerlukannya.
iframesandbox sejauh mungkinsrcallow satu per satuContent-Security-Policy) untuk membatasi sumber frameAutoplay sering terasa berguna untuk demo, tetapi sering jadi sumber masalah:
Kalau tidak benar-benar perlu, jangan pakai autoplay.
Media dan embed sebaiknya punya fallback yang masuk akal:
audio / videoKalau Anda hanya menyediakan satu format media, dukungan browser bisa jadi masalah. Gunakan lebih dari satu source bila target audiens luas.
Caption yang tidak sinkron, tidak lengkap, atau salah bahasa sama buruknya dengan tidak ada caption. Pastikan file track benar-benar diperiksa.
iframe yang asal tempel tanpa sandbox, title, dan allow yang tepat sering jadi lubang keamanan dan masalah UX.
<figure>
<video controls width="720" poster="poster-episode-1.jpg">
<source src="episode-1.webm" type="video/webm" />
<source src=
<iframe
src="https://www.youtube.com/embed/VIDEO_ID"
title="Demo penggunaan fitur checkout"
loading="lazy"
sandbox="allow-scripts allow-same-origin allow-presentation"
referrerpolicy="strict-origin-when-cross-origin"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>audio dan video dipakai untuk media yang memang perlu diputar di browsersource dipakai untuk menyediakan beberapa formattrack dipakai untuk captions, subtitles, chapter, dan metadata teksiframe dipakai hanya kalau embedding eksternal memang aman dan perluaudio, video, source, track, dan iframe