提问人:Andrew G. Johnson 提问时间:8/12/2008 最后编辑:ChrisAndrew G. Johnson 更新时间:2/5/2013 访问量:3404
在完成工作时,W3C XHTML/CSS 验证有多重要?[关闭]
How important is W3C XHTML/CSS validation when finalizing work? [closed]
问:
尽管这些天我一直在努力进行完全验证,但我经常想知道这是否是在浪费时间。如果代码运行并且它在所有浏览器中看起来都一样(我使用 browsershots.org 来验证),那么我是否需要更进一步,或者我只是过度肛门?
在创建代码时,将代码保留到哪个级别:
a) 你自己 b) 您的客户
P.S. Jeff 和公司,为什么堆栈溢出不验证?:)
编辑:一些很好的见解,我认为,由于我已经如此痴迷了很长时间,所以我编程知道什么会导致问题,什么不会导致问题,所以我比那些先创建一个网站然后“回去解决验证问题”的人处于更好的位置
我想我可能会在堆栈溢出上发布另一个问题;“你是边走边验证,还是完成然后回去验证?”因为这似乎是这个问题的去向
答:
a) 必须看起来一样
b) 尽可能符合标准,但不要太肛门,以至于妨碍收尾工作
在您可以永久访问代码的情况下,我认为标准合规性并不那么重要,因为如果出现问题,您始终可以对代码进行更改。如果您没有永久访问权限(即,您在代码上签字,它成为其他人的责任),那么最好尽可能符合标准,以尽量减少以后的维护问题......即使你再也不用处理代码了,你的声誉也会持续存在,并可以传递给其他潜在客户,许多团队喜欢把出现的问题归咎于以前的开发人员。
我认为验证是测试你是否正确地做事的一个很好的试金石,所以如果只有几个小问题,为什么不修复它们并确保你的网站至少在未来会被浏览器正确理解(即使他们确实出于其他原因以不同的方式呈现内容)?
OTOH,对于大多数项目来说,验证似乎是一个巨大的头痛问题,如果你能让事情跨浏览器工作,那么仅仅在验证上多花一天/一周+就不值得了。
我认为这是一个你应该努力使用鲁棒性原则的领域(这对任何编码领域来说都是很好的建议)。仅仅因为某些东西今天有效并不意味着它明天就会有效:如果你依赖于特定的 HTML/CSS hack,或者即使你在发出严格有效的代码方面有点松懈,浏览器的下一次迭代很可能会崩溃。以正确的方式做一次可以最大限度地减少这个问题(尽管不能完全缓解它)。
不过,这里有一定的实用主义元素。我当然会尽我所能让客户的网站有效,但我愿意在自己的空间里承担更多的风险。
我认为只有“技术人员”才真正关心“100%符合标准”。我通常的页面消费者(= 用户)并不关心“菜单边框图片元素”是否没有 alt-attribute。
我通常只是确保我没有看到任何明显的错误(所有标签都关闭,所有小写,引号中的属性等),但如果它在 IE 和 FF 上看起来不错,这就是我所关心的。我真的不在乎我是否在任何 HTML 标记中使用了非标准属性,这样页面就不会根据 DTD 进行验证 - 只要我得到我想要得到的视觉结果。
我知道这并不能回答您的全部问题,但值得考虑的是,通过使用完全有效的 html,您可以确保您的网站应该在尚未发布的未来 Web 浏览器中正常工作。
我的方法往往是确保我可以在所有页面上完全验证,但是我仍然将页面作为 text/html 而不是 application/xhtml+xml 发送,以便在我错过某些内容时不会出现丑陋的 XML 错误。
对我来说,如果我的代码得到验证,我觉得我做得很好。看到 w3c 页面上的绿色复选框让我有点头晕目眩。至于 b 组,他们通常只关心它在浏览器上的外观和工作方式是否相同。他们唯一发现这不是真的地方是政府部门。它们不仅需要使用 w3c 进行全面验证,还需要通过 ADA 测试(基本上是屏幕阅读器的声音如何)。
p.s. 当我说政府部门时,我特指加利福尼亚州及其内部的几个县。除了他们之外,我没有其他政府团体的经验。
除了验证者本身是如此积极地肛门, 每当使用 -moz- 或 -webkit 或 -o- 时,当他们标记错误或警告时,即浏览器特定的限定术语。 此外,他们希望您指定 0px 而不是 0 或其他单位 零就是零,无论验证者想要检查它的任何单位!
只需尝试验证WordPress twentyeleven style.css,它就会抛出140个奇怪的错误,这些错误都是上述性质的,或者验证器正在从解析错误中恢复
如果你不能从谷壳中分拣小麦,验证器就毫无用处!!
我们需要能够识别浏览器特定资格条款的验证者!
为了理解为什么验证很重要,需要了解浏览器在其不同层是如何工作的,以及从 Web 浏览器的角度了解 Web 的历史。
您提供给浏览器的 HTML 由浏览器按照 DOM 进行解释,DOM 是一个应用程序编程接口,将整个页面映射为节点层次结构。该树的每个部分都是一种包含不同类型数据的节点。DOM(文档对象模型)是必要的,因为早期的 Web 浏览器(Netscape、IE 等)实现了 HTML 页面的多样性,允许在不重新加载网页的情况下更改网页的外观和内容。为了保持 Web 的跨平台特性,W3C 希望修复这些浏览器的不同实现,并提出了 DOM。
DOM 支持成为大多数 Web 浏览器供应商的重中之重,并且一直在努力改进对每个版本的支持。所以,它奏效了。
DOM 是 Web 浏览器启动的最基本步骤。其主要流程是:
- 解析 HTML 以构造 DOM 树
- 渲染树构造
- 渲染树的布局
- 绘制渲染树
第 1 步给出内容树,标签转向 DOM 节点。步骤 2 提供包含样式信息的渲染树。
因此,为什么验证很重要:因为内容树和渲染树是 Web 浏览器开始工作的基础。它们定义得越好,对 Web 浏览器就越好。
归根结底,DOM 也是 JavaScript 事件的基础。因此,它的验证也有助于交互层。
评论