21

SO を含め、多くのサイトが XHTML をマークアップ言語として使用し、仕様に準拠していないことに気付きました。SO のソースを参照するだけで、段落の終了タグが欠落している、無効な要素などがあります。

ツール (および開発者) は、無効なマークアップを作成する場合、XHTML doctype を使用する必要がありますか? また、ブラウザーは、粗悪なマークアップを受け入れることについて、より断固たる態度を示すべきでしょうか?

そして、誰かが偽善者を叫ぶ前に、私のブログには、noscript タグのスタイリングを含むキャプタを含む無効なマークアップが 1 つ含まれています (または最後に確認したときはそうでした)。

4

14 に答える 14

16

有効なマークアップを使用する理由はたくさんあります。私のお気に入りは、回帰テストの形式として検証を使用できることです。これにより、エラーがクリティカル マスに達すると、「デルタ ロット」に相当するマークアップが実際のレンダリングの問題につながるのを防ぐことができます。実際のところ、タイプミスや誤ってネストされた/閉じられていないタグなどの「怠惰な」エラーが蓄積されるのを許すのは、単純にずさんです。有効なマークアップは、熱心なプログラマーを見分ける 1 つの方法です。

デバッグの問題もあります。有効なマークアップは、避けられないクロスブラウザーの互換性の問題に取り組むための安定したベースラインも提供します。自分の時間を大切にする Web 開発者は、最初にマークアップが少なくとも構文的に有効であることを確認せずに、ブラウザーの互換性の問題のデバッグを開始するべきではありません。

(ちなみに、stackoverflow.com はこれらのテストの両方に失敗し、問題を解決するための提案 拒否されました。)

とはいえ、特定の質問に答えるには、有効な (または少なくとも整形式の) マークアップを作成する予定がない限り、XHTML doctypes のいずれかを使用する価値はおそらくありません。XHTML の主な利点は、XHTML が XML であり、XML を処理するツールやテクノロジによって XML を処理および変換できるという事実から得られます。XHTML を整形式の XML にする予定がない場合は、その doctype を選択してもほとんど意味がありません。最新の HTML 4 仕様は、おそらく必要なすべてのことを行い、はるかに寛容です。

于 2008-08-06T14:46:40.660 に答える
2

常に標準に従って検証するように努める必要があります。ウェブサイトは現在のブラウザと将来のブラウザで表示され、正常に動作することを確認します。

于 2008-09-02T09:56:54.997 に答える
2

Doctypeを指定した場合、このDoctypeに準拠しない理由はないと思います。

XHTMLを使用すると、自動エラー検出が簡単になり、すべての変更で無効なマークアップがないか自動的にチェックできます。これにより、特に自動生成されたコンテンツを使用する場合のエラーが防止されます。テンプレートエンジン(JSP、ASP.NET StringTemplateなど)を使用しているWeb開発者にとって、1つの終了タグのコピー/貼り付けが少なすぎたり多すぎたりするのは非常に簡単です。これが唯一のエラーである場合は、すぐに検出して修正できます。私はかつて、ページごとに165の検証エラーが発生したサイトで働いていましたが、そのうち2つまたは3つは実際のバグでした。これらは、他のエラーの乱雑さの中で見つけるのは困難でした。自動検証により、ソースでのこれらのエラーを防ぐことができます。

言うまでもなく、標準を選択してそれに固執することは、他のシステム(スクリーンスクレイパー、スクリーンリーダー、検索エンジン)との相互運用性にメリットをもたらすことはなく、CSSソリューションを使用した有効なセマンティックXHTMLがすべての人にとって不可能な状況に遭遇したことはありません。主要なブラウザ。

明らかに、複雑なシステムで作業する場合、Doctypeに固執することが常に可能であるとは限りませんが、これは主に、これらのシステムのさまざまな部分、またはおそらくレガシーシステムを開発するさまざまなチーム間の不適切なコミュニケーションの結果です。最後のケースでは、これらのケースを分離し、それに応じてDoctypeを変更する方がおそらく良いでしょう。

コストに関係なく、誰かがそう言ったという理由だけで実用的でXHTMLに準拠しないのは良いことですが、CSSとブラウザー、テストおよび検証ツールに関する現在の知識があれば、ほとんどの場合、メリットはコストよりはるかに大きくなります。

于 2008-09-02T10:11:45.473 に答える
2

私は XHTML の有効性について OCD を持っていると言えます。コードが有効でないという問題のほとんどは、プログラマーが HTML と XHTML の違いを知らないことが原因であることがわかりました。私は 100% 有効な XHTML と CSS を作成してきましたが、他のブラウザーで大きなレンダリングの問題が発生したことはありません。すべてを有効に保ち、風変わりな css に関する賢明なことは何も試さないようにすれば、修正にかかる時間を大幅に節約できます。

于 2008-09-15T15:34:30.250 に答える
1

哲学的なストレスから逃れるためだけに、私は XHTML をまったく使用しません。とにかく、ブラウザが XHTML のように扱っているわけではありません。

ページが application/xhtml+xml として送信された場合、ブラウザーは不適切なマークアップを拒否しますが、そうである場合はほとんどありません。これで問題ありません。

