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