HTML5:W3C vs WHATWG。哪个提供了最权威的规范?

76

我正在进行一个html解析器,发现html5明确定义了解析不规范的html的原则。 (以前我从DTD中推断它们,叹气)

我很喜欢这个事实,但是我知道html5尚未最终确定(我也想知道是否会),而且它不是由W3C开发,而是由WHATWG开发。

在寻找所需的规范时,我看到了:

或者

如果没有章节号,我会认为它们只是相同的规范。但是不同的编号让我感到疑惑。哪个版本是最具权威性的?

WHATWG似乎有更多的章节,并且自W3C上传其候选推荐以来进行了添加

W3C会更新到WHATWG版本吗?还是他们会坚持自己的当前候选人状态,直到达到官方推荐状态为止?

当我们疑惑时,究竟应该遵循哪个html5规范呢?


3
实际上,WhatWG 可能是要遵循的对象,因为主流浏览器开发者遵循他们的规则,而不是 W3C 的规则。 - Loïc Lopes
1
https://archive.is/64uAd#selection-1007.450-1007.594。 在这个例子中,我们使用了Python的requests库来发送HTTP请求。我们使用GET方法从指定的URL获取响应,并将其打印到控制台上。https://archive.is/64uAd#selection-937.290-959.7。 在这个例子中,我们使用Python的BeautifulSoup库来解析HTML文档。我们首先使用requests库获取HTML页面,然后使用BeautifulSoup库解析页面并提取所需的信息。https://archive.is/64uAd#selection-999.507-999.738。 在这个例子中,我们使用Python的Pandas库来读取CSV文件并将其转换为数据帧。我们还演示了如何对数据帧进行一些基本操作,例如选择特定列和过滤行。https://archive.is/64uAd#selection-983.252-983.495, https://archive.is/64uAd#selection-937.197-937.263, https://archive.is/64uAd#selection-1033.267-1033.449。 在这些例子中,我们演示了如何使用Python的Matplotlib库创建各种类型的图表,包括线图、散点图和直方图。我们还展示了如何自定义这些图表以及如何添加标签和标题。https://archive.is/64uAd#selection-991.367-991.504。 在这个例子中,我们使用Python的NumPy库来执行一些基本的数学运算,例如计算平均值和标准差。我们还演示了如何创建NumPy数组并对其进行操作。https://archive.is/64uAd#selection-999.740-999.878。 在这个例子中,我们使用Python的Scikit-learn库来执行一些基本的机器学习任务,例如拟合线性回归模型和执行聚类分析。我们还展示了如何评估模型的性能并进行预测。 - Pacerier
3
  1. W3C忽视了WHATWG W3C(万维网联盟)在HTML5标准制定的过程中忽视了WHATWG(Web Hypertext Application Technology Working Group),后者是一个由苹果、Mozilla和Opera等公司组成的开发者团体。然而,最终HTML5还是采用了WHATWG所提出的标准。
  2. 我的URL不是你的URL 本文讨论了URL(统一资源定位符)所带来的问题。即使两个URL在表面上看起来相同,但它们仍然可以由于所使用的字符集、协议、编码格式等因素而具有不同的含义。因此,在进行网络通信时,需要对URL进行正确处理以避免出错。
  3. 与HTML编辑器Ian Hickson的采访 本文采访了HTML5编辑器Ian Hickson,他解释了HTML5的发展历程和设计理念。他认为HTML5的目标是成为一种更加健壮、灵活和易于扩展的语言,并且注重向后兼容性。
  4. Google, Microsoft, Apple和Adobe角逐网络霸主地位 四家科技公司正在争夺控制Web技术的主导地位。其中,Google支持的HTML5标准被认为是未来Web发展的方向,而微软则倾向于自己的技术,如Silverlight等。
  5. 关于HTML5标准的讨论邮件 这封邮件讨论了HTML5标准的一些争议问题,例如是否应该采用WHATWG的规范、如何处理Web浏览器之间的兼容性等。
  6. HTML5:Google、Microsoft、Apple和Adobe争夺网络霸主地位 四家科技巨头正在角逐控制Web技术的主导地位。本文介绍了它们各自支持的技术和标准,并探讨了它们之间的竞争和合作关系。
  7. WHATWG简介 Web Hypertext Application Technology Working Group(WHATWG)是一个由苹果、Mozilla和Opera等公司组成的开发者团体,致力于推动Web技术的发展。他们的重点是开发与Web标准相关的规范和工具,其中包括HTML5标准。
- Pacerier
7个回答

77

始终选择WHATWG而不是W3C,没有例外。

安妮·范·凯斯特伦(Anne van Kesteren)是WHATWG成员之一,在WHATWG和W3C版本分歧之前曾是HTML规范的主要贡献者,并且仍然是WHATWG规范的主要贡献者。在他的博客上,他描述了WHATWG和W3C之间的当前情况如下:

