HTML検証:価値があるか?


52

すべてのページが有効であることを確認することの利点と欠点(ある場合)は、主要なブラウザーすべてで機能する無効なHTMLと比較してどのようなものですか?

また、Javascriptの実行後に有効なHTMLを使用することも重要ですか?


5
これはあなたの質問には答えませんが、... Doctypeをページに配置すると、ブラウザはQuirksモードではなく標準モードになります。quirksモードを調べて、意味を確認してください。
エヴァンプライス

1
@Evanアカガレイ-未あらゆる DOCTYPEけれども。いくつかのDOCTYPESは、実際には奇抜な、またはほぼ標準的なモードをトリガーします。HTML5仕様では、これについて詳しく説明しています。
-luiscubal

1
@luiscubalはen.wikipedia.org/wiki/Quirks_modeからHTML 5で新しく追加されました。「...完全なDOCTYPEが存在する場合、ブラウザは標準モードを使用し、存在しない場合、ブラウザはQuirksモードを使用します。 "。
エヴァンプライス

@Evan Plaice以前のHTMLバージョンについては不明ですが、HTML5には古代のDOCTYPESの処理方法が具体的に記載されています。whatwg.org
specs /

1
@Evan Plaice言い換えると、「DTD HTML 2.0 Level 1」は奇抜モードをトリガーします。
luiscubal

回答:


42

私は間違いなくやりがいがあると思いますが、検証の奴隷になるべきではありません-それは愚か者のゲームです。

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

  1. HTMLを検証します。有効なHTMLマークアップを持つことの意味を理解します。ツールを理解します。少ない情報よりも、多くの情報が常に優れています。なぜ盲目で飛ぶのですか?

  2. HTMLが有効かどうかは誰も気にしません。あなたを除いて。あなたがしたい場合は。完全に有効なHTMLを作成することは、Webサイトを実行したり、ユーザーを喜ばせる機能を提供したり、作業を完了したりすることよりも重要だと考えないでください。


3
2番目にこれを取得する必要があります。無効なHTMLのせいにされる可能性のあるjavascriptライブラリに関する多くの問題を見てきました。複数のネストされたフォームと違法に閉じられたタグが主要な犯罪者である。ジェフが言うように、奴隷ではないが、ページが有効なHTML(XHTML、HTML 5、またはdoctypeとして選択したもの)ではないため、jQueryが機能しないときに文句を言わないでください。
ガレスファリントン

@Jeff Atwood:「あなたのHTMLが有効かどうかは誰も気にしません。あなたを除いて」と言うとき、私はこれ以上同意できません。悲しいけれど本当ですが、顧客は本当に気にしません。
マルコデマイオ

@MarcoDemaioなぜ悲しいの?クライアントおよびエンドユーザーとして、検証するかどうかよりも、サイトがすべてのブラウザーで動作するかどうか(ほとんどのブラウザーが標準に準拠していないかどうか)に関心があります。有効なHTMLは本当に重要ではありません。Google、Facebook、Twitter、このサイトなど、関連するサイトには有効なマークアップがありません。どうして?有効なHTMLはページを肥大化させるだけであり、帯域幅コストが増加するためです。
NullUserException

同じことが、完全にインデントされたマークアップにも当てはまります。これはさらに役に立たず、帯域幅の100%の浪費であり、実際にはまったく使用されません。
NullUserException

@NullUserException:検証済みのWebサイトは通常、すべてのブラウザーではるかに優れたレンダリングを行うことがわかったため、悲しいと思います。アランの答えに対する私のコメントを参照してください:webmasters.stackexchange.com/a/373/1429私に保存されたウェブサイトを検証しても、それでも私は膨大な時間を節約します。完璧なインデントされたマークアップについて、私はそれについての仕様を聞いたことがありません。私は3つのスペースでインデントしたいかもしれません、そしてあなたは1つインデントしたいかもしれません。
マルコデマイオ

32

私は有効なHTMLを価値のある目標と考えていますが、良いWebサイトを構築するためのすべての目的やすべての目的とは考えていません。

