开发网站非常耗时。为了提高生产力,我会编写一个原型来展示给我们的客户。我不担心使原型符合标准。大多数时候,我们的客户会批准原型并给出不合理的截止日期。我通常最终在生产中使用原型(嘿,原型有效。不需要让我的工作变得更难。)
我可以重构代码以输出有效的 HTML。但是输出有效的 HTML 值得付出努力吗?
只有当它给你带来实际的好处时,它才值得付出努力。坚持标准可能会更容易构建一个适用于大多数浏览器的网站。再说一次,如果您对网站在您关心的浏览器上的显示方式(可能是一个,也可能是全部)感到满意,那么费尽心思让它通过验证就是浪费时间。
此外,完全有效的 html 网站和大部分有效的 html 网站之间的 SEO 差异可以忽略不计。
所以总是寻找实际的好处,在某些情况下有一些,但不要仅仅为了它而这样做。
是的。尝试处理不同的浏览器如何呈现有效的 HTML 已经够难的了,更不用说尝试预测它们将如何处理无效代码了。搜索引擎也是如此——HTML 中存在足够多的问题可能会导致网站没有被正确索引或根本没有被索引。
我想真正的答案是“这取决于 HTML 的无效之处”。如果无效部分与可访问性问题有关,如果您的客户出于商业目的使用该网站,您甚至可能会发现他们存在法律问题。
如果您有一个不合规的网站并且时间紧迫,则可能不会。
但是,您不会相信我,因为我从一开始就不相信其他人,但是从一开始就使网站兼容更容易 - 它可以在浏览器兼容性、CSS 行为甚至 JavaScript 行为方面为您省去头疼的问题,并且它通常需要维护的标记较少。
网站合规性(至少是过渡性的)非常容易。
生成兼容的 HTML 类似于确保您在编译期间没有警告 - 警告是有原因的,您可能没有意识到那个原因是什么,但忽略警告,在您知道自己在哪里之前,有很多,您无法发现与您要解决的问题相关的问题。
如果您使用 Firefox 查看您的网页,您会在右下角看到一个有用的绿色勾号或红叉,快速显示您是否已遵守。点击一个红十字会显示所有你犯错的地方。一些警告/错误可能看起来有点迂腐,但修复它们,你会在很多方面受益。
不这样做会导致不可预测性。
Web 浏览器的最大问题之一是它们通过默默地纠正某些标记问题(例如无法关闭表格单元格和/或行)而使坏习惯永久存在(在某些情况下仍然如此)。这一事实导致了数以千计的网页不合规但“工作”,使他们的开发人员陷入一种虚假的安全感。
当您考虑网站有多少可能出错的地方时,在合规性方面懒惰只会给您的工作量增加更多问题。
编辑:再次阅读您的原始帖子后,我注意到您说您在制作原型时不关心合规性,然后您继续说您通常在生产中使用原型 - 这意味着它不是严格意义上的原型,而是一个候选人。这种情况下的正常情况是,一旦客户接受了候选人,就没有时间分配给错误修复或整理的时间,从而加强了首先使标记合规的论据。
如果以后不给你时间,现在就去做。
如果你以后有时间,那么无论如何你都有时间去做。
如果您希望残障人士和非残障人士以及外部系统都能访问您的视力,那么是的,您绝对应该确保输出有效的 HTML。
使用自动验证器很容易测试您的 HTML 。
我将补充迈克爱德华兹关于法律后果的说法,并提醒你你也有道德义务:)
为什么不首先用有效的 (X)HTML 编写原型呢?我从来没有发现这比使用无效的 HTML 更费力。生成有效的 XHTML 应该是一项微不足道的任务。(另一方面,产生语义上有意义的XHTML 可能更费力。)
简而言之,我认为对原型使用无效的 HTML没有任何好处。
老实说,我不知道为什么要做基于标准的 HTML 是额外的努力。这并不难,你应该把它作为一个专业的问题来做。
如果你花钱请人给你盖房子,他偷工减料,你当时没有注意到,但10年后你的墙上出现了裂缝,你会高兴吗?
绝对地。无效代码会导致各种奇怪的行为,以及不会掩盖在您获得验证报告时所做的错误。
一个例子:
黄色背景从消息列表中溢出,并覆盖在下一个消息列表的标题上 - 但仅在 Internet Explorer 中。
为什么?背景应用于列表项,但编写页面的人将其编写为一个列表,中间有一个标题。列表项之间不允许使用标题,并且不同的浏览器尝试以不同的方式从中恢复。Internet Explorer 在看到下一个项目的开始(在标题之后)时结束了列表项(带有背景颜色),而其他浏览器在看到第一个列表项的结束标记时结束了它。
这是页面上唯一的有效性错误,因此只需几分钟即可找到问题并进行修复。
有效的 HTML 只是为了能够在您的网站上拥有徽章 - 不。
在“适用于每个主要浏览器或浏览器引擎的 HTML”的意义上拥有“有效的 HTML”——是的。
因为,如果您坚持标准,您的工作将在未来兼容。用户代理将努力实现标准合规性,他们的怪癖不合规模式总是会发生变化。这是应该的方式。
除非您对他们想要默认启用的整个 IE8 破坏标准永久化感兴趣。——这是另一个论点。
Webkit、Gecko、Presto?(那是歌剧的引擎吗?),而其他人总是会变得更加顺从每个版本。
除非您的 html 工作在 IE 嵌入式浏览器控件中,否则只要呈现有效的 html,就没有理由输出它。
在我看来,关键标准是“适合目的”——如果您的客户想要一些适合小型/内部市场的东西(并且不在乎这是否会疏远有残疾或使用不太常见的浏览器的潜在客户),那么这就是他们的选择。
同时,我认为我们(作为开发人员)有责任确保他们了解其决策的含义——一些组织将受到法律要求的约束,即屏幕阅读器可以使用网站,这通常意味着符合标准的 HTML。
我相信,如果您从一开始就训练自己编写有效的 html 代码,那么制作有效的 html 输出不会对您的开发时间造成太大影响。
一方面,不难知道元素中不允许使用哪些标签,并且标签中
的必需属性有时是您真正需要的属性 - 我相信这些是使您的 html 无效的主要错误,所以为什么如果您打算长期留在网络上,不只是尽早学习它们吗?
加上输出有效的 html 可以帮助提高您的网站排名
写网站有两条规则:
为了满足第一条规则,您必须编写代码以使您的网站在使用 Internet Explorer 时能够正确呈现。除非您可以自由更改您的网站设计以仅使用 IE 正确呈现的那些功能,否则这意味着编写无效的 HTML。
为了满足第二条规则,您必须编写代码,以使您的网站在使用屏幕阅读器和盲文屏幕时能够正确呈现。尽管一些较新的屏幕阅读器可以与以 IE 为目标的网站一起使用,但通常这意味着编写有效的 HTML。
如果您正在处理一个小型项目,或者您是大型团队的一员,您可以编写一个网站,为 IE 输出以 IE 为目标的 HTML,否则为有效的 HTML。但是,如果您要自己承担一个大中型项目,则必须决定要遵循哪条规则以及要忽略哪条规则。
更新:
这被认为您总是可以在 IE 中使用有效 HTML 的用户投票否决。如果您可以灵活地更改设计以解决 IE 的缺点,这可能是正确的,但是如果客户给了您一个设计并且您必须让它工作,您可能不得不求助于无效的 HTML。这很可悲,但这是真的,不管他们怎么想。