随笔·阅读约 1 分钟·
一个只影响左撇子的 Bug:当十年老代码碰上设计盲区

一个只影响左撇子的 Bug:当十年老代码碰上设计盲区

WordPress 中一个存在了 7 年的 Bug,只影响左手持机的用户。背后是 UI 设计中一个被普遍忽视的问题:默认假设用户都是右撇子。

原文来源:Terence Eden's Blog — A bug which only affected left-handed users — 一个存在了 7 年的 WordPress Bug,只会影响左手持机的用户,揭示了 UI 设计中隐含的「右撇子默认值」问题。

2026 年 7 月,Terence Eden 在调试博客时发现了一个奇特的 Bug:当他在手机上滚动页面时,评论回复框会莫名其妙地弹出来。排查了老半天,他注意到一个规律——这个 Bug 只在他用左手持机时出现

一个用了十年、但早已不需要的「优化」

故事的起点是 2017 年。那时候的手机浏览器有一个臭名昭著的 300ms 点击延迟——移动端为了区分「点击」和「双击缩放」,每次点击后都要等 300ms 才能触发事件。这严重影响用户体验。

WordPress 核心团队在 2017 年给评论链接添加了一个 touchstart 事件监听器,用来跳过这个延迟。这在当时是个合理的优化。

问题是:这个延迟早在 2013-2015 年间就已经被浏览器厂商解决掉了。Chrome 在 2013 年就移除了 300ms 延迟(需要 <meta name="viewport">),Safari 和 Firefox 也在 2015 年前后跟进。WordPress 的这个「优化」在代码提交的那一刻就已经快要过时了。

但代码一旦写进去,就再没人动过。一晃 7 年。

—— 广告 ——

为什么只影响左撇子?

Bug 的触发机制其实很简单:touchstart 监听器绑定在了评论链接上。当用户在手机屏幕上滚动页面时,手指的第一次触碰就会激活这个监听器,评论回复框立刻弹出来。

问题的关键在手指落点

大多数人(约 90%)是右撇子,拿着手机时右手拇指自然在屏幕右侧活动。而评论「回复」链接通常放在文章的左侧。当右撇子用右手拇指滚动时,拇指的落点在屏幕右侧,碰不到左侧的「回复」链接。

但左手持机的用户——不管是左撇子还是习惯左手拿手机的人——他们的拇指落点在屏幕左侧,正好覆盖了「回复」链接的触发区域。每次滚动都是一次意外的触发。

这个 Bug 在 WordPress Trac 上挂了 7 年(工单 #46713),一直没人修复。因为开发者和绝大多数测试者都是右撇子,他们根本触发不了这个 Bug

消失的修复

修复方案极其简单:删掉那两行过时的 touchstart 监听代码。

Terence Eden 向 WordPress 提交了一个 PR,仅删除了一段早已无用的 JavaScript。但这件事背后折射出的问题,远比两行代码更值得思考。

"It isn't the most sophisticated change to WordPress — merely deleting a couple of lines."

左撇子与设计盲区

全球大约 10% 的人口是左撇子——约 8 亿人。但这个群体在技术产品的设计过程中几乎总是被忽视。

这不是孤立事件。Yves Guiard 在双手机交互的研究中就指出,左手右手在精细操作中扮演的角色本质不同,但绝大多数数字产品的交互设计默认以右手用户为基准。这种「右撇子默认值」体现在方方面面:

  • 手机 UI 的导航栏放左边(如 iOS 的返回按钮)——对右手用户自然,但左手用户需要别扭地调整握持姿势
  • 下拉菜单和操作按钮放在屏幕右侧——适合右手点击,左手用户需要交叉手操作
  • 滑动删除的方向——很多 App 的「向左滑动删除」默认右手用户从左向右滑,左手用户则要反向用力

有趣的是,评论区里的读者反馈更加复杂化了这个「左撇子 vs 右撇子」的二分法:

一位读者提到自己虽然是右撇子,但习惯左手拿手机,右手空出来做笔记。这意味着即使「我是右撇子」这个身份标签,也不代表你的使用习惯就是「标准」的。

另一位左撇子读者说,他反而习惯用右手操作手机和鼠标,因为从小就在右撇子主导的世界里学会了适应,把优势手空出来做更精细的操作。

超过 10 个人的问题,就不是小问题

这个 Bug 在 Hacker News 上获得了超过 700 个点赞,评论区里不少左撇子开发者分享了自己类似的经历。

但更值得反思的是另一个现象:评论区里有右撇子读者说,自己也遇到过这个 Bug,但以为是自己操作失误,从来没想过要报告。一个 Bug 存在了 7 年,用户体验受影响的时间更长,但很少有人把它当作一个「真正的 Bug」来对待——因为触发条件太隐晦了。

如果 Bug 的存在依赖于某种你无法感知的条件,那它对你来说就是不存在的。

这跟「可访问性」领域的老问题如出一辙:视力正常的开发者不会注意到配色对比度问题,听力正常的人不会注意字幕缺失,右撇子设计团队不会发现左手用户遇到的障碍。

解决这类问题的第一步,不是更复杂的测试流程,而是意识到你的默认假设可能不是所有人的默认值

结语

7 年,两行代码,8 亿人。

这个 Bug 的修复成本接近于零——删除两行早已不需要的 JavaScript。但它花了整整 7 年才被注意到,因为制造它的人和被它困扰的人是两拨完全不重叠的人群。

说到底,最好的设计不是为「默认用户」设计的,而是承认不存在什么「默认用户」。

分享到
微博Twitter

© 2026 四月

原文链接:https://www.aprilzz.com/ramble/left-handed-bug