秘Theは、マークアップが完全に有効であっても、セマンティックではない場合があることです。たとえば、レイアウトやナビゲーションにテーブルを使用することです。有効なコードとセマンティックコードには違いがあります。

別の注意として、広告や外部スクリプトを使用する場合、彼らは独自のマークアップを挿入する可能性があります。


22

検証を求めて多くのマークアップと論理エラーをキャッチしたので、それは価値があると思います。これは、「必要だが十分ではない」ものの1つです。エラー、警告、およびヒントのないコンパイル(またはJSlintを介したチェックアウト)のような有効なマークアップは、それを正しくするための良い最初のステップです。


+1はこれに完全に同意します。ページを検証することで、JSや、不思議に思われるバグがあり、HTMLタグがすり減っていないか閉じていないために発生するバグを追跡する時間を大幅に節約できます。さらに、FF addon Html Validator [ addons.mozilla.org/en-US/firefox/addon/html-validator/]などのツールを使用すると、すべてのページをローカルで検証するのが非常に簡単です。
マルコデマイオ

9

有効なHTMLの大きな利点は、ページが「主要なブラウザ」以外のものにアクセスしやすくなることです。すべての「主要なブラウザ」には、WWWに存在するすべての無効なジャンクを処理するための無限の回避策があります。ただし、有効なHTMLに固執することは、たとえば、誰かが視覚障害者のためにブラウザーを使用している場合や、オフラインでページにアクセスしている場合などに役立ちます。


8

100%に準拠しているブラウザはほとんどなく、ルールの解釈方法についても仕様が100%明確ではないため、検証自体はそれほど重要ではありません。

ただし、有効なHTMLを使用することで、サイトを適合および改善するためのより良い立場になります。標準が移動するにつれて、標準は一般に前方に移行します。新しいサイトが有効な場合、最新のものをサポートするように更新する方が簡単です。

一番下に、有効であると、ゲームのトップを維持し、できるだけ多くの視聴者と互換性を保つことが容易になります。


4

最良のアプローチは、どの無効なHTMLが悪いか、そしてどの無効なHTMLが重要でないかを知ることです。

たとえば、<div>タグを閉じることを忘れると、レイアウトが1つまたは複数のブラウザーでほぼ確実に台無しになるため、非常に悪いです。

ただし、XHTMLの<br>代わりに使用する<br />ことは問題ではありません。すべてのブラウザは、両方とも問題なく改行として解釈します。targetリンクでの属性の使用は無効ですが、最悪のシナリオは、ブラウザーがリンクを新しいウィンドウで開かないことです。


target過渡的なXHTMLで有効であり、マゾのみがstrictを使用します。スラッシュを省略すると、ページが無効なXMLになり、スクリーンスクレイパーが混乱する可能性があります。XHTMLの使用を選択した場合、少なくともページは有効なXMLである必要があります。
Tgr

1
@Tgr:おかしい、私はマゾが非標準モードを好むと思った。過渡的なdoctypeにも問題があります(「ほぼ標準」モードなどを使用)
DisgruntledGoat

1
私は、Strictが不可欠であると主張します-非推奨のコードと奇抜なモードのリスクを実行することを選択する理由。Strictを使用するのに費用はかかりませんが、それはあなたがあなたの好みのマークアップバージョンについてもっと知ることを奨励することを除いてです。
CJM

3

バリデーターを実行するとき、ケースバイケースでそれが与えるエラーを調べる必要があります。検証は重要ですか?私にとって、はい、それは非常に重要です。しかし、それは要件ですか?番号。

(クラスの代わりに)同じIDを複数回使用する、インラインレベルの要素内にブロックレベルの要素を配置する(通常、これらの要素は意味的にこの方法に適合しない)、画像のalt属性が欠落する(障害者のアクセシビリティが低いなど) )、すべてが重要です。タグの不明な属性などは重要ではありません。まったく。DojoやそのひどいMeeboソーシャルメディアバーなどのJavascriptフレームワークは、フックとしてカスタム属性を使用します。HTML仕様では、これらは許可されており、不明な属性は無視されると規定されています。バリデーターはそれらを無視しませんが、エラーをスローします。これらのエラーは無視できます。

