Validasi HTML: apakah itu layak?

52

Apa kelebihan dan kekurangannya (jika ada) untuk memastikan bahwa semua halaman memvalidasi dibandingkan dengan memiliki HTML yang tidak valid yang bekerja pada semua browser utama?

Juga, apakah memiliki HTML yang valid setelah Javascript dieksekusi sama pentingnya?

Thomas Bonini
sumber
5
Ini tidak menjawab pertanyaan Anda tetapi ... menempatkan doctype pada halaman Anda akan menempatkan browser dalam mode standar, bukan mode quirks. Cari mode kebiasaan untuk melihat apa yang saya maksud.
Evan Plaice
1
@Evan Plaice - Tidak ada DOCTYPE sekalipun. Beberapa DOCTYPES sebenarnya memicu kebiasaan aneh atau hampir mode standar. Spesifikasi HTML5 menjelaskan ini secara lebih rinci.
luiscubal
1
@luiscubal Apakah itu baru dalam HTML 5 karena dari en.wikipedia.org/wiki/Quirks_mode , ia menyatakan "... jika DOCTYPE lengkap hadir browser akan menggunakan mode standar, dan jika tidak ada browser akan menggunakan mode quirks . "
Evan Plaice
@ Evan Plaice Tidak yakin tentang versi HTML sebelumnya, namun HTML5 secara khusus menyatakan apa yang harus dilakukan dengan DOCTYPES kuno: melihat whatwg.org/specs/web-apps/current-work/multipage/...
luiscubal
1
@Evan Plaice Dengan kata lain, "DTD HTML 2.0 Level 1" memicu mode quirks.
luiscubal

Jawaban:

42

Saya pikir itu layak dilakukan , tetapi Anda tidak boleh menjadi budak validasi - ini adalah permainan orang bodoh.

http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html

  1. Validasikan HTML Anda. Ketahui apa artinya memiliki markup HTML yang valid. Pahami alatnya. Lebih banyak informasi selalu lebih baik daripada lebih sedikit informasi. Kenapa terbang buta?

  2. Tidak ada yang peduli jika HTML Anda valid. Kecuali kamu. Jika Anda menghendaki. Jangan berpikir sedetik pun bahwa menghasilkan HTML yang benar-benar valid lebih penting daripada menjalankan situs web Anda, menghadirkan fitur yang menyenangkan pengguna Anda, atau menyelesaikan pekerjaan.

Jeff Atwood
sumber
3
Saya harus yang kedua ini. Saya telah melihat banyak masalah dengan pustaka javascript yang dapat disalahkan pada HTML yang tidak valid. Berbagai formulir bersarang dan tag yang ditutup secara ilegal menjadi pelanggar utama. Seperti kata Jeff, jangan menjadi budak, tetapi jangan mengeluh ketika jQuery tidak berfungsi karena halaman Anda bukan HTML yang valid (XHTML, HTML 5 atau apa pun yang Anda pilih sebagai doctype).
Gareth Farrington
@ Jeff Atwood: saya tidak bisa lebih setuju ketika Anda mengatakan "Tidak ada yang peduli jika HTML Anda valid. Kecuali Anda." Sedih tapi benar, pelanggan benar-benar tidak peduli.
Marco Demaio
@MarcoDemaio Mengapa sedih? Sebagai klien dan pengguna akhir, saya lebih peduli tentang apakah situs berfungsi pada semua browser (sebagian besar di antaranya tidak sesuai standar untuk memulai) daripada apakah validasi atau tidak. HTML yang valid benar-benar tidak masalah. Google, Facebook, Twitter, situs ini, dll. Tidak ada situs yang relevan memiliki markup yang valid. Mengapa? Karena HTML yang valid tidak melakukan apa pun selain mengasapi halaman dan meningkatkan biaya bandwidth Anda.
NullUserException
Hal yang sama berlaku untuk markup indentasi sempurna. Ini bahkan lebih tidak berguna, ini adalah pemborosan bandwidth 100% dan tidak memiliki penggunaan praktis apa pun.
NullUserException
@NullUserException: Saya pikir itu sedih karena saya menemukan situs web yang divalidasi biasanya membuat jauh lebih baik di semua browser. Lihat komentar saya untuk jawaban Alan: webmasters.stackexchange.com/a/373/1429 Memvalidasi situs web yang disimpan untuk saya dan masih menghemat banyak waktu. Tentang markup indentasi yang sempurna saya tidak pernah mendengar spesifikasi tentang hal itu. Saya mungkin ingin membuat indentasi dengan 3 spasi, dan Anda mungkin ingin membuat indentasi dengan satu spasi.
Marco Demaio
32

