web-dev-qa-db-ja.com

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

私がテーマを書いたとき、私はそれがXHTML 1.1とCSS 2.1に準拠していることを確認しました。それから私はプラグインを追加しました、そしてテーマはもうXHTMl 1.1に準拠していません。それから私は私のCSSでGoogle APIフォントを使用しました、そしてそれはより長いCSS 2.1準拠です。

プラグインやフォントなどを削除しなくても準拠性を維持できる方法はありますか、それとも検証エラーを無視してもいいですか?

10
James

訂正、あなたのテーマはまだXHTML 1.1とCSS 2.1に準拠していましたが、追加したプラグインはに準拠していないという追加のコードを挿入しました。

残念ながら、プラグインを使用している場合は、コンプライアンスを維持する簡単な方法はありません。あなたができる最善のことはあなたのテーマとあなたが個人的に責任があるすべてのマークアップを検証することです、そして他の開発者が彼ら自身の仕事を検証するために時間をかけたことを願っています。

別の方法はあなたの側でもっと多くの作業をすることです - あなたはまだプラグインのコア機能を使うことができますが、それらがブラウザに any マークアップを出力することを許可しないでください。プラグインが触れるものすべてをフック解除する独自のカスタムレイヤーを追加し、独自の出力バッファを構築します。これはonlyの方法で、ブラウザに送信されるマークアップのスタイルを制御できます。

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

5
EAMann

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

代わりにあなたがそれをきれいにするためにフィルタを書くことを試みることができるけれどもすべての特別な場合を捕らえようとすることは私自身の個人的な悪夢のバージョンのように思われ、それはまた不幸な利益のために性能に影響を与えるでしょう。

あなたはこれを望んでいるクライアント/上司を持っていますか、それとも " Nice-to-have "のように想定されたものですか? (はい、それについて強く感じている人がいます。しかし私はその中の一人ではありません。)

とは言っても、XHTMLはウェブ上で " 色白の子 "のステータスを失いつつあります。 2006年にさえ_ { Tim Berners-Leeはそう言った

いくつかのことは、数年間の後知恵ではっきりしています。 HTMLを徐々に進化させる必要があります。属性値を囲む引用符や、空のタグと名前空間のスラッシュを一度に含めて、世界をXMLに切り替えようとする試みはうまくいきませんでした。 HTMLを生成する大衆は動かなかった。ブラウザが文句を言わなかったからである。いくつかの大規模なコミュニティは移行し、整形式のシステムの成果を楽しんでいますが、すべてではありません。 HTMLを段階的に維持し、整形式の世界への移行を継続し、その世界でさらに力を伸ばすことが重要です。

StackOverflowでは、 HTML5はXHTML 1.0よりも簡単に記述できます。 _を読むことをお勧めします。その概要は次のとおりです。

構文的には、HTML 5を使用すると、常に標準モードを呼び出す、よりクリーンで読みやすいマークアップが得られます。 XHTML 1.0(text/htmlとして提供される)を使用するときは、ブラウザが自動的に実行するように大量のcrudを指定します(狂ったdtdに対して検証するため)。

8
MikeSchinkel

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

2
tomdxw

あなたはあなたのサイトの出力全体をバッファして、それを準拠したHTMLに整理することができます。それのベストは、これが完全に自動化されて行われることができるということです:

テーマのinitまたは関連するフック(例えば* 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;

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

1
hakre