遵循网络标准有多重要?

时间:2009-02-21 22:55:08

标签: html css markup web-standards

我最近发现了大多数主要网站fail W3C's markup and CSS validation tests。因此,遵循网络标准真的有多重要?

22 个答案:

答案 0 :(得分:16)

标准!

一点历史

在直接回答之前,我认为说明最新标准的背景非常重要。

您是否知道W3C一直试图制定XHTML 2标准?如果它已经出来,它将不会向后兼容以前版本的HTML。实际上,在W3C内形成了一场叛乱,并以一组只能创造WHATWG的方式结束。 WHATWGHTML5背后真正的主人。

你有没有问过自己为什么需要这么多时间才能从WC3获得标准? WC3的工作方式非常民主。在每个人都接受之前,他们会讨WHATWG做了一点点改动:提出并讨论了问题,但最后一句话取决于编辑。引用Jeremy Keith:“在WHATWG开发HTML5时,W3C继续研究XHTML 2.说它无处可去是不准确的。它无处可去,非常非常缓慢。“

最终得到了W3C dropping XHTML 2,而不是从头开始,他们决定使用WHATWG


意大利面条标记的回归?

虽然HTML5不再像XHTML那样严格,但并不意味着不再有良好的编码实践。 HTML5不是machiavellian。与XHTML 2不同,它基于现有规范(支持现有内容)。

最重要的是,规格背后的仲裁者是不同的浏览器供应商。您是否曾见过webkit(Safari,Chrome),moz(Firefox)或o(Opera)的专有CSS元素?这实际上是正常的,因为这意味着供应商正在研究即将推出的规格,有时甚至是超出规格的功能。有一段时间,微软有超越标准的心态,因为他们垄断了浏览器共享并创建了自己的CSS元素。微软创建了诸如filter之类的CSS元素,但我们发现了一些特殊的东西。对于规范有两种推荐方式,即在CSS中使用不透明度的两种不同方式:颜色元素中的RGBA和不透明度元素。


标准的重要性

要说完,我会说网页设计师/开发人员有责任及时了解HTML5等技术和标准方面的最新动态。这并不意味着阅读每一个规范。我同意这将是漫长而无聊的。实际上,阅读有关该主题的书籍,关注浏览器供应商的开发博客,并通过尝试填充不时获得乐趣。我不再同意遵守所有Web标准的100%,因为总会有例外。我更喜欢使用可以帮助开发人员的良好编码实践,但同时它将是浏览器友好的。重要的是要理解HTML5建立在现有标准的基础上,并且它是为了支持现有内容。

最后一点意见:http://dowebsitesneedtobeexperiencedexactlythesameineverybrowser.com/

答案 1 :(得分:9)

这取决于受众的规模。如果它适用于您的博客,那么您可能会非常草率。但是,我已经完成了政府网站,我们遵循网络标准并遵循可访问性指南至关重要。

但是,是的,就这样做。你为什么不呢?

答案 2 :(得分:8)

非常重要。可访问性,可用性,可移植性,法律(在某些情况下),可伸缩性,更易于与各种应用程序框架和CMS集成。名单还在继续,但其他海报已经很好地涵盖了这些要点。

您的普通企业主通常会说“谁更关心”,就像OP一样。到目前为止,我最有效的回应是“谷歌机器人只不过是一个盲目的最终用户。难道你不想让它有效地列出你的网站吗?”

答案 3 :(得分:5)

如果您遵循标准,任何布局错误都将更容易调试。当您忽略这些标准时,浏览器可以渲染您的页面,但是更改一个字符可以完全改变页面的呈现方式。调试一个浏览器很难,但调试IE 7,IE 6,Firefox,Opera,Safari ......并忽略标准只会让你的生活变得困难。

如果您使用的是jQuery或其他DOM操作库,如果您的标记无效,则可能会出现意外且不一致的结果。

所以,不要浪费你的时间。确保编写有效的HTML和CSS。这真的很容易,而且会节省你的时间。

答案 4 :(得分:3)