Saya menganggap HTML yang valid sebagai tujuan yang bermanfaat, tetapi tidak melihatnya sebagai semua-dan-semua untuk membangun situs web yang baik.

Caranya adalah, markup Anda mungkin benar-benar valid, namun mungkin tidak semantik - misalnya menggunakan tabel untuk tata letak atau navigasi. Ada perbedaan antara kode yang valid dan kode semantik.

Pada catatan lain, jika Anda menggunakan skrip iklan atau eksternal, mereka dapat menyisipkan markup mereka sendiri yang memiliki peluang untuk benar-benar mengacaukan milik Anda.

Berikan Palin
sumber
22

Saya pikir itu layak, karena saya telah menangkap banyak kesalahan markup dan logika dengan mencari validasi. Itu salah satu dari hal-hal yang "perlu tetapi tidak cukup". Markup yang valid, seperti kode yang mengkompilasi (atau memeriksa melalui JSlint) tanpa kesalahan, peringatan, dan petunjuk, adalah langkah pertama yang baik untuk memperbaikinya.

Alan
sumber
+1 sepenuhnya menyetujui yang ini. Memvalidasi halaman menghemat banyak waktu setelah JS dan bug yang tampaknya begitu misterius, dan hanya karena tag HTML yang bekerja atau tidak ditutup. Terlebih lagi dengan alat-alat seperti FF Addon Html Validator [ addons.mozilla.org/en-US/firefox/addon/html-validator/] sangat mudah untuk memvalidasi semua halaman Anda secara lokal.
Marco Demaio
9

Kelebihan besar dari HTML yang valid adalah bahwa halaman Anda kemudian lebih mudah diakses untuk hal-hal lain selain "browser utama". Semua "peramban utama" memiliki solusi yang tidak ada habisnya untuk menangani semua sampah yang tidak valid yang mengisi WWW. Namun, berpegang teguh pada HTML yang valid membantu, misalnya, jika seseorang menggunakan browser untuk tunanetra, atau mengakses halaman Anda secara off-line, dll.


sumber
8

Validasi itu sendiri tidak begitu penting, karena beberapa browser 100% patuh dan spek tidak 100% jelas tentang bagaimana menafsirkan aturan.

Namun HTML yang valid menempatkan Anda pada posisi yang lebih baik untuk beradaptasi dan meningkatkan situs Anda. Ketika standar bergerak, mereka biasanya akan bermigrasi ke depan dan jika situs baru Anda valid, maka memperbarui untuk mendukung hal terbaru akan lebih mudah.

Bawah, menjadi valid membuatnya lebih mudah untuk tetap di atas permainan dan menjadi serasi mungkin dengan pemirsa terluas.

Tuan christer
sumber
4

Pendekatan terbaik adalah mempelajari HTML mana yang tidak benar itu buruk, dan mana HTML yang tidak sah itu tidak masalah.

Misalnya, lupa untuk menutup <div>tag sangat buruk , karena tata letak Anda hampir pasti akan kacau dalam satu atau lebih browser.

Namun, menggunakan <br>bukan <br />dalam XHTML tidak masalah - semua browser akan menafsirkan keduanya sebagai jeda baris tanpa masalah. Menggunakan targetatribut pada tautan tidak valid, tetapi skenario terburuknya adalah browser tidak membuka tautan di jendela baru.

