HTML doğrulama: buna değer mi?


52

Tüm sayfaların, tüm büyük tarayıcılarda geçerli olan geçerli olmayan HTML'ye kıyasla geçerli olduğundan emin olmanın (varsa) avantajları ve dezavantajları nelerdir?

Ayrıca, Javascript de bu kadar önemli bir şekilde çalıştırıldıktan sonra geçerli bir HTML’ye sahip olmak mı?


5
Bu, sorunuzu cevaplamıyor ama ... sayfanıza bir doktip koymak, tarayıcıyı ilginç modlar yerine standart modda tutacaktır. Ne demek istediğimi görmek için tuhaflıklar modunu arayın.
Evan Plaice

1
@Evan Plaice - Yine de herhangi bir DOCTYPE yok. Bazı DOCTYPES aslında tuhaflıkları veya neredeyse standart modları tetikler. HTML5 spesifikasyonu bunu daha ayrıntılı olarak açıklar.
luiscubal

1
@luiscubal HTML 5'teki yeni bir şey çünkü en.wikipedia.org/wiki/Quirks_mode adresinden "... eğer tam bir DOCTYPE varsa, tarayıcı standart modunu kullanacak ve tarayıcı yoksa tuhaf modunu kullanacak . ".
Evan Plaice,

@Evan Plaice Önceki HTML sürümlerinden emin değil, ancak HTML5 özellikle eski DOCTYPES'lerle ne yapılacağını belirtir: bkz. Whatwg.org/specs/web-apps/current-work/multipage/…
luiscubal

1
@Evan Plaice Başka bir deyişle, "DTD HTML 2.0 Seviye 1" tuhaflıklar modunu tetikler.
luiscubal

Yanıtlar:


42

Bence kesinlikle yapmaya değer , ama asla doğrulamanın kölesi olmamalısınız - bu bir aptal oyunu.

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

  1. HTML'nizi doğrulayın. Geçerli bir HTML işaretlemesinin ne demek olduğunu öğrenin. Aleti anlayın. Daha fazla bilgi her zaman daha az bilgiden daha iyidir. Neden kör uçuyor?

  2. HTML'nizin geçerli olup olmadığını kimse umursamıyor. Senin dışında. Eğer istersen. Bir saniye boyunca kusursuz geçerli HTML üretmenin, web sitenizi çalıştırmaktan, kullanıcılarınızı memnun eden özellikler sunmaktan veya işi bitirmekten daha önemli olduğunu düşünmeyin.


3
Bunu ikinci yapmalıyım. Javascript kütüphanelerinde geçersiz HTML ile suçlanabilecek birçok sorun gördüm. Birden fazla iç içe form ve yasa dışı olarak kapatılmış etiketler büyük suçlulardır. Jeff'in dediği gibi, köle olmayın, ancak sayfanız geçerli HTML olmadığından jQuery'nin çalışmadığı zaman şikayet etmeyin (XHTML, HTML 5 veya ne tür bir doktip olarak seçerseniz).
Gareth Farrington

@Jeff Atwood: "HTML’nizin geçerli olup olmadığını kimse umursamıyor. Siz hariç." Üzgün ​​ama gerçek müşteriler gerçekten umursamıyor.
Marco Demaio

@MarcoDemaio Neden üzücü? Bir müşteri ve bir son kullanıcı olarak, sitenin tüm tarayıcılarda (çoğunlukla standartlara uygun olmayan) geçerli olup olmadığına bakılmaksızın tüm tarayıcılarda çalışıp çalışmadığı konusunda endişeliyim. Geçerli HTML gerçekten önemli değil. Google, Facebook, Twitter, bu site vb. Hiçbir alakalı sitenin geçerli bir işaretlemesi yok. Neden? Çünkü geçerli HTML, sayfayı şişirmekten başka bir şey yapmaz ve bant genişliği maliyetlerinizi arttırır.
NullUserException

Aynı şey mükemmel girintili biçimlendirme için de geçerli. Bu daha da işe yaramaz,% 100 bant genişliği kaybı ve hiçbir şekilde pratik kullanımı yok.
NullUserException