你可以使用一个适用于html,css,c,java ......的简单规则。

坚持使用标准,除非你有充分的理由不理会它们。 如果你不遵守标准原则,为什么不这样做。

有时您会遇到必须违反标准以编写变通方法或加速代码或......等等的情况。

每当你觉得你必须忽视标准时,你应该写一个注释为什么你这样做, 所以你或其他开发人员遇到一段html(或CMS代码)知道这不是一个bug。

是的,有时“好理由”是截止日期或崩溃的服务器。只要你记录就可以了。

其他专业人士: 如果写不符合标准的非标准html(或代码)是一个例外,那么你习惯于编写干净的代码。

答案 5 :(得分:2)

浏览器和其他基于Web的阅读器依赖于开发人员遵循标准,并且在大多数情况下,并不难坚持这些标准。所以尽你所能,但不要让自己没有效率去追随它们。

答案 6 :(得分:2)

关于这些大型网站的事情是他们有一大批程序员来保证网站继续工作

你呢?你愿意花钱吗?

不遵守标准的问题在于,您无法保证您的网站在明天的浏览器中如何运作。

然后还有其他问题,例如辅助功能,或启用自动化工具来解析您的网站。无论是搜索引擎网络抓取工具还是聚合微格式信息的网站,还是盲人屏幕阅读器或任何需要能够阅读您网站的其他工具,您无法保证他们能够如果它是随机标签汤,则解析您的网站。

然后有你自己的工具。 jQuery或其他javascript库是否能够找出你奇怪的非标准DOM?也许,也许不是。请问下周的版本?谁知道?

最后,费用是多少?编写兼容的HTML / CSS并不难。需要一些练习来弄清楚一些CSS技巧,以避免依赖于弃用或非标准的HTML,但是一旦你弄清楚它,它就像你典型的草率非标准代码一样容易编写。 当然,它甚至可以使事情变得更容易,因为它允许您在调试时有意义地使用HTML验证器等工具。如果您的网站在任何情况下包含50个HTML错误,那么很难将其用于任何有用的内容。其中哪一项(如果有的话)与您尝试解决的问题有关?

答案 7 :(得分:1)

作为旁注 - 遵循网络标准并不是一件很大的努力。当你习惯它时,你很快就会注意到它没有做多少努力。与您想要使用的任何oldschool布局技术相比,使用Web stadnards通常会产生LESS代码(=更少的写入时间),更多可读代码和“面向未来”的代码。

答案 8 :(得分:1)

如果一切都适用于您想要支持的所有浏览器,那么HTML代码实际验证并不是那么重要。对于XHTML, 很重要,但是:使用XHTML意味着您希望XML解析器可以读取您的代码,因此不应将任何无效的XHTML声明为此类。

但是,创建符合标准的代码并不难,即任何不愿意修复错误的人都表现出缺乏专业性。有时人们可能会决定忽略这些标准,但这应该是一个有说服力的决定 - 例如Google主页针对速度和跨浏览器支持进行了优化,并且已经过广泛测试。如果您没有这些测试和持续支持的资源,您应该坚持使用这些标准。

答案 9 :(得分:1)

简而言之 - 非常。出于跨平台的目的跨浏览器兼容性,这很重要。

你需要关注他们吗?如果你不这样做,你可能会没事的。

许多不遵循严格标准的事情是随着时间的推移而被修改的遗留应用程序。

在我看来 - 没有理由不遵守新项目的严格标准。

伊恩

答案 10 :(得分:1)

当您在寻找破坏网站功能的错误(或可能会破坏某些功能的错误)时,W3C验证是一个需要考虑的重要因素。这是一种可以在开始破坏你的工作之前发现错误的雷达。

例如,如果您的网站存在问题并希望就此发布问题,建议您使用W3C验证程序,并确保它不会指向您的问题根源

但是......并非所有HTML都会验证。最重要但不是唯一的情况可能是HTML5。在CSS中,供应商前缀也不会验证。这是否意味着你不应该使用它们?完全没有!