DisgruntledGoat
sumber
targetvalid dalam XHTML transisi, dan hanya masokis yang menggunakan ketat. Menghilangkan garis miring penutup akan membuat XML halaman Anda tidak valid, yang mungkin akan membingungkan para pembuat layar. Jika Anda memilih untuk menggunakan XHTML, setidaknya halaman Anda harus XML yang valid.
Tgr
1
@ Tr: Lucu, saya pikir masokis lebih suka mode non-standar. Bahkan dokumen-dokumen transisional memiliki masalah mereka (menggunakan mode "hampir standar" dll)
DisgruntledGoat
1
Saya berpendapat bahwa Strict sangat penting - mengapa memilih untuk menjalankan risiko kode usang dan mode quirks. Tidak ada biaya untuk menggunakan Strict, selain itu mendorong Anda untuk mengetahui lebih banyak tentang versi markup pilihan Anda.
CJM
3

Saat menjalankan validator, Anda harus memeriksa kesalahan yang diberikan kepada Anda berdasarkan kasus per kasus. Apakah validasi itu penting? Bagi saya, ya, ini sangat penting. Tapi apakah itu persyaratan? Tidak.

Hal-hal seperti menggunakan ID yang sama beberapa kali (bukan kelas), menempatkan elemen level blok di dalam elemen level inline (biasanya elemen ini juga tidak cocok dengan cara ini secara semantik), kehilangan alt atribut pada gambar (aksesibilitas yang buruk untuk yang mengalami gangguan) ), semuanya penting. Hal-hal seperti atribut yang tidak diketahui pada tag TIDAK penting. Sama sekali. Kerangka kerja Javascript seperti Dojo atau bilah media sosial Meebo yang mengerikan itu menggunakan atribut khusus sebagai pengait, dan spesifikasi HTML menyatakan bahwa ini diizinkan, dan bahwa setiap atribut yang tidak diketahui harus diabaikan. Validator tidak mengabaikannya, meskipun, ia melempar kesalahan. Kesalahan ini dapat diabaikan.

Saat memvalidasi, jangan hanya berasumsi bahwa jika Anda memiliki kesalahan Anda salah melakukannya. Semantik jauh lebih penting, dan kebetulan HTML yang valid lebih merupakan hasil alami dari memiliki semantik yang tepat.

Bryson
sumber
Saya setuju - memvalidasi halaman web Anda, tetapi dalam beberapa keadaan, Anda dapat memilih untuk mengabaikan peringatan, selama Anda tahu mengapa mereka ada di sana
Casebash
3

Salah satu alasan untuk menguji situs Anda untuk HTML yang valid adalah memastikan bahwa spider mesin pencari akan dapat mengindeks sepenuhnya dan menentukan arti dari halaman Anda. Jika mereka tidak dapat melakukannya karena HTML yang rusak (yang dapat digunakan browser utama karena alasan historis), maka Anda berpotensi membatasi peringkat mesin pencari Anda.

Ada juga spekulasi bahwa sementara mesin pencari utama melakukan pekerjaan yang baik dalam menangani HTML yang cacat, mereka juga dapat menetapkan "poin" kualitas halaman untuk validitas, yang selanjutnya memengaruhi kemampuan Anda untuk menentukan peringkat setinggi yang layak untuk konten Anda.

JasonBirch
sumber
2
Google telah menyatakan dengan pasti bahwa HTML yang tidak valid tidak berpengaruh pada peringkat. Namun saya dapat melihat kasus di mana HTML sangat cacat sehingga konten aktual pada halaman tidak dapat dibaca oleh spider - meskipun dalam kasus ini hampir pasti bahwa browser akan mulai menunjukkan masalah rendering.
DisgruntledGoat
@DisgruntledGoat Anda benar, ini referensi untuk itu: youtube.com/watch?v=FPBACTS-tyg
JasonBirch
@ DisgruntledGoat Jelas ... Google sendiri penuh dengan HTML yang tidak valid, dan saya ingat mereka mengatakan mereka benar-benar tidak peduli dan itu adalah hal yang baik untuk memiliki HTML yang tidak valid jika itu berarti waktu muat yang lebih cepat.
NullUserException
3

