テーマのW3C標準への準拠を維持する方法


10

テーマを書いたとき、それがXHTML 1.1とCSS 2.1に準拠していることを確認しました。次に、プラグインを追加したところ、テーマはXHTMl 1.1に準拠しなくなりました。次に、CSSでGoogle APIフォントを使用しましたが、CSS 2.1に準拠しています。

プラグインやフォントなどを削除せずにコンプライアンスを維持できる方法はありますか、それとも検証エラーを無視する必要がありますか?

回答:


5

修正、テーマはXHTML 1.1およびCSS 2.1に引き続き準拠していましたが、追加したプラグイン準拠していない追加のコードを挿入しました。

残念ながら、プラグインを使用している場合、コンプライアンスを維持する簡単な方法はありません。最善の方法は、テーマと個人的に担当するすべてのマークアップを検証し、他の開発者が自分の作業を検証するために時間をかけたことを期待することです。

代替は、あなたの部分に多くの仕事である-あなたはまだプラグインのコア機能を使用できますが、出力に許可していない任意のブラウザにマークアップを。プラグインが触れるすべてのフックを解除する独自のカスタムレイヤーを追加し、独自の出力バッファーを構築します。これは、ブラウザーに送信されるマークアップのスタイルを制御する唯一の方法です。

いくつかのプラグインがHTML 5を使用し始めています...他のプラグインはCSS3を使用しようとしています。これらのプラグインをインストールし、それらの出力をサニタイズおよび検証する手順を実行しない場合、サイトは適切に検証されなくなります。


1
おかげで、HTMLをサニタイズするオプションを使いたくありません。私は自分のサイトからこれらのW3Cバッジを削除する必要があるだけかもしれません:)
James

自動的にコンプライアンスを取得できるため、必ずしも必要ではありません。以下の私の回答を参照してください。テーマやプラグインの出力に
煩わされる

+1、他の人のコードに本当に依存することはできません。彼らのコードが有効なhtmlを出力することを望んでください。
Ben Everard、

8

各プラグインは、生成したいコードを生成しますが、その一部はXHTML 1.1に準拠していません。それを修正する唯一の合理的な方法は、それぞれを監査し、違反者を修正するか、開発者に修正を修正させるか、修正をパッチとして使用させることです。

代わりに、フィルターを作成してクリーンアップすることもできますが、すべての特殊なケースをキャッチしようとすると、私個人の悪夢のようなものになり、パフォーマンスに影響して不審なメリットが発生します。

これを望んでいるクライアント/ボスはいますか、それとも単に「持っているのがいい」と想定されているものですか?(はい、強く感じる人もいますが、私はそうではありません。)

とはいえ、XHTMLはWebでの「公平な子」のステータスを失っています。Tim Berners-Leeで さえ2006年にそう言った

いくつかの事柄は、数年後を経てより明確になります。HTMLを段階的に進化させる必要があります。空のタグと名前空間の属性値とスラッシュを引用符で囲むなど、世界をXMLに切り替えようとしても、一度にうまくいきませんでした。HTMLを生成する大規模なパブリックは移動しませんでした。これは主に、ブラウザが文句を言わなかったためです。一部の大規模なコミュニティはシフトし、適切なシステムの成果を享受していますが、すべてではありません。HTMLを段階的に維持し、整形式の世界への移行を継続し、その世界でより多くの力を開発することが重要です。

また、HTML5はXHTML 1.0よりもはるかに簡単に読むことができます。StackOverflowで終了します。以下がその概要です。

構文的には、HTML5を使用すると、常に標準モードが呼び出される、よりクリーンで読みやすいマークアップになります。XHTML 1.0(text / htmlとして提供される)を使用する場合、ブラウザーが自動的に実行する一連のクラッドを指定します(くだらないdtdに対して検証するため)。


それは私の個人的なウェブサイトであり、テーマ自体はかなり古いです。Webサイトとテーマはすべて私にとって趣味です。私が新しいテーマを書くときまでに、私たちはおそらくすべての主要なブラウザーでかなり良いHTML5サポートを持っているでしょう。プラグインは、非準拠のマークアップを生成し続けます。違反者をクリーンアップしてみることもできますが、プラグインの更新が難しくなります。リンクをありがとう。
James

ええ、ビジネス目的でない場合や、XHTMLコンプライアンスを維持する能力に関する専門知識を示す場合は、心配する必要はありません。
MikeSchinkel 2010

私はWebサイトとサーバーを学習ツールとして使用しています。仕事とは違うことを学ぶ。
James

残念。面白くない仕事のように聞こえます。学ぶことは私がするすべてです。:)
MikeSchinkel

ああ、仕事は十分楽しいですが、ほとんどがWindowsベースの開発です。これは、C#からの休憩に似ています:)
James

2

標準への準拠は、Webサイトがすべてのブラウザーで機能することを保証するものではありません。標準への準拠を無視し、できるだけ多くのブラウザーでのテストに焦点を当てます。


1

サイトの出力全体をバッファリングし、準拠したHTMLに整理できます。それの一番の利点は、これを完全に自動化できることです。

テーマの初期化または関連するフック(* setup_theme *フックなど)で出力バッファリングを有効にできます。

2つのコードフラグメントを次に示します。最初のものは、出力バッファリングを開始し、後でバッファを読み取ることを示しています。

<?php
ob_start();
?>
<?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>

2つ目は、いくつかの構成オプションの動作を示しています。

/* Tiny Configuration */
$config["clean"]         = true;
$config["hide-comments"] = true;
$config["output-xhtml"]  = true;
$config["indent-spaces"] = 2;
$config["tab-size"]      = 2;
$config["wrap"]          = 0;

$buffer = ob_get_clean();
$tidy   = tidy_repair_string($buffer, $config);

echo $tidy;

そうするための既存のワードプレスプラグインはすでにあるに違いない。どれどれ:


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