@NullUserException: Onaylı web sitelerinin genellikle tüm tarayıcılarda daha iyi iş verdiğini öğrendim çünkü bunun üzücü olduğunu düşünüyorum. Alan'ın cevabı yorumuma bakın: webmasters.stackexchange.com/a/373/1429 Bana kaydedilen bir web sitesinin doğrulanması ve hala çok fazla zaman kazandırıyor. Mükemmel girintili işaretleme hakkında, bu konuda hiçbir şey duymadım. 3 boşlukla girintili olmak isteyebilirim, ve bir tane girintili olmak istersiniz.
Marco Demaio

32

Geçerli HTML’yi değerli bir hedef olarak görüyorum, ancak bunu iyi web siteleri oluşturmanın tümü ve sonu olarak görmüyorum.

İşin püf noktası, işaretlemeniz tamamen geçerli olabilir ama yine de anlamsal olmayabilir - örneğin düzen veya gezinme için tablolar kullanmak. Geçerli kod ile anlamsal kod arasında bir fark var.

Başka bir notta, reklam ya da harici komut dosyaları kullanıyorsanız, kendinizle gerçekten karışma olasılığı olan kendi işaretlemesini ekleyebilirler.


22

Sanırım buna değer, doğrulama yaparak birçok biçimlendirme ve mantık hatası yakaladım. Bu "gerekli ama yeterli olmayan" şeylerden biri. Geçerli işaretleme, hatasız, uyarı ve ipuçlarını derleyen (veya JSlint aracılığıyla kontrol eden) kod gibi, doğru bir adım atmanız için iyi bir adımdır.


+1 bu konuda tamamen hemfikir. Sayfaları doğrulamak, JS ve çok gizemli görünen ve nasıl yapıldığını açıklayan bir HTML etiketinden ötürü, JS'nin ve nasıl yapıldığını açıklayan hataların peşinden koşan çok fazla zaman kazandırır. Ayrıca, FF addon Html Validator [ addons.mozilla.org/en-US/firefox/addon/html-validator/] gibi araçlarla, tüm sayfalarınızı yerel olarak doğrulamak çok kolaydır.
Marco Demaio

9

Geçerli HTML’nin en büyük sebebi, sayfanızın "büyük tarayıcılar" dışındakiler için daha erişilebilir olmasıdır. Tüm "büyük tarayıcılar", WWW'yi dolduran tüm geçersiz önemsizlerle baş etmek için sonsuz geçici çözümlere sahiptir. Bununla birlikte, geçerli HTML’ye yapıştırmak, örneğin, görme engelliler için bir tarayıcı kullanıyorsa veya sayfalarınıza çevrimdışı erişiyorsa, vb.


8

Kendisi için doğrulama çok kritik değildir, çünkü birkaç tarayıcı% 100 uyumludur ve teknik özelliklerin kuralları nasıl yorumlayacağı konusunda% 100 net değildir.

Ancak geçerli HTML olması, sitenizi uyarlamak ve geliştirmek için sizi daha iyi bir konuma getirir. Standartlar değiştikçe tipik olarak ileriye taşınırlar ve eğer yeni bir site geçerliyse, en son desteği desteklemek için güncelleme yapmak daha kolay olmalıdır.

Altta, geçerli olmak oyunun başında kalmayı kolaylaştırır ve en geniş kitleyle mümkün olduğunca uyumlu olmasını sağlar.


4

En iyi yaklaşım, hangi geçersiz HTML'nin kötü olduğunu ve hangi geçersiz HTML'nin önemli olmadığını öğrenmektir.

Örneğin, bir <div>etiketi kapatmayı unutmak çok kötü , çünkü mizanpajınız neredeyse kesinlikle bir veya daha fazla tarayıcıda bozuluyor.

Ancak, XHTML <br>yerine kullanmak <br />farketmez - tüm tarayıcılar her ikisini de satır sonu olarak değerlendirir. targetBağlantılardaki özniteliği kullanmak geçersiz, ancak en kötü senaryo, tarayıcının bağlantıyı yeni bir pencerede açmamasıdır.


targetgeçişli XHTML'de geçerlidir ve yalnızca mazoşistler katı kullanırlar. Kapanış eğrisini kaldırmak, sayfanızı geçersiz kılar ve bu da muhtemelen ekran kazıyıcılarını karıştırır. XHTML kullanmayı seçerseniz, sayfanız en azından geçerli XML olmalıdır.
Tgr,