Saya benar-benar tidak berpikir itu penting lagi. Saya dulu menjadi budak validasi, sekarang saya jarang memeriksanya. Mungkin saya merasa lelah karena memastikan situs saya valid, atau mungkin saya tidak peduli lagi karena tidak ada orang lain yang mau. Saya dapat menjamin 99,9% dari pengunjung kami bahkan tidak tahu apa itu dan bahkan peduli jika mereka tahu. Perangkat lunak browser di masa depan mungkin, tetapi ketika hari itu tiba, saya akan khawatir tentang hal itu.


sumber
2

Validasi berguna karena dapat membantu Anda menemukan beberapa kesalahan yang sulit ditangkap seperti

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); ?> />

atau perilaku peramban yang tidak dapat diprediksi (misalnya, meletakkan elemen blok di dalam aterkadang dapat merusak Firefox).

Tgr
sumber
2

Suatu hal yang belum disebutkan oleh siapa pun adalah bahwa HTML yang tidak valid dapat menyebabkan waktu rendering lebih lambat saat browser mencoba memahami HTML yang tidak standar ketika ditampilkan.

BradB
sumber
Saya akan menurunkan suara jika saya bisa. Saya sangat ragu ini memiliki efek yang dapat diamati; Saya akan lebih peduli dengan markup yang valid menggembungkan halaman dan membutuhkan lebih banyak waktu untuk memuat (terutama pada koneksi yang lebih lambat / seluler).
NullUserException
@NullUserExceptions: Saya tidak berpikir titik yang dibuat oleh BradB layak -1. Mungkin sulit untuk dibuktikan, tetapi peramban yang perlu memilah dan memperbaiki di dalam kekacauan HTML mungkin memerlukan sedikit lebih banyak daripada halaman HTML valid yang diformat dengan baik tanpa ada kesalahan di dalamnya. Mengapa Anda tidak memberikan jawaban untuk pertanyaan ini yang menunjukkan kepada kami contoh yang baik dari halaman yang berlebihan karena penyalahgunaan validasi HTML. Saya tidak bisa memikirkan bagaimana halaman HTML yang valid bisa sangat overbloated dibandingkan dengan halaman yang sama dengan kode HTML yang tidak valid.
Marco Demaio
1

tidak ada kerugian memiliki html yang valid. ada alasan mengapa ada spek di tempat pertama dan mengapa banyak upaya dimasukkan ke dalam spek untuk menentukan bagaimana hal-hal harus bekerja.

pada dasarnya, yang Anda dapatkan adalah memenuhi spesifikasi. yang pada gilirannya berarti, program yang ditulis untuk membaca html (browser, bot) tidak dapat menyalahkan ANDA karena tidak memenuhi spesifikasi jika terjadi kesalahan. dan beberapa program ini memberi Anda extrapoints (peringkat lebih tinggi di mesin pencari jika bot melaporkan "memenuhi spesifikasi"). jika Anda memenuhi spesifikasi, Anda akan terkejut jauh lebih sedikit jika beberapa browser tidak membuat html rusak seperti yang Anda pikirkan seharusnya.

jadi, untuk memenuhi spesifikasi dan menulis html yang valid baik untuk Anda, tidak ada kerugian sama sekali.

akira
sumber
Hum, mesin pencari mana yang Anda peroleh peringkat lebih tinggi jika Anda memenuhi spesifikasi?
2
Kerugiannya adalah waktu pengembangan tambahan yang Anda habiskan untuk memastikan bahwa semua kode Anda memenuhi spesifikasi. Meskipun biaya ini umumnya minimal, itu masih harus dianggap sebagai kerugian.
chatche
@kinopiko: Jika ada, itu bukan yang utama (Google, Yahoo, Bing, Ask). Memiliki kekacauan kode yang lengkap yang bahkan tidak dapat dibaca oleh pengembang web (manusia) berpengalaman mungkin akan menghalangi Anda, tetapi menggunakan beberapa atribut "ilegal" sama sekali tidak memiliki pengaruh pada peringkat.
DisgruntledGoat
Itulah masalah dengan terminologi validasi. Anda valid atau tidak. Tidak ada gelar. HTML yang rusak (mis. Tag tidak tertutup, tag struktural salah tempat / hilang, dll.) Tidak valid dan menyakiti SEO, tetapi kebanyakan orang tidak membicarakan hal itu ketika mereka mengatakan "validasi". Seorang pemula mungkin ingin menggunakan validator untuk memastikan mereka belum melakukan kesalahan pemula tersebut, tetapi pengembang profesional tidak perlu melakukannya karena kode mereka sudah "cukup valid" sehingga untuk berbicara dalam hal SEO.
Lèse majesté
1

