【问题标题】:Why do major websites not pass W3C validation properly? [closed]为什么各大网站都没有正确通过 W3C 验证? [关闭]
【发布时间】:2012-04-09 21:03:06
【问题描述】:

为了了解 W3C 验证是否可以帮助更好地呈现 DOM,或者它是否只是 HTML 编码的标准,我尝试验证主要网站,但所有网站都因一些错误而失败。

这里是典型的例子:

  • google.com 36 个错误,2 个警告

  • facebook.com 42 个错误

  • youtube.com 91 个错误,3 个警告

  • yahoo.com 212 个错误,8 个警告

  • amazon.com 510 个错误,138 个警告

当大型网站似乎没有花足够的时间进行 W3C 验证时,中小型网站是否需要花时间来做?

【问题讨论】:

  • 我认为这个问题实际上包含两个主题(两者都很有趣):1)我需要生成有效的 HTML 吗? 2) 他们为什么不这样做?
  • @TomWijsman 这个问题不关注各大网站的故障。理性地说,通过任何验证都是好的;但关键是,如果它非常重要,为什么主要网站不这样做!
  • @Ali:出于同样的原因,浏览器不适合所有 Acid3 测试。请注意 google.com 的所有错误都是 obsolete 例如,这只是意味着它们还没有发展到更高的标准,这很可能是因为向后兼容性。另请注意错误计数实际上非常低,并且实际上与页面上的组件数量成比例,因此他们确实尝试符合标准并且他们确实验证了他们的网站以减少错误数量有意义的地方...
  • google.com 等页面无法正确验证的原因可能是他们只关心两件事:在所有主流浏览器中正确显示和最小尺寸

标签: html dom w3c w3c-validation


【解决方案1】:

在我看来,您应该验证您的网页的最佳理由是,您的网页在每个浏览器中看起来都一样的可能性最高。并且您将布局(甚至某些 Javascript 逻辑)损坏的可能性降至最低。

【讨论】:

  • W3C 验证需要许多在现实世界中无用的标准。例如,id 不能以数字开头。
  • @Ali - 几乎不是什么大问题。现实世界中的哪个示例要求您以数字开头并且不能以字符作为前缀?
  • @thomthom 这就是重点。花时间设置前缀是否有用。请注意,这是一个示例。我觉得各大网站都不会花这个时间。
【解决方案2】:

验证是廉价的质量保证。它将帮助您发现错误(尤其是嵌套错误和由错误输入引起的错误)。它会比成本节省更多的时间(尤其是如果在一开始就实施的话)。

我没有看到浏览器中错误恢复例程的任何性能指标。由于存在许多不同的错误,因此很难产生任何可以提供有用信息的信息。

【讨论】:

    【解决方案3】:

    验证是一个棘手的问题。在 XHTML 时代(在 html5 文档类型普遍存在之前),根据 W3C 发布的严格 DTD 来验证复杂的布局几乎是不可能的。我认为您可能会指责 IE 是罪魁祸首,因为需要许多完全非标准的黑客来使其以合理的跨浏览器方式运行,而 IE 曾经是并且现在是地球上最常用的浏览器.令人遗憾的是,MS 没有效仿 webkit 和 gecko 引擎,而是决定添加更多的浏览器扩展和 hack 来搅浑水,而不是单纯地遵守“标准”。

    我们都知道,如果时间不是问题,我们作为开发人员可以创建验证页面,但实际上,正如其他人所指出的那样,验证最终成为一种有用的工具,而不是事实上的目标。如果客户要求验证,那么就会涉及成本,并且必须对此进行解释 - 在这里管理期望非常重要。

    html web 在很短的时间内从一个非常简单的语义文本布局引擎发展为在浏览器中运行的完全动态的应用程序,而验证工具根本没有跟上这一点。鉴于浏览器技术每天都在进步,跨越一千个或更多不同的平台,我什至不确定他们能做到。

    所以 - 总结一下,它是一种供开发人员使用的工具,但您自己的个人能力将决定项目是否符合目的。在验证器中有一个图标或绿色的“ok”框绝对不能定义一个项目是否符合这个定义。

    【讨论】:

    • +1 指出现代 XHTML 文档的复杂性。
    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    相关资源
    最近更新 更多