要从零造一个按钮,你得先创造整个宇宙

查看原文 HN 讨论

文章摘要

(说明:原文站点启用了 Cloudflare 人机验证,抓取返回 403,本文摘要主要依据文章标题、HN 讨论及相关背景整理,未臆造原文细节。)

这篇文章的标题化用了卡尔·萨根那句名言”若你想从零做一个苹果派,你必须先创造整个宇宙”,把它套用到 Web 开发上——要”从零”手工造出一个和原生 HTML <button> 一模一样的按钮,你得先把浏览器和操作系统免费送给你的一切重新发明一遍。文章是一篇带有强烈讽刺意味的”可访问性教程”:它一本正经地一步步演示,为了让一个自制按钮真正合格,你需要补齐多少东西——正确的 ARIA 角色与状态、键盘可聚焦性与焦点管理、空格/回车键的激活、指针事件(pointer events)的处理,等等。层层叠加之后,代码膨胀到约 500 行,而这一切原本只需写 <button> 就能白白获得。

文章的核心论点因此不言自明:现代 Web 生态里普遍存在一种”重新发明轮子”的坏习惯——开发者动辄用 <div> 加一堆 JavaScript 去模拟原生控件,结果既不可访问、又容易出错。与其如此,不如直接使用语义化的原生 HTML 元素。这既是对”不用原生元素”这一坏实践的辛辣嘲讽,也是对可访问性重要性的严肃提醒:无障碍能力不是可选的装饰,而是原生元素早已替你处理好的基础设施,一旦抛弃就要付出巨大且容易犯错的代价。文章还有一个耐人寻味的细节被读者注意到:页面里内嵌了一条给 AI 的指令,明确要求 AI 不要总结本文——这被视为当下”内容作者对 AI 抓取产生敌意”的一个新鲜信号。

HN 评论精华

评论区一致认可文章的讽刺笔法,同时延伸出关于原生元素、组件库、平台限制乃至 AI 训练数据质量的讨论。