Sebelum halaman diterbitkan, ada satu ritual singkat yang menangkap sebagian besar masalah sebelum pengunjung menemukannya: daftar periksa. Bukan karena kita kurang percaya diri — melainkan karena mata yang menulis kode adalah mata yang sama yang paling mudah melewati kesalahannya. Daftar periksa memaksa pemeriksaan berjalan berurutan dan tanpa pengecualian, dari struktur sampai uji ponsel.
Chapter penutup section ini merangkum seluruh Course menjadi sepuluh pemeriksaan pra-terbit, lalu menunjukkan satu halaman yang lolos semuanya.
Cara Memakai #
Jalankan daftar ini pada setiap halaman baru dan setiap kali perubahan besar disimpan. Waktu yang dibutuhkan sekitar lima menit — bandingkan dengan waktu menelusuri keluhan pengunjung setelah halaman tayang. Cetak daftarnya di kepala: setelah beberapa kali berjalan, pemeriksaan bekerja otomatis dan kita hanya berhenti pada butir yang gagal.
Daftar Periksa Pra-Terbit #
| # | Kategori | Pemeriksaan | Cara memeriksa |
|---|---|---|---|
| 1 | Struktur | doctype, html lang="id", charset UTF-8 di awal head, viewport | baca lima baris pertama berkas |
| 2 | Struktur | tepat satu h1; heading naik-turun satu tingkat | telusuri panel Elements |
| 3 | Gambar | setiap img punya alt yang sesuai konteksnya | cari img di panel Elements |
| 4 | Link | teks link deskriptif; href menuju tujuan yang benar | arahkan kursor, baca status bar |
| 5 | Form | semua kontrol berlabel; semua input ber-name | audit markup + tab Payload |
| 6 | Tabel | caption ada; th memakai scope | periksa setiap table |
| 7 | Media | video/audio memakai controls; teks alternatif (track) bila tersedia | putar sekali, periksa kendali |
| 8 | Validasi | W3C validator melaporkan nol galat | validator.w3.org |
| 9 | Keyboard | Tab menjangkau semua elemen interaktif dengan urutan logis | tekan Tab berulang dari atas halaman |
| 10 | Ponsel | tampil layak pada lebar sempit | sempitkan jendela atau mode perangkat DevTools |
Halaman yang Lolos Semua #
Berikut halaman pesan menu mini yang memenuhi seluruh butir di atas:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Menu — Kedai Kopi Siti</title>
</head>
<body>
<h1>Menu Kedai Kopi Siti</h1>
<figure>
<img src="kopi-susu.jpg" alt="Segelas kopi susu di atas meja kayu">
<figcaption>Kopi susu andalan kedai.</figcaption>
</figure>
<form action="/pesan" method="post">
<label for="menu">Pilih menu</label>
<select id="menu" name="menu">
<option value="kopi-susu">Kopi susu</option>
</select>
<button type="submit">Pesan</button>
</form>
</body>
</html>Mari kita telaah butir demi butirnya:
- Baris 1–2:
doctypedanlang="id"memenuhi pemeriksaan struktur pertama. - Baris 4–5:
charsetberada di awalhead;viewportmenyiapkan tampilan ponsel. - Baris 9: satu-satunya
h1pada halaman. - Baris 11:
altmenggambarkan isi foto, bukan mengulang nama berkas. - Baris 15–17: label terhubung lewat
for/id;selectpunyaname;optionmemakaivalueeksplisit. - Baris 18: tombol memakai
typeeksplisit; sisa butir (validasi, keyboard, ponsel) diuji di browser, bukan di markup.
Tujuh butir pertama bisa diperiksa langsung dari markup seperti di atas; tiga butir terakhir berjalan di browser dan validator — proses yang tidak bisa diwakili demo render dalam halaman ini. Simpan halaman di atas sebagai berkas, lalu jalankan kesepuluh pemeriksaannya sendiri: itulah cara daftar periksa benar-benar dipakai.
Sepuluh pemeriksaan ini menutup Section Validasi dan Debugging. Section berikutnya, Praktik HTML, mengajak kita memakai seluruh bekal Course pada pola-pola halaman nyata.