it-swarm.cn

如何保持W3C标准符合主题

当我写一个主题时,我确保它符合XHTML 1.1和CSS 2.1。然后我添加了插件,主题不再符合XHTMl 1.1。然后我在我的CSS中使用了Google API字体,它符合CSS 2.1标准。

有没有办法可以保持合规性而不必删除插件,字体等,或者我应该忽略验证错误?

10
James

更正,您的主题仍然符合XHTML 1.1和CSS 2.1,但您添加的插件注入了不是compliance的附加代码。

不幸的是,如果你使用插件,没有简单的方法来保持合规性。您可以做的最好的事情是验证您的主题和您个人负责的所有标记,然后希望其他开发人员花时间验证自己的工作。

替代方案是您需要做更多的工作 - 您仍然可以使用插件的核心功能,但不允许它们向浏览器输出 任何 标记。添加您自己的自定义图层,取消插件接触的所有内容,并构建您自己的输出缓冲区。这是only方式,您可以控制发送到浏览器的标记样式。

几个插件开始使用HTML 5 ......其他插件正在尝试使用CSS3。如果您安装这些插件并且不采取措施来清理和验证其输出,那么您的站点将停止正确验证。

5
EAMann

每个插件都将生成它想要生成的代码,其中一些不符合XHTML 1.1。纠正这种情况的唯一合理方法是审核每个人并修改违规者或让开发人员修改或使用您的修改作为补丁。

替代你可以尝试编写一个过滤器来清理它,但试图捕捉所有特殊情况似乎是我自己的个人噩梦的版本,它也会影响性能的愚蠢的好处。

你有一个想要这个的客户/老板,还是只是假设是“Nice-to-have?” (是的,有些人对此感到强烈。但我不是其中之一。)

也就是说,XHT​​ML在网络上失去了“金发小孩”的地位;甚至 蒂姆伯纳斯 - 李所以 2006年回复:

事后几年,有些事情更清楚了。有必要逐步发展HTML。让世界切换到XML的尝试,包括属性值的引用和空标记和名称空间中的斜杠都不起作用。大型HTML生成公众没有动,主要是因为浏览器没有抱怨。一些大型社区的确在转变并正在享受结构良好的系统的成果,但并非全部。重要的是要逐步维护HTML,以及继续向格式良好的世界过渡,并在这个世界中发展更多的力量。

您可能还想阅读 HTML5比StackOverflow上的XHTML 1.0. 更容易编写。这是他们的总结:

只是语法方面,当您使用HTML5时,您最终会得到更清晰,更易于阅读的标记,这些标记始终会调用标准模式。当您使用XHTML 1.0(作为text/html)时,您将指定一堆浏览器将自动执行的crud(以便验证糟糕的dtd)。

8
MikeSchinkel

遵守标准并不能保证您的网站可以在所有浏览器中使用。忽略标准合规性并专注于尽可能多的浏览器进行测试。

2
tomdxw

您可以缓冲站点的整个输出,然后将其整理为兼容的HTML。最好的是,这可以完全自动化:

您可以在主题init或相关挂钩上启用输出缓冲(例如* setup_theme * hook)。

这是两个代码片段。第一个显示您开始输出缓冲并稍后读出缓冲区:

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

第二个显示了一些正在运行的配置选项:

/* 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;

我打赌已经有一个现有的wordpress插件用于这样做。让我们来看看:

1
hakre