论开关控件的危害
摘要
一篇博客文章认为,在 macOS 上,开关切换控件是不好的 UI 控件,理由是它们的状态表示不清晰,并建议改用复选框。
<p><a href="https://lobste.rs/s/ulinck/toggles_considered_harmful">评论</a></p>
查看缓存全文
缓存时间: 2026/08/10 08:56
# ignore the code:开关控件是有害的
来源:https://ignorethecode.net/blog/2026/08/09/toggles_considered_harmful/
我刚读了来自 Marcin Wichary 的 Unsung 的这篇文章(https://unsung.aresluna.org/seeing-like-a-state/),他在文中点出了一个奇怪的 macOS 对话框,其中布尔开关用了四种不同的灰色来显示:
macOS 的“Link to Mac or iPad”对话框,展示了四种以开关实现的设置,每个开关的灰色深浅各不相同
Marcin 提出了一些改进建议,但真正的问题在 macOS 中是根本性的:这类开关是糟糕的 UI 控件,根本不应该存在。
我认为开关起源于 iOS,在那里它们取代了复选框。我猜原因是:在触摸屏上它们更有触感,点击区域更大,而且像物理开关——Apple 最初为 iOS 设计的 UI 方案就推崇这种拟物化。
在真实物理世界中,开关之所以合理,是因为它们的机械特性。但即便在那里,它们也需要额外的可供性才能正常工作。例如,这个插线板上有一个用来开关电源的拨动开关:
插线板上的开关,带有“Reset”和“Off”标签
注意,每个状态都有标签,还有一个指示灯来表示当前状态。这是因为开关本身是对称的,没有明显办法判断它是开还是关。
现在让我们回到数字开关:
一个数字开关
这个开关是开还是关?如果你事先不知道“左”代表“关”、“右”代表“开”,那你根本无从判断。
Apple 为了让开关状态更明显所做的尝试,最终却造成了最初截图中的混乱局面。因此,解决最初 UI 问题的最直接办法,就是使用一个状态一目了然的控件。
同一个界面,把开关换成复选框后,勾选/未勾选以及启用/禁用状态就都清楚了。
如果你需要一个短链接来引用这篇文章,请使用**https://ignco.de/818**
Designed for Use 封面(https://pragprog.com/book/lmuse2/designed-for-use-second-edition)**且慢,还有更多!**
想读更多类似内容?买我的书第二版吧!*Designed for Use: Create Usable Interfaces for Applications and the Web* 现已由 The Pragmatic Programmers 直接提供无 DRM 版本(https://pragprog.com/book/lmuse2/designed-for-use-second-edition)。或者你也可以在 Amazon 上买到(http://www.amazon.com/gp/product/1680501607/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1680501607&linkCode=as2&tag=wisegamersch-20&linkId=74A2IPF6GRYBDDTA),Amazon 上还有中文版(http://amzn.to/WMI37B)和日文版(http://www.amazon.jp/dp/4873116082)。
相似文章
为双状态主题切换辩护
该文章基于前端社区的一场辩论,为网页设计中的双状态主题切换辩护,认为与三状态选项相比,它足够且用户友好。
Dark mode toggles: two states are enough
Lea Verou argues that tri-state dark mode toggles (Light/Dark/System) are unnecessary for most users and that a well-implemented two-state toggle suffices, since users only interact with theme controls when they need to change something.
GUI 应完全由键盘驱动
文章认为 GUI 应完全由键盘驱动以提升用户体验,反驳了 TUI 在键盘导航方面固有更优的说法。
别再做 TUI 了
Thomas Ptacek 主张构建原生图形用户界面而非文本用户界面,他指出编码代理已经降低了开发成本。Simon Willison 基于自己使用 vibe-coded macOS 应用的经验支持这一观点。
原生Mac UI的总结
作者讨论了原生Mac用户界面对于用户熟悉度和开发者努力的重要性正在减弱,以Things和NetNewsWire等应用为例,并反思了macOS开发中的趋势变化。