W3C已经第n次分叉了[WHATWG] HTML标准。像往常一样,情况非常糟糕:

  • 抹去了所有文档的Git历史记录。
  • 没有记录他们如何转换文档。已经报告了匹配问题,由于这个过程没有公开,可能需要很长时间才能发现所有由此引起的错误。
  • 没有与更广泛的社区讨论计划。
  • 没有与他们分叉的人讨论计划。
  • 甚至没有与W3C Web平台工作组的成员讨论计划。
  • 删除了致谢部分。
  • 删除了版权和许可信息,并替换为自己的信息。

2019年:战争终于结束了

2019年5月28日,W3C和WHATWG签署了一项协议,以合作方式共同制定HTML和DOM规范的单一权威版本。

根据W3C的声明,双方达成了以下协议:

  • W3C和WHATWG共同在WHATWG存储库中处理HTML和DOM,以生成Living Standard和Recommendation/Review Draft-snapshots
  • WHATWG维护HTML和DOM Living标准。
  • W3C直接在WHATWG存储库中促进社区工作(桥接社区,开发用例,提出问题,编写测试,调解问题解决)。
  • W3C停止独立发布与HTML和DOM相关的指定规范列表,并努力将WHATWG Review Drafts转化为W3C建议。

  • W3C充满了无能之辈。蒂姆·伯纳斯-李仍然掌舵吗? - undefined

    33

    以下是关于WHATWG HTML编辑者的偏见回答,但希望事实本身可以说明问题。

    WHATWG Living标准应被视为权威。它由大量贡献者组成,包括所有浏览器供应商,不断进行修补和更新。没有任何浏览器供应商按照W3C HTML实现;对于一些浏览器如Firefox和Chrome,这是公开声明的政策。

    WHATWG Living标准在不断接收错误修复和新功能。有关此规范开发模型的更多信息,该模型更符合现代软件开发实践,请参阅"Living Standard"的含义是什么?

    不幸的是,W3C有时会复制并粘贴我们的工作到他们自己的网站上,并在其上放置自己的标志,并更改编辑人员的名称等。他们这样做有多种原因,其中最大的原因之一是为了他们付费会员公司的面子(例如他们声明的原因)。更糟糕的是,他们喜欢发布“版本”(如HTML“5.0”,“5.1”等),这些版本仅是过时版本,缺少现代漏洞修复和功能,这会导致搜索结果页面混乱,从而引起像这个问题一样的困惑。我们目前正在跟踪由这些分支引起的混乱,其中HTML只是其中之一。

    你可以在问题跟踪器中追踪他们复制粘贴工作的进度,也可以在像这个这样的提交中查看。当他们进行这种复制粘贴工作时,发现他们引入的错误很有趣,因为他们通常不阅读或理解他们正在复制的内容,导致普遍存在错误和不一致性。

    2
    你们难道不应该更关注于制定出易于理解的标准,以便那些没有全天候付费支持的人能够遵循,而不是过于担心别人对你们的看法吗? - ZJR
    3
    我认为期望(数据)使用者不断追赶一个移动的目标是不合理的。明确、具体、有里程碑的标准存在是有原因的,这并不是因为人们不够聪明而采用了这种方式。 - Keith Tyler
    9
    如果真的每个浏览器都支持whatwg而不支持w3c,那么W3C HTML标准背后的人是谁?他们得到了谁的支持? - Pacerier
    你能帮我解决这个问题吗?Pacerier问的。 - Suraj Jain
    1
    主要是W3C管理层担心如果承认没有人关注他们的分支,就无法收取会员费。 - Domenic
    显示剩余3条评论

    26

    这要看你问的是谁。真的。这个问题的政治性很丑陋。更糟的是,规范还没有完全稳定下来。我本以为两个规范在它们的解析部分会大致相同,因为第1.1.1节列出的差异没有提到解析。但是我做了一个网页比较,发现文本中有微妙的差异。如果您实际上正在实现规范以与相关参与者交流任何规范之间的差异,请使用公共邮件列表。无论如何,很抱歉我无法给您一个清晰明确的答案。


    1
    “1.1.1”这一节非常相关,谢谢指出。 - ZJR
    2
    “这个问题的政治因素非常难看”,我们终于取得了一些进展,HTML5 被视为未来的平台,但我们仍被政治争吵所困扰和阻碍。不过我们正在逐渐接近目标 :) - DannyT
    4
    我不会称之为争吵——这两个团体有不同的观点,我们正在等待尘埃落定,等待他们达成一致并妥协并制定出联合规范。这种过程是自然的。我从来不明白为什么人们如此反对政治过程——是的,有时它们是适得其反的,但更多的时候只是自然而然的。这种情况已经持续了几千年了,软件行业不会因缺乏政治“争吵”而突出。;-) - Armen Michaeli
    4
    -1 这个答案在2018年已经非常过时了 - whatwg 是事实上最近几年来唯一被认真对待的标准机构,也是所有浏览器供应商都参与的标准机构。 - Benjamin Gruenbaum
    说实话,这个问题和答案今天可能会被关闭,因为它是“主观性很强的”。无论如何,我的个人意见是,就HTML而言,尘埃已经或多或少地落定于WHATWG方面。 - Gaurav

    7

    好的,我最终得出了自己的结论,现在要分享给大家。

    我将遵循W3C版本:盲目地。

    从政治角度来看,这并不是一个简单的决定。让我解释一下。

    我对w3c非常怀疑,甚至在整个XHTML争论/失败期间可能会 憎恨他们。我认为WHATWG的崛起是我们实用救世主的到来:人们公开承认HTML无法成为一种僵硬、严格的基于XML的语言,而整个互联网却对此感到困扰。

    所以,按照这个观点,我应该选择WHATWG规范,不是吗?

    不。为什么?
    WHATWG没有制定官方版本。我有点希望他们能够这样做,但他们没有。

    他们觉得版本对于他们的……让我们说是时髦的态度来说太过僵化。
    他们只有一个活标准(并跟踪主要浏览器对任何单个功能的实现状态)

    但我不是一个主要的浏览器,我是一个小型实施者,我不能参考一个活标准
    嗯,除非我疯狂地进行 不断发布,好像明天就没有了一样。
    (这就是firefox和chrome正在发生的事情)

    所以,在永无止境的疯狂狂热中,我必须选择理智。而W3C提供了经过精心制作和编号的规范版本。我可以声称符合其中之一的规范


    19
    声称符合“其中一种版本”是相当无用的,因为只有最新的版本才对实际世界的互操作性有意义。正如在另一个答案中所解释的那样,由于W3C只是糟糕地复制和粘贴(确实带来了所有随之而来的错误)别人的努力,因此不可能信任他们发布的内容。 - Anne
    4
    我同意安妮的看法,但是“生活水平”是由供应商驱动的,对于一个简单的网页开发者来说跟着这些变化进行调整是一项非常复杂的任务。如果他们能够提供一种简单的方法来追踪这些变化,我完全同意... - Diego
    4
    @Anne,“只有最新的东西才是真正重要的,以实现现实世界的互操作性”这种说法的相反之处在于,互操作性需要稳定性,这就是为什么我们经常提到标准。当事物不断变化时,就无法实现互操作性。想想UNIX在标准化之前的情况... - Hibou57
    3
    事物并不总是改变,但需要进行一些微小的变更才能实现实施方之间的收敛。而且通常旧的快照不包含这些微小的变更,因此它们不是一个好的参考,因为它们无法反映现实。标准需要像软件一样进行维护。 - Anne
    3
    WHATWG似乎跟上了敏捷开发的步伐,而W3C则坚持瀑布式开发。敏捷开发速度更快...但只是在一段时间内。瀑布式开发要慢得多...但它不会在紧急转弯时破坏侧杆。瀑布式开发还有一个好处,就是事先知道它要去哪里。W3C的原则构建了Web。我除了新兴的自负心之外,看不出任何改变这种做法的理由。人们唯一抱怨XHTML的原因是因为他们喜欢编写糟糕的标记。 - Keith Tyler
    显示剩余3条评论

    3

    https://www.w3.org/html/给出了一个明确的答案,回答了这个老问题,但仍然很实际:

    https://html.spec.whatwg.org/multipage/是当前的HTML标准。 它废除了先前发布的所有其他HTML规范。

    正如在 https://www.w3.org/blog/2019/05/w3c-and-whatwg-to-work-together-to-advance-the-open-web-platform/上宣布的那样, W3C和WHATWG签署了一份协议,共同开发HTML和DOM规范的单个版本:

    https://html.spec.whatwg.org/multipage/是HTML的单个版本 正在积极开发https://dom.spec.whatwg.org/是单个版本的 正在积极开发的DOM规范。有关W3C-WHATWG协议的更多详细信息,请参见W3C和WHATWG之间的谅解备忘录

    "废除了先前发布的所有其他HTML规范"这部分意味着https://www.w3.org/TR/html52/被认为是过时的。

    P.S. 问题中的URL http://www.w3.org/TR/html5/syntax.html#parsing,重定向到https://html.spec.whatwg.org/multipage/parsing.html#parsing


    2

    有疑问时,请尝试匹配实际浏览器的行为。这才是真正重要的。

    总体而言,WHATWG可能比W3C更加现代化,尽管它可能包含更多浏览器尚不支持的内容(目前)。

    您可以将W3C视为在特定时间点上捕捉WHATWG的快照,稳定它们,然后加固它们,永远不会改变。

    • W3C HTML5于2014年10月28日最终确定。
    • W3C HTML5.1于2016年11月1日最终确定。
    • W3C HTML5.2目前处于“工作草案”阶段,可能要到2019年才会最终确定。

    2
    这就违背了拥有标准的初衷。 - ZJR
    1
    它并没有稳定它们。它是盲目地复制粘贴它们,经常带有错误。 - Suraj Jain

    2

    [2023年2月]

    根据维基百科的记录,由于WHATWG放弃了W3C,W3C不得不让步,这个问题似乎已经被彻底解决:

    2009年,W3C放弃了XHTML[24],2019年,将HTML规范控制权移交给了WHATWG[25]。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接