我们很高兴地宣布 Pointer Events 规范 已成为 W3C 推荐标准!正如 我们之前所说,我们喜欢 Pointer Events,因为它支持当今所有常见的输入设备——鼠标、笔/手写笔和手指——但它的设计方式也使得未来设备可以轻松添加,并且现有代码将自动支持新设备。虽然达到推荐状态是一个重要的时刻,但仍有许多工作要做。
Pointer Events 在开发者所支持的所有浏览器中可用后,才能成为可行的解决方案。虽然这一天可能看起来还很遥远,但 jQuery 基金会致力于尽快将可用的 Pointer Events 投入到每位开发者的手中。我们正在开发 PEP,我们的 Pointer Events polyfill,Google 从 Polymer 项目将其转移到 jQuery 基金会。PEP 将被集成到 jQuery UI、jQuery Mobile 和 Dojo 等项目中。我们希望在未来几周内发布我们的第一个版本。如果您有兴趣提供帮助,请告诉我们。
微软已经在 IE11 中发布了 Pointer Events 的完整实现,并且在 IE10 中有一个几乎完整的、带有前缀的实现。Mozilla 也在 Windows Metro 上的 Firefox 中拥有完整的实现,但目前尚未启用。这两个实现都 通过了 W3C Pointer Events 测试套件的 100%。您可以在 https://wiki.mozilla.org/Gecko/Touch 上跟踪 Mozilla 在所有支持的平台上的进展。
当然,世界并非尽善尽美。苹果似乎永远不会实现 Pointer Events。因此,Google 决定不在 Blink 中发布 Pointer Events,而是尝试 扩展 Touch Events 以拥有 Pointer Events 的功能。扩展 Touch Events 的工作正在 Touch Events Community Group 中进行,以确保互操作性和标准化。然而,人们合理地担心,向 Touch Events 添加多个扩展只会导致更加碎片化的格局,最终会恶化情况而不是改善它。即使 Apple 也不一定会实现所有这些功能,并且添加对悬停的支持由于 Touch Events 中已有的逻辑,将需要笨拙的 API。即使将 Pointer Events 的功能添加到 Touch Events 中,笨拙的事件接口也远不如 Mouse Events 那么好或容易从 Mouse Events 过渡。
尽管 Google 目前的立场是这样,但他们愿意不断重新评估发布 Pointer Events 是否有助于推动 Web 的发展。我们希望 Google 在未来能够扭转他们的决定,并且一旦 Safari 是唯一没有支持的的主要浏览器,Apple 最终将被迫实现 Pointer Events。 Chromium 中实现 Pointer Events 的问题 已经达到了所有问题(已打开和已关闭)的前 99% 百分位数,基于星标数量。
作为一个社区,我们现在就可以塑造 Web 的未来。我们需要停止让 Apple 扼杀浏览器厂商和标准机构的工作。太多次了,我们看到拥有最佳意图的浏览器厂商成为了 Apple 不愿意与标准机构合作以及 WebKit 在移动设备上占据主导地位的受害者。我们不能让这种情况继续发生。jQuery 基金会致力于推动标准,例如 Pointer Events,以改善开发人员体验,从而使 Web 成为一个更好、更易于访问的地方。 我们可以一起推动 Web 的发展,让标准和更好的 API 获胜。 我们可以选择 Pointer Events 而不是 Touch Events。 并且我们可以立即通过 PEP 来做到这一点。