検証するとき、エラーがある場合は間違っていると考えないでください。セマンティクスは非常に重要であり、有効なHTMLが適切なセマンティクスを持っていることの自然な結果であることが多いということはたまたま起こります。


私は同意します-あなたのウェブページを検証しますが、状況によっては、警告が存在する理由を知っている限り、警告を無視することを選択できます
-Casebash

3

有効なHTMLについてサイトをテストする理由の1つは、検索エンジンスパイダーがページの意味を完全にインデックス付けおよび決定できることを確認することです。不正なHTML(歴史的な理由で主要なブラウザが回避する可能性がある)が原因でそうできない場合、検索エンジンのランキングを制限する可能性があります。

また、主要な検索エンジンは不正なHTMLをうまく処理しますが、有効性のためにページ品質の「ポイント」を割り当て、コンテンツの価値に応じてランク付けする能力にさらに影響を与える可能性があるという推測もあります。


2
Googleは、無効なHTMLはランキングに影響を与えないと断定的に述べています。ただし、HTMLの形式が正しくないため、ページ上の実際のコンテンツをスパイダーが読み取れない場合があります。ただし、この場合、ブラウザーでレンダリングの問題が発生することはほぼ確実です。
不機嫌なヤギ

あなたが正しい@DisgruntledGoat、ここではそのための参照です: youtube.com/watch?v=FPBACTS-tyg
JasonBirch

@DisgruntledGoat明らかに... Google自身は無効なHTMLに満ちている、と私は、彼らが本当に気にしないと述べた覚えているし、それがだと良いの事、無効なHTMLであればその手段ロード時間の短縮を持っています。
NullUserException

3

私は本当にそれがもう重要だとは思わない。以前は検証の奴隷でしたが、今ではそれをチェックすることはほとんどありません。おそらく、自分のサイトが有効であることを確認するために燃え尽きてしまったのか、あるいは誰も気にしないのでもう気にしなかったのかもしれません。私たちの訪問者の99.9%はそれが何であるかさえ知らず、彼らが知っていたとしても気にしさえしないことを保証することができます。将来のブラウザソフトウェアはそうなるかもしれませんが、その日が来たら、それについて心配します。


2

検証は、次のようなキャッチしにくいエラーを見つけるのに役立つため、便利です。

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

または予期しないブラウザの動作(たとえば、ブロック要素を入れるとa、Firefoxで見苦しくなることがあります)。


2

誰もまだ言及していない点は、無効なHTMLがレンダリング時間を遅くする一方で、ブラウザが表示時に非標準のHTMLを理解しようとしているということです。


できれば、これに反対票を投じます。私はこれが目に見える効果を持っていることを非常に疑います。私は、有効なマークアップがページを膨らませ、ロードするのにより多くの時間を必要とすることにもっと関心があるでしょう(特に低速/モバイル接続の場合)。
NullUserException

@NullUserExceptions:BradBの主張が-1に値するとは思わない。証明するのは難しいかもしれませんが、HTMLの混乱を整理して修正する必要があるブラウザは、エラーのない適切にフォーマットされた有効なHTMLページよりも少し時間がかかる場合があります。HTML検証の悪用による肥大化したページの良い例を示すこの質問に答えてみませんか。無効なHTMLコードを使用した同じページと比較して、有効なHTMLページが肥大化する可能性については考えられません。
マルコデマイオ

1

有効なhtmlを持っていることの欠点はありません。そもそも仕様が存在する理由と、物事の仕組みを定義するために多くの努力が仕様に費やされている理由があります。

基本的に、得られるのは仕様を満たすことだけです。つまり、htmlを読み取るように作成されたプログラム(ブラウザー、ボット)は、何か問題が発生した場合に仕様を満たしていないことであなたを責めることはできません。これらのプログラムのいくつかは、追加のポイントを提供します(ボットが「仕様に適合している」と報告した場合、検索エンジンのランキングが高くなります)。仕様を満たしていても、一部のブラウザが壊れたhtmlを想定どおりにレンダリングしない場合、驚くことはほとんどありません。

そのため、仕様を満たし、有効なhtmlを書くことはあなたにとって良いことであり、欠点はまったくありません。