CSS や JavaScript を Stack Overflow でインラインで使用するなどのことについては、メンテナンスが難しくなるという理由だけで、より懸念されます。

于 2008-08-06T14:29:44.780 に答える
1

私は有効な XHTML と CSS を目指して努力することを信じていますが、多くの理由でそれを行うのは難しい場合がよくあります。

  • まず、一部のコンテンツは AJAX 経由でロードできます。フラグメントが既存の DOM に正しく挿入されないことがあります。
  • 表示している HTML は、すべて同じドキュメントで作成されたものではない可能性があります。たとえば、ページは複数のコンポーネントまたはテンプレートで構成され、ブラウザがページをレンダリングする直前に一緒にスローされます。これは言い訳にはなりませんが、表示されている HTML がすべて一度に手作業でコーディングされていると想定することはできません。
  • Markdown によって生成されたコードの一部が無効な場合はどうなりますか? 有効なコードが生成されないことをスタック オーバーフローのせいにすることはできません。
  • 最後に、DOCTYPE の目的は単に「ねえ、私は有効なコードを使用しています」と言うのではなく、ブラウザーに何をしようとしているのかを知らせて、少なくとも正しく解析できるようにすることでもあります。その情報。

ほとんどの開発者が DOCTYPE を指定し、それを明示的に順守しないとは思いません。

于 2008-08-06T14:35:35.923 に答える
1

「問題なくレンダリングされれば、心配する必要はありません」という意見には同意しますが、現時点では完全にサポートされていない可能性がありますが、標準に従うのは良いことです。レイアウトに Table を使用することはできますが、これは適切ではありません。

于 2008-08-06T14:42:25.130 に答える
1

いいえ、整形式であることを保証できない場合は XHTML を使用しないでください。実際には、XML シリアライザーを使用してマークアップを生成しないと保証できません。XML の生成について読んでください。

整形式であることは、 XHTML と HTML を区別するものです。マークアップ エラーが「1 つだけ」ある XHTML は、XHTML ではなくなります。毎回完璧でなければなりません

「XHTML」サイトがいくつかのエラーで動作するように見える場合、ブラウザが DOCTYPEを無視し、ページを HTML として解釈するためです。

ページを強制的に XHTML として解釈するXHTML プロキシを参照してください。ほとんどの場合、それらは無残に失敗します。これが、XHTML の将来が不透明であり、HTML の開発が再開された理由の 1 つです。

于 2008-10-11T13:16:24.397 に答える
0

場合によります。私のブログでは、YouTube ビデオが無効な XHTML を引き起こすという問題がありましたが、問題なく表示されました。一方、「有効な XHTML」リンクがありますが、「有効な XHTML」という主張と無効な XHTML の組み合わせは専門的ではありません。

SO は有効であるとは主張していないので、許容できると思いますが、個人的に私がジェフだったら、最新のブラウザーで見栄えがよくても、面倒で修正しようとするでしょうが、一部の人々はむしろ先に進んで実際に物事を成し遂げます存在しないバグを修正する代わりに。

于 2008-08-06T14:25:40.577 に答える
0

IE、FF、Safari (ここに他のブラウザを挿入) で動作する限り、問題ありません。検証は、複数のブラウザーで正しくレンダリングすることほど重要ではありません。有効だからといって、たとえば IE で適切に動作するとは限りません。

サイトで Google アナリティクスなどを実行し、ユーザーが使用しているブラウザの種類を確認してから、最もサポートする必要があるブラウザを判断し、時間があるときに重要度の低いブラウザについて心配してください。

于 2008-08-06T14:29:09.697 に答える
0

問題なくレンダリングできれば、ピクセル パーフェクトかどうかは問題ではありません。

サイトを立ち上げて希望どおりに実行するにはしばらく時間がかかります。戻って変更を加えると、ページのレンダリング方法がわずかに変わるため、それらの問題を修正する必要があります。

ずさんな Web ページを作成する必要があると言っているわけではありませんが、壊れていないものを修正する理由はわかりません。近い将来、ブラウザーがエラー修正のサポートを終了することはありません。

于 2008-08-06T14:29:56.543 に答える
0

一部のブラウザでは標準コードを適切にレンダリングできない場合に、Web サイトを標準に適合させようとすることに誰もが巻き込まれる理由がわかりません。私は 10 年ほど Web デザインに携わってきましたが、ダブルコーディング (CSS のハッキング) をやめ、自分のサイトにボタンを配置できるように愚かなものを変更することをやめました。

< div> を使用すると無効になると思います。また、それなしで主要な JavaScript/AJAX を実行するのは少し難しくなります。

于 2008-08-06T14:30:23.203 に答える
0

非常に多くの標準があり、それらは非常に「強制」またはサポートされていないため、重要ではないと思います。誤解しないでほしいのですが、私は標準があるべきだと思いますが、それらは実施されていないため、誰も従わず、大規模な下向きのスパイラルになっています。

于 2008-08-06T14:33:33.947 に答える
0

そこにあるサイトの 99.999% にとって、それは本当に問題ではありません。唯一問題があったのは、HTML 入力を HTMLTidy で実行して XHTML 化してから、その上で処理を実行したことです。

ほとんどの場合、それは古いプログラマーの公理です: 入力を信頼しない.

于 2008-08-06T14:37:08.603 に答える