验证服务是一个很棒的事情,可以找到错误的属性名称,未关闭的标签,缺少分号或带有XHTML doctype的<br>标签。我不担心因为验证器不知道<video>标签的作用而无法验证的元素。这仍然是正确的。

答案 11 :(得分:1)

我发现HTML验证可以方便起来。

在那之后(即验证从常识中取代)它成为障碍, 我相信验证是一个非常有用的开发工具,但没有必要100%遵守, 例如,XHTML Strict规范不赞成target=""选择器,因此它不能验证,但它仍然可以正常工作,在不使用上述代码的情况下实现相同的操作需要javascript代码才能生效:

jQuery(document).ready(function($) {
    $('a').each(function(){
        if (($(this).attr('rel')=='external') || 
            ($(this).attr('rel')=='nofollow')) 
        {
             $(this).attr('target','_blank');
        }
    });
});

现在要实现上述而不是简单的target=""违反逻辑和良好的编程,另一方面CSS通常必须验证,但有例外;浏览器黑客和供应商特定的标签,在当前的浏览器环境中是一个必要的邪恶,它会使你的代码无效,但它将在大多数主流浏览器中工作,所以它真的取决于你,你可以100%合规和跳转通过箍在你的网站上有一个漂亮的小徽章,上面写着“XHTML有效”或“HTML5有效”等等,或者你可以拥有一个整洁,功能齐全,干净利用的编码网站。

P.S。在我被发现并被称为虚伪之前,我确实在我的个人博客网站上有一个,但我的代码目前无效。

进一步阅读: http://net.tutsplus.com/articles/general/but-it-doesnt-validate/

答案 12 :(得分:1)

最终,标准意味着为开发人员提供便利。通过“标准”,它可以作为一组不同要求的代理,所以如果你遵循标准:

  • 知道您的代码将适用于不同的技术(浏览器,平台,版本)
  • 知道您的代码适用于不同的人(辅助功能)
  • 客户端根据该事实接受您的代码(项目需要符合标准)
  • 我不想的其他东西

网络标准“为我们节省时间”的记录非常复杂:我们经常花费数小时的时间来进行验证,但却发现浏览器不支持这些标准。对我来说,获取页面进行验证通常可以节省时间。

回到手头的问题:何时使用它们。这是我务实的看法:再看看你的要求(在浏览器,平台,版本,可访问性方面)。比较针对所有这些方法与针对标准加上标准缺乏的方法。是否在需求列表中添加“标准”可节省您的时间,或者只是为完成项目增加了其他负担?

答案 13 :(得分:0)

网站设计师历史上没有遵循网络标准的唯一原因是:(1)根本不了解标准,或(2)制作非标准兼容的浏览器(*咳嗽IE 咳嗽)做很酷的事情。但是Internet Explorer最近在标准兼容性方面取得了重大进展,因此理由(2)变得越来越不相关,而且你显然不受理由(1),那么为什么不编写符合标准的网站呢?正如其他人所说,它将使您的代码更容易调试,因为您只需要使用一个标准而不是一堆不同的浏览器。

答案 14 :(得分:0)

我要做的第一件事就是在目标环境中进行测试。如果它正在工作并且无法验证,那可能是一个较小的点,但自然值得探索。您确实希望尽可能争取无障碍的课程。

答案 15 :(得分:0)

这一切都是为了使您的网站符合您的规范,并在当今最常用的浏览器中保持一致。实际上,网络标准没有优先权。

答案 16 :(得分:0)

嗯,正如你所说,大多数大型网站都不遵循标准,所以如果你想要一个大型网站,你最好不要遵循标准。 :)

但不是,最好遵循标准,因为这将为您提供网站在大多数浏览器上运行的最大变化,并且将在很长一段时间内继续在大多数未来的浏览器上运行。

有一些例外,它们主要是因为某些浏览器(或某些版本的浏览器)不符合标准。因此,您有时可能需要一些技巧或黑客来让您的网站在您想要支持的所有浏览器中运行。大多数这些技巧可以在遵循标准的情况下应用,但其他一些技巧可能会带来更好的性能或更容易实现或维护。

