Apakah Doctype diperlukan untuk dokumen HTML5


11

Baru-baru ini saya melakukan wawancara kerja dan salah satu pertanyaannya adalah "Apakah doctype diperlukan untuk dokumen HTML 5?". Saya sudah menjawab "tidak" tetapi merasa bahwa saya mungkin salah. Dari w3 sepertinya memang benar-benar diperlukan, tetapi jika saya mengetik seperti HTML sederhana

<html>
    <body>
        <input type="color" disabled/>
    </body>
</html>

simpan sebagai HTML dan coba buka di Chrome - itu akan bekerja dengan baik, dengan input warna baru (dinonaktifkan). Masukan itu adalah HTML5 dan juga atribut.

Jadi pertanyaannya adalah - apakah saya perlu menentukan DOCTYPE atau tidak? Apa jawaban yang tepat untuk wawancara?


1
Saya kira Anda bisa berdebat bahwa tanpa Doctypeelemen itu bukan dokumen HTML5.
MetaFight

Anda dapat mengetik hello worlddalam editor teks, menyimpannya sebagai HTML, dan itu akan dirender di Chrome. Ternyata Chrome (dan banyak peramban lain) memasukkan hal-hal untuk Anda, meskipun itu "wajib".
intcreator

Jawaban:


13

Jawaban yang benar adalah "Tergantung".

DOCTYPE adalah opsional untuk dokumen HTML5 dalam sintaks XHTML (yaitu, dokumen XHTML5):

Dokumen XML dapat berisi DOCTYPE jika diinginkan, tetapi ini tidak diharuskan untuk memenuhi spesifikasi ini.

DOCTYPE diperlukan untuk dokumen HTML5 dalam sintaks HTML :

Dokumen harus terdiri dari bagian-bagian berikut, dalam urutan yang diberikan:

[...]

3. DOCTYPE.

Pengecualian


1
Ini adalah jawaban yang lengkap jika "diperlukan" ditafsirkan sebagai "diperlukan oleh spesifikasi". Bisa juga diartikan sebagai merujuk pada efek praktis. Dalam hal ini, jawabannya adalah string doctype diperlukan dalam sintaks HTML untuk menempatkan browser ke "mode standar".
Jukka K. Korpela

Saya ingin jawaban ini lebih baik jika Anda menguraikan kapan suatu dokumen html vs xhtml. Apa artinya ini bagi browser - bagaimana mereka memutuskan sintaksis mana yang akan dievaluasi?
temporary_user_name

7

Saya juga akan menjawab "tidak" (salah, seperti yang terjadi).

Namun, http://www.w3.org/TR/html5/syntax.html#the-doctype mengatakan:

8.1.1 DOCTYPE

DOCTYPE adalah mukadimah yang diperlukan.

DOCTYPE diperlukan karena alasan warisan. Saat dihilangkan, browser cenderung menggunakan mode render berbeda yang tidak kompatibel dengan beberapa spesifikasi. Termasuk DOCTYPE dalam dokumen memastikan bahwa browser melakukan upaya terbaik untuk mengikuti spesifikasi yang relevan.

BTW, GIYF


1
Bagian yang dikutip hanya berlaku untuk sintaks HTML.
Jukka K. Korpela

Dan judul pertanyaannya adalah "Apakah Doctype diperlukan untuk dokumen HTML5" (QED).
Mawg mengatakan mengembalikan Monica

1
Spesifikasi HTML5 dengan jelas dan nyata mengatakan bahwa ia mendefinisikan dua sintaksis untuk HTML5, satu berdasarkan HTML asli dan satu sepenuhnya sesuai dengan XML. Apa yang Anda kutip tidak menjawab pertanyaan, karena hanya berlaku untuk salah satu sintaks.
Jukka K. Korpela

Ah! Akhirnya saya mengerti. Terima kasih banyak atas klarifikasi ini.
Mawg mengatakan mengembalikan Monica

2

Ketika Anda ingin menulis dokumen HTML5 standar-konforman w3c, maka <!DOCTYPE html>diperlukan.

Namun dalam praktiknya Anda tidak selalu memerlukan DOCTYPE karena browser web umum apa pun akan membuat dokumen Anda. Namun, beberapa browser kemudian akan menggunakan mode lawas di mana beberapa fitur tidak diinterpretasikan dengan benar dan sebagai gantinya cara browser versi sebelumnya menanganinya (sebagian besar terkait tata letak).

Jawaban mana yang tepat untuk wawancara ini ? Itu tergantung pada mentalitas orang yang mewawancarai Anda. Dalam wawancara kerja tidak masalah apakah Anda benar atau salah. Yang penting hanya kesan apa yang Anda buat pada pewawancara.


Pertanyaan yang menarik bagi saya adalah, apakah DOCTYPE HTML5 diperlukan dalam praktiknya di tahun 2020? Apa yang dilakukan browser saat ini (FF, Chrome, Edge) jika saya mengabaikannya dan belum membuat kode yang sesuai dengan HTML-5?
Panu Logic
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.