把惯用式设计带回来
文章摘要
John Loeber 在这篇文章中提出一个鲜明的观点:桌面软件时代(Windows 95 到 Windows 7)的用户体验远胜于今天的 Web 应用,核心原因在于那个时代有”惯用式设计”(idiomatic design)——即一套标准化的界面模式,用户不需要思考就能跨应用直觉地使用。而现代 Web 应用抛弃了这些惯例,每个产品都追求独一无二的设计,结果反而造就了充满挫败感、极度不一致的用户体验。
作者将”设计惯用语”定义为”作为用户你不需要思考就知道如何使用的常见设计”。他以复选框为例——这是全球公认的、对是/否问题的默认表达。他进一步阐述”同质化界面”的价值:跨平台一致的模式(如 Command+C 表示复制)能大幅降低认知负担,用户不应当在每个应用里重新学习基本功能。
造成这一问题的根源有两点:第一是移动端转型——将鼠标键盘的模式硬套到触屏上,产生了各种尴尬的折中方案,由此衍生出大量糟糕的设计;第二是现代开发实践——开发者倾向于使用框架和 npm 包,而不是语义化的 HTML。虽然这让 Figma 这种强大应用成为可能,但也彻底抛弃了 Web 惯例。
Windows 2000 被作者作为惯用式设计的典范:标准化的 File/Edit/View 菜单、带下划线提示的键盘导航快捷键、描述性标签而非图标、以及清晰的状态栏。这些模式在所有应用中保持一致。反观现代反例——Figma 和 Linear 这两款设计都很出色的企业应用”没有共享一个图标”,键盘快捷键也完全不同,迫使用户一次次地重新学习。
文章最后提出了八条实用建议:尽可能遵循 HTML/CSS 标准;避免用 JavaScript 自定义实现基本元素;尊重浏览器惯例(返回按钮、URL 复制);如果偏离标准也要保持内部一致;优先使用清晰的文字标签而非图标;让可交互元素视觉上明显;选择清晰胜过美观;并参考经典设计书籍和成功的当代案例。Loeber 的愿景是:经过三十年数百万次的迭代尝试,产业终将在日期选择器、信用卡表单等组件上收敛到”最佳形态”。标准化将恢复现在被异质界面打断的那种高效流畅。
HN 评论精华
-
回车键行为的混乱是典型病症:讨论集中在 UI 惯例崩坏的具体症状上,尤其是文本输入框中 Enter 键的行为。一位评论者吐槽:”有些应用里 Enter 提交文本,Ctrl+Enter 强制换行”,而”另一些应用里正好反过来”。这种微小但高频的不一致持续给用户制造摩擦。
-
桌面时代的一致性来自约束:有人指出当年的一致性并非开发者主动选择,而是被框架约束的结果。Windows 和 macOS 提供的框架指引开发者走向统一模式——开发者”与其说是在遵循设计惯例,不如说是在做 Windows 上最容易做的事”。Web 消除了这种护栏,根本没有能与 Win32 或 AppKit 相提并论的东西去强制一致性。
-
为何不一致会延续:原因是结构性的。组织激励层面,设计师和产品经理需要通过引入新的 UI 模式来证明自身价值,而不是遵循既有的。品牌差异化的需求常常压倒可用性考虑。技术碎片化方面,每家公司都自建一套专有设计系统,让跨应用的体验进一步割裂。
-
CJK 输入法的技术冲突:一位评论者提出了一个被忽视的角度——中日韩输入法(IME)本身使用 Enter 选字,这与聊天应用中 Enter 发送的期望存在真实的技术冲突。不同文化背景下的约定可能本就无法完全统一。
-
解决之道在于基础设施而非倡议:最具启发性的建议是——解决方案不应靠号召,而应靠基础设施。”好的应用会让这一点可配置”,另一种思路是在行为改变时明确显示模式指示器,类似 Vim 的状态行。这条评论点出了根本规律:惯例源自约束,而非口号。