因此,虽然最好一般遵循标准,但总会有一两个例外......

答案 17 :(得分:0)

这里有人使用Hotmail吗?您是否注意到,对于每个主要的Firefox版本,Microsoft都必须返回并更改其Hotmail网站,以便它们不会落入最新的Firefox版本中?

如果开发人员尊重标准,他们是否需要这样做?他们会节省多少时间/金钱?那么他们有多少时间/金钱可以投资于更新的技术或新功能?

你说大多数主要网站都没有通过W3C的标记和CSS验证测试。看看大多数网站。他们看起来很现代吗?它们看起来像那些有效的吗?他们是第一个实施最新和最好的功能还是他们坚持维护旧的和过时的技术,狂热和不知疲倦地试图维持一个纸牌房子,并希望变化的风不会打倒它?

我们做出的每一个决定都有机会成本。有时,跳过标准的机会成本可以形成有利可图的商业伙伴关系。其他时候,特别是当由于无知而没有遵循标准时,由于错误,随机行为和猜谜游戏而导致成本被抛在后面。有时,遵循标准可以创建一个可扩展的平台,可以在未来几年内添加新功能。

答案 18 :(得分:0)

W3C标准非常有用,但它们是达到目的的手段,而不是目的。这些标准的最终目标是跨浏览器兼容性,这非常重要。 W3C的标准仅次于确保您的应用程序在您的受众将使用的所有不同浏览器上正常运行。当您牢记SEO时,Web标准也会获得很多价值。遵守标准将使您的网站对非人类用户更加可见,因此如果您关注搜索引擎可见性,那么Web标准也应如此。对于“主要网站”(因为它们已经在搜索引擎中已经很好地建立),这可能不是一个大问题,但可能对你而言。

因此,网络标准对于跨浏览器兼容性搜索引擎优化目的非常重要。

答案 19 :(得分:0)

这取决于项目的规模和预算。如果你需要快速完成某项工作,那就没有太多的功能,你的主要目的是完成一些事情并继续前进,那么标准并不重要。当项目非常小时,您将花费两倍的时间来遵守标准。

答案 20 :(得分:0)

如果您现在想要交付项目,请打破您想要的所有标准。

但如果您希望现在和未来(无需任何额外的努力),请严格遵守标准。

答案 21 :(得分:0)

以下是我对这个问题的看法。

首先,我会解决这个问题:

“我最近发现大多数主要网站都无法通过W3C的标记和CSS验证测试。因此,[...]”

大公司经常会遭受瘫痪,这使得即使做出微小改变也很难。在大多数情况下,“大公司”的做法并不是一个很好的例子。他们不是“大公司”,因为他们的网站构建不好 - 反之亦然。它们变得很大,并且为了修复验证错误而对其网站进行更改会变得越来越长,这会花费越来越多的钱(需要签署更改的人员名单很长!)

现在让我们进入下一位,不要担心大公司的担忧!

“[...]遵循网络标准真的有多重要吗?”

这可以在两种情况下回答。我认为第一段可能适用于你,因为你在Stack Overflow上问:)

如果您是专业的Web开发人员,除非明确要求不这样做,否则应始终遵循标准(请参阅 1))。您这样做的原因是能够验证您的标记,可访问性和浏览器兼容性是创建专业网站的一部分。

如果您是主题爱好者(例如,稀有昆虫专家) - 您应该可以发布包含可怕标记的网页,浏览器应该以相同的方式处理错误 - 至少,每个人都应该能够阅读这些信息。我之所以提到这一点,是因为任何人都可以通过网页发布网页 - 而不仅仅是专业开发人员。

1)“明确要求不要这样做”?这意味着什么呢?这意味着可以在不遵循标准的情况下创建适用于所有浏览器的网站。 Google非常故意在搜索页面上使用一些非常奇怪的标记,如本文所述:

http://www.stevefenton.co.uk/Content/Blog/Date/201008/Blog/Google-Deliberately-Write-Awful-HTML/