Caniuse 和 MDN 兼容性数据协作

网页开发者花费大量时间做出网页兼容性决策。决定是否使用某个网页平台功能,通常取决于该功能在网页浏览器中的可用性。

兼容性数据简史

十多年前@fyrd 创建了 caniuse 项目,帮助开发者检查功能在不同浏览器中的可用性。随着时间的推移,caniuse 已经发展成为回答日常问题的首选资源:“我可以使用这个吗?”

大约两年前,MDN 团队开始重新制作其浏览器兼容性表格。该团队的使命是 消除网页兼容性的猜测。从那时起,BCD 项目已经成为一个包含 10,000 多个数据点的庞大数据集。它在超过 500 位 GitHub 贡献者 的帮助下保持更新。

MDN 兼容性数据可在 npm 上作为开放数据获取,并且已集成到各种项目中,包括 VS Codewebhint.io 审计。

两个伟大的数据源走到一起

今天,我们宣布将 MDN 的兼容性数据集成到 caniuse 网站中。我们将更多网页兼容性信息带到网页开发者的手中。

Caniuse table for Intl.RelativeTimeFormat. Data imported from mdn-compat-data.

在我们开始合作之前,caniuse 网站仅显示 caniuse 数据库中可用功能的结果。现在,所有搜索结果都可能包含 MDN 兼容性数据的支持表格。这包括 caniuse 中已经存在的数据类型,特别是 HTML、CSS、JavaScript、Web API、SVG 和 HTTP 类别。通过添加 MDN 数据,caniuse 支持表格数量从大约 500 个增加到 10,500 个!开发者关于哪些功能在哪些浏览器中受支持的 caniuse 查询现在将获得更多结果。

新的功能表格看起来会有所不同。由于 MDN 兼容性数据项目和 caniuse 具有兼容但略有不同的目标,因此实施方式也略有不同。虽然新的基于 MDN 的表格并非对所有可用元数据(如资源链接和完整功能描述)都具有匹配字段,但将包含支持说明和详细信息,例如错误信息、前缀、功能标志等。

MDN 兼容性数据本身在后台被转换为与 caniuse 兼容表格中使用的相同格式。因此,用户可以像任何其他 caniuse 表格一样,筛选和排列基于 MDN 的数据表格。这包括访问浏览器使用信息,无论是按区域还是 通过 Google Analytics 导入,以帮助您决定某个功能是否获得了足够多的用户支持。并且通过两个数据集提供的不同视图模式可以帮助可视化支持信息。

数据集之间的差异

我们被问到为什么数据集的处理方式不同。为什么我们没有一开始就将它们合并?我们讨论并考虑了这个选项。但是,由于我们两个项目之间的内在差异,我们决定不这样做。以下是原因。

MDN 的支持数据非常广泛,涵盖了非常细致的功能支持级别。这使 MDN 能够跨所有网页技术提供尽可能多的详细信息,补充 MDN Web Docs 提供的参考信息。

另一方面,caniuse 通常会整体查看较大的功能(例如,CSS GridWebGL,特定文件格式支持)。caniuse 方法为开发者提供关于功能是否受支持的高级一目了然的信息。有时会缺少细节。每个单独的功能都会手动添加到 caniuse 中,主要关注浏览器支持覆盖率,而不是总体功能覆盖率。

由于这些以及其他实施差异,我们目前不打算合并源数据存储库或匹配数据模式。相反,集成通过将搜索查询与 caniuse.com 上的功能描述进行匹配来实现。然后,caniuse 会生成相应的特征表格,并将 MDN 支持数据实时转换为 caniuse 格式。

接下来是什么

我们鼓励两个存储库的社区成员,caniusemdn-compat-data,共同努力改进基础数据。通过尽可能地共享信息和合作,我们可以帮助网页开发者找到兼容性问题的答案。

关于 Florian Scholz

Florian 是 MDN Web Docs 的内容负责人,撰写有关网页平台技术的文章,并研究浏览器兼容性数据。他住在德国不来梅。

更多 Florian Scholz 的文章...

关于 Alexis Deveria

Alexis 是 caniuse.com 的创建者和维护者,白天是 Adobe 的网页开发者。

更多 Alexis Deveria 的文章...


一条评论

  1. Clint Priest

    确实非常棒的工作!Mozilla,继续努力!

    2019 年 9 月 10 日 04:38

本文的评论已关闭。