Beberapa kesalahan validasi HTML dapat menyebabkan masalah tata letak yang tidak jelas (mis. Tag yang tidak bertanda / tidak tertutup), bug JavaScript (misalnya menggunakan idlebih dari satu kali), dan masalah bagi beberapa pengguna (misalnya tidak menyertakan altatribut bermakna atau kosong pada gambar).

Jika semua halaman kami divalidasi, itu pemeriksaan otomatis yang bagus yang dapat Anda lakukan untuk menyingkirkan sumber kesalahan. Jika Anda membiarkan beberapa kesalahan validasi karena Anda tahu mereka tidak menyebabkan kerusakan, cek Anda tidak lagi otomatis: Anda harus melihat setiap kesalahan, dan ingat bahwa itu baik-baik saja. Secara pribadi, saya lebih suka ketika komputer mengurangi jumlah pekerjaan yang harus saya lakukan daripada meningkatkannya.

Paul D. Waite
sumber
1

Satu hal yang tidak disebutkan adalah perkembangan browser di masa depan. Meskipun semua browser saat ini menangani markup yang tidak valid dengan relatif baik, itu mungkin tidak selalu menjadi masalah.

Pembuat peramban di masa mendatang akan memastikan peramban mereka bekerja dengan standar HTML / XHTML, jadi inilah yang harus dipukul pengembang web juga. Hanya karena sedikit markup tidak valid yang berfungsi sekarang tidak menjamin itu akan berfungsi di browser masa depan.

Loftx
sumber
Saya harus mengatakan saya bertanya-tanya apakah itu benar.
2
Ya saya tidak bisa melihat browser apa pun pernah menjatuhkan dukungan untuk <font>tag atau sejenisnya.
DisgruntledGoat
Saya tidak melihat apa masalahnya - dukungan untuk markup yang usang atau tidak valid mungkin berubah di masa mendatang. Melihat penerapan (X) HTML yang tidak sempurna di sebagian besar peramban, tentunya Anda akan lebih aman menggunakan markup yang valid. Tidak ada biaya yang terkait dengan markup yang valid, selain hanya mengetahui apa yang Anda lakukan.
CJM
1

Validitas membantu Anda menghindari ketidaksesuaian dan membantu menjaga kode terpelihara. Browser pulih dari kesalahan markup, tetapi kadang-kadang dengan cara yang sangat tidak intuitif.


  • Berbasis DTD (HTML4, XHTML1 @ W3C) - Mungkin tidak sepadan. DTD adalah primitif dan, misalnya, tidak dapat memeriksa validitas sebagian besar atribut. Sebagian besar Anda akan sulit memahami kesalahan tentang entitas dan bersarang.

  • Validator HTML5 - Ya . Pastinya. HTML5 lebih pragmatis dan memungkinkan beberapa konstruksi tidak berbahaya yang dulunya merupakan kesalahan. Validator OTOH Henri jauh lebih teliti dan lebih baik dalam menemukan masalah nyata.


Validitas kode yang dihasilkan JS mungkin penting, karena browser beroperasi pada DOM, terlepas dari bagaimana kode itu dibuat. Jika Anda menggunakan document.write(), maka Anda bahkan harus berhati-hati untuk mendapatkan sintaks yang benar (melewati parser yang sama dengan sumber halaman).

Kornel
sumber
0

Google dan Bing tidak, belum dan tidak akan pernah menggunakan validasi CSS atau HTML sebagai faktor peringkat.

Sebagian besar situs web memiliki puluhan hingga ratusan kesalahan dan Anda tidak perlu khawatir tentang mereka karena semua mesin pencari peduli tentang bagaimana membuat halaman. Pastikan situs web Anda dirender dengan benar di semua browser utama dan Pengambilan Google .

Simon Hayter
sumber