ハム、仕様を満たせばどの検索エンジンでより高いランキングを獲得できますか?

2
欠点は、すべてのコードが仕様を満たしていることを確認するために費やす追加の開発時間です。このコストは一般的に最小限ですが、欠点として対処する必要があります。
チャット

@kinopiko:存在する場合、それは主要なもの(Google、Yahoo、Bing、Ask)のどれでもありません。持つ完全な混乱にも味付け(ヒト)ウェブ開発者が読むことができないコードのことはおそらくあなたの妨げになるが、いくつかの「違法」は属性を使用すると、ランキングに絶対にゼロ効果があります。
不機嫌なヤギ

それが検証用語の問題です。あなたは有効かそうでないかのどちらかです。度はありません。壊れたHTML(閉じられていないタグ、構造タグの置き忘れ/欠落など)は無効であり、SEOを傷つけますが、ほとんどの人は「検証」と言ってもそれについて話していません。初心者はバリデーターを使用して、それらの初心者の間違いを犯していないことを確認したいかもしれませんが、プロの開発者は、コードがすでに「十分に有効」であるため、SEOに関して言えば必要ありません。
Lèseはmajesté

1

一部のHTML検証エラーは、非自明なレイアウトの問題(たとえば、誤ってネストされた/閉じられていないタグ)、JavaScriptのバグ(たとえば、id複数回使用)、一部のユーザーの問題(たとえばalt、画像に意味のあるまたは空白の属性を含めない)を引き起こす可能性があります。

すべてのページが検証されると、それはエラーの原因を除外するために実行できる便利な自動チェックです。害を引き起こしていないことがわかっているために検証エラーを残した場合、チェックは自動化されなくなります。各エラーを確認し、問題がないことを忘れないでください。個人的には、コンピューターが私がしなければならない仕事の量を増やすよりも減らす方が好きです。


1

誰も言及していない点の1つは、将来のブラウザ開発です。今日のすべてのブラウザは無効なマークアップを比較的うまく処理しますが、常にそうであるとは限りません。

将来のブラウザメーカーは、ブラウザがHTML / XHTML標準に対応することを保証するため、Web開発者も同様にそうする必要があります。無効なマークアップの特定のビットが動作するからといって、将来のブラウザで動作することを保証するわけではありません。


私はそれが本当かどうか疑問に思う必要があります。

2
ええ、ブラウザが<font>タグまたはその同類のサポートをドロップするのを見ることはできません。
不機嫌なヤギ

私は問題が何であるかわかりません-非推奨または無効なマークアップのサポートは将来変更されるかもしれません。ほとんどのブラウザでの(X)HTMLの不完全な実装を見落とすことで、有効なマークアップに固執することは確実です。有効なマークアップに関連する費用はありません。あなたが何をしているのかを知るだけです。
CJM

1

妥当性は、非互換性を回避し、コードを保守可能に保つのに役立ちます。ブラウザはマークアップエラーから回復しますが、非常に直感的でない場合があります。


  • DTDベース(HTML4、XHTML1 @ W3C)—価値がないかもしれません。DTDはプリミティブであり、たとえば、ほとんどの属性の有効性をチェックできません。ほとんどの場合、エンティティとネストに関するエラーを理解するのは難しくなります。

  • HTML5バリデーターはい。絶対に。HTML5はより実用的であり、以前はエラーであった無害な構成要素を許可します。OTOH Henriのバリデーターは、実際の問題を発見するのにはるかに徹底的で優れています。


ブラウザはDOM上で動作するため、作成方法に関係なく、JSで生成されたコードの有効性が重要になる場合があります。を使用する場合はdocument.write()、構文が正しくなるように注意する必要があります(ページソースと同じパーサーを通過します)。



0

GoogleとBingは、ランキング要素としてCSSまたはHTML検証を使用していません。

ほとんどのウェブサイトには数十から数百のエラーがあり、すべての検索エンジンがページのレンダリング方法に関心があるため、それらについて心配する必要はありません。ウェブサイトがすべての主要なブラウザとGoogleのFetchで正しく表示されることを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.