1
@Tgr: Komik, mazoşistlerin standart olmayan modu tercih ettiklerini düşündüm. Hatta geçici doktiplerin bile sorunları var ("neredeyse standartlar" kipini kullanarak vb.)
DisgruntledGoat

1
Strict'in gerekli olduğunu savunuyorum - neden kullanımdan kaldırılmış kod ve tuhaflıklar modu riskini seçmeyi seçtiniz. Strict'i kullanmanın hiçbir maliyeti yoktur, bunun dışında tercih ettiğiniz biçimlendirme sürümü hakkında daha fazla bilgi edinmenizi teşvik eder.
CJM

3

Doğrulayıcıyı çalıştırırken, duruma göre size verdiği hataları incelemeniz gerekir. Doğrulama önemli midir? Benim için evet, çok önemli. Fakat bu bir zorunluluk mu? Hayır.

Aynı kimliği birden çok kez kullanma (bir sınıf yerine), satır düzeyinde öğelerin içine blok düzeyi öğeleri yerleştirme (genellikle bu öğeler de bu şekilde semantik olarak uymaz), görüntülerde alt alt özellikler eksik (engelliler için yetersiz erişim) ), hepsi önemlidir. Etiketlere bilinmeyen nitelikler gibi şeyler vardır DEĞİL önemli. Hiç. Dojo veya korkunç Meebo sosyal medya çubuğu gibi Javascript çerçeveleri, kanca olarak özel öznitelikler kullanır ve HTML belirtimi, bunlara izin verildiğini ve bilinmeyen herhangi bir özniteliğin göz ardı edileceğini belirtir. Doğrulayıcı onları görmezden gelmez, ancak hatalar atar. Bu hatalar göz ardı edilebilir.

Doğrulama yaparken, sadece hata yaptığınız takdirde yanlış yaptığınızı varsaymayın. Anlambilim çok daha önemlidir ve sadece geçerli anlamsal HTML, doğru anlambilimin doğal bir sonucu değil, geçerli HTML olur.


Kabul ediyorum - web sayfanızı doğrulayın, ancak bazı durumlarda, neden orada olduklarını bildiğiniz sürece, uyarıları görmezden gelmeyi seçebilirsiniz
Casebash

3

Sitenizi geçerli HTML için test etmenin bir nedeni, arama motoru örümceklerinin sayfalarınızın anlamını tamamen endekslemesini ve belirlemesini sağlar. Eğer hatalı biçimlendirilmiş HTML (büyük tarayıcıların geçmiş nedenlerle çalışabileceği) nedeniyle bunu yapamazlarsa, o zaman potansiyel olarak arama motoru sıralamalarınızı sınırlıyorsunuzdur.

Ayrıca, büyük arama motorları hatalı biçimlendirilmiş HTML ile başa çıkmak için iyi bir iş çıkarsa da, içeriğinizin hak ettiği kadar üst sıralarda yer alma yeteneğinizi daha da etkileyen, geçerlilik için sayfa kalitesi "puanları" atayabilirler.


2
Google, kategorik olarak geçersiz HTML’nin sıralama üzerinde bir etkisi olmadığını belirtti. Ancak, HTML’nin o kadar yanlış biçimlendirilmiş olduğunu görebiliyorum, sayfadaki gerçek içerik örümcekler tarafından okunamıyor - bu durumda tarayıcıların görüntü oluşturma sorunları göstermeye başlayacağı neredeyse kesin.
DisgruntledGoat

@DisgruntledGoat Haklısınız, işte bunun için bir referans: youtube.com/watch?v=FPBACTS-tyg
JasonBirch

@DisgruntledGoat Açıkçası ... Google’ın kendisi geçersiz HTML’lerle dolu, ve onların gerçekten umursamadıklarını söylediklerini ve daha hızlı yükleme süreleri anlamına gelirse geçersiz HTML’lerin olması iyi bir şey olduğunu hatırlıyorum .
NullUserException

3

Bunun artık önemli olduğunu sanmıyorum. Eskiden validasyon için köleydim, şimdi nadiren kontrol ediyorum. Belki de sitemin geçerli olduğundan emin olduklarım tükendi ya da başka kimse umursamadığı için artık umursamıyordum. Ziyaretçilerin% 99,9'unun ne olduğunu bile bilmediğini, hatta umursarsa bile bilmediğini garanti ederim. Gelecekteki tarayıcı yazılımı olabilir, ama o gün geldiğinde, o zaman endişeleneceğim.


2

Doğrulama yararlıdır çünkü yakalanması zor bazı hataları görmenize yardımcı olabilir

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

veya öngörülemeyen tarayıcı davranışı (örneğin, blok öğelerini bir nesneye yerleştirmek abazen Firefox'ta çirkin şekillerde bozulabilir).


2

Hiç kimsenin henüz bahsetmediği bir nokta, geçersiz HTML'nin, tarayıcı görüntülerken standart dışı HTML'yi anlamaya çalışırken daha yavaş görüntü oluşturma sürelerine neden olabileceğidir.


Yapabilseydim bunu reddederdim. Ben son derece bu herhangi gözlemlenebilir etkiye sahiptir şüphe; Sayfayı şişiren ve biçimlendirmek için daha fazla zamana ihtiyaç duyan (özellikle de daha yavaş / mobil bağlantılarda) geçerli bir işaretlemeyle daha fazla ilgilenirim .
NullUserException

@NullUserExceptions: BradB'nin yaptığı şeyin -1'i hak ettiğini sanmıyorum. Kanıtlanması zor olabilir, ancak bir HTML karmaşasını içinde sıralaması ve düzeltmesi gereken bir tarayıcı, içinde herhangi bir hata olmadan iyi biçimlendirilmiş geçerli bir HTML sayfasından biraz daha uzun sürebilir. Neden bize, HTML doğrulaması kötüye kullanımı nedeniyle şişen bir sayfanın iyi bir örneğini gösteren bu soruya bir cevap vermiyorsunuz. Geçerli bir HTML sayfasının, geçersiz HTML koduyla aynı sayfaya kıyasla nasıl abartılabileceğini düşünemiyorum.
Marco Demaio,

1

geçerli html'ye sahip olmanın dezavantajı yoktur. Her şeyden önce bir özellik bulunmasının ve işlerin nasıl çalışması gerektiğini tanımlamak için neden bu kadar çok çaba harcanmasının bir nedeni var.

Temel olarak, kazandığınız tek şey özelliklere uymak. Bu da, html okumak için yazılmış programlar (tarayıcılar, botlar), bir şeyler yanlış giderse özellikleri karşılamadığınız için sizi suçlayamaz. ve bu programlardan bazıları size ekstra puanlar verir (bot "spesifikasyonları karşılarsa" arama motorlarında daha üst sıralarda yer alır). Eğer özellikleri yerine getirirseniz, bazı tarayıcılar kırık HTML'leri olması gerektiğini düşündüğünüz şekilde yapmazsanız, süprizle daha az yakalanırsınız.

bu nedenle, özellikleri yerine getirmek ve geçerli bir html yazmak sizin için iyi, hiçbir dezavantaj yok.


Hum, hangi özelliklere sahipseniz, hangi arama motorlarında daha yüksek puanlar alıyorsunuz?

2
Dezavantajı, tüm kodunuzun spesifikasyonları karşıladığından emin olmak için harcadığınız ek geliştirme süresi olacaktır. Bu maliyet genellikle minimum olmakla birlikte, yine de bir dezavantaj olarak ele alınmalıdır.
chatche

@kinopiko: Varsa, büyük olanlardan hiçbiri değil (Google, Yahoo, Bing, Ask). Tecrübeli (insan) bir web geliştiricisinin bile okuyamayacağı bir kod karışıklığına sahip olmanız sizi engelleyecektir, ancak bazı "yasadışı" niteliklerin kullanılması sıralama üzerinde kesinlikle sıfır etkiye sahiptir.
DisgruntledGoat

Validasyon terminolojisindeki problem budur. Ya geçerli ya da değilsin. Derece yok. Bozuk HTML (örneğin kapatılmamış etiketler, yanlış yerleştirilmiş / eksik yapısal etiketler vb.) Geçersizdir ve SEO'yu incitir, ancak çoğu kişi "doğrulama" deyince bundan bahsetmez. Bir acemi, bu acemi hataların hiçbirini yapmadıklarından emin olmak için bir onaylayıcı kullanmak isteyebilir, ancak profesyonel bir geliştiricinin kodları zaten SEO için yeterince "geçerli" olduğundan, bu kodun zaten "yeterince geçerli" olduğundan emin olması gerekmez.
Majesteleri

1

Bazı HTML doğrulama hataları, açık olmayan mizanpaj sorunlarına (örneğin, yanlış yerleştirilmiş / kapatılmamış etiketler), JavaScript hatalarına (örneğin bir idkereden fazla kullanma ) ve bazı kullanıcılar için sorunlara (örneğin alt, görüntüler üzerinde anlamlı veya boş bir öznitelik içermemesine ) neden olabilir.

Tüm sayfalarımız doğrulanırsa, hata kaynaklarını ekarte etmek için yapabileceğiniz güzel bir otomatik kontrol. Herhangi bir zarara neden olmadıklarını bildiğiniz için bazı doğrulama hataları bırakırsanız, çekiniz artık otomatik değildir: Her hataya bakmanız ve sorun olmadığını unutmayın. Şahsen, bilgisayarları arttırmak yerine yapmam gereken işleri azalttığı zaman tercih ederim.


1

Kimsenin bahsetmediği bir nokta gelecekteki tarayıcı gelişmelerdir. Bugünün tüm tarayıcıları geçersiz biçimlendirme işlemlerini nispeten iyi ele alsalar da, bu her zaman böyle olmayabilir.

Gelecekte tarayıcı üreticileri, tarayıcılarının HTML / XHTML standartlarına göre çalışmasını sağlamak olacaktır, bu nedenle web geliştiricilerin de vurması gereken şey budur. Sadece belirli bir geçersiz işaretleme bitinin çalışmasının, gelecekteki tarayıcılarda çalışacağını garanti etmez.


Bunun doğru olup olmadığını merak ediyorum söylemeliyim.

2
Evet, herhangi bir tarayıcıyı, <font>etiketi veya ilkini destekleyen hiç göremiyorum .
DisgruntledGoat

Kaldırılan veya geçersiz işaretlemesi desteğini - Sorunun ne olduğunu görmüyorum olabilir gelecekte değişebilir. Çoğu tarayıcıda (X) HTML'nin kusurlu uygulanmasına bakarsanız, kesinlikle geçerli bir işaretlemeye devam edersiniz. Sadece ne yaptığınızı bilmekten başka geçerli bir işaretlemeyle ilgili maliyet yoktur.
CJM

1

Geçerlilik, uyumsuzluklardan kaçınmanıza yardımcı olur ve kodun korunabilir kalmasını sağlar. Tarayıcılar biçimlendirme hatalarından kurtulur, ancak bazen çok sezgisel olmayan yollarla.


  • DTD tabanlı (HTML4, XHTML1 @ W3C) - Buna değmeyebilir. DTD ilkeldir ve örneğin çoğu özniteliğin geçerliliğini kontrol edemez. Varlıklar ve yuvalama ile ilgili hataları çoğunlukla anlamakta zorlanacaksınız.

  • HTML5 doğrulayıcısı - Evet . Kesinlikle. HTML5 daha pratiktir ve eskiden hataları olan bazı zararsız yapılara izin verir. OTOH Henri'nin onaylayıcısı, gerçek sorunları keşfetmede çok daha ayrıntılı ve daha iyi.


JS tarafından oluşturulan kodun geçerliliği, tarayıcılar DOM'da nasıl çalıştığından bağımsız olarak çalıştığı için önemli olabilir. Kullanırsanız document.write(), sözdiziminin doğru olmasına özen göstermeniz gerekir (sayfa kaynağı ile aynı ayrıştırıcıdan geçer).



0

Google ve Bing, CSS veya HTML doğrulamasını sıralama faktörü olarak kullanmaz, asla kullanmaz ve kullanmaz.

Web sitelerinin çoğunda düzinelerce-yüzlerce hata var ve bunlar hakkında endişelenmenize gerek yok; çünkü tüm arama motorları bu sayfanın nasıl işlendiğine dikkat ediyor. Web sitenizin tüm büyük tarayıcılarda ve Google’ın Getir’inde doğru şekilde işlendiğinden emin olun .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.