惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
L
LINUX DO - 最新话题
Help Net Security
Help Net Security
N
News | PayPal Newsroom
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
S
Security @ Cisco Blogs
W
WeLiveSecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
Webroot Blog
Webroot Blog
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tor Project blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
PCI Perspectives
PCI Perspectives
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
S
SegmentFault 最新的问题
J
Java Code Geeks
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 【当耐特】
博客园_首页
H
Hacker News: Front Page
T
Threatpost
Jina AI
Jina AI
博客园 - Franky
月光博客
月光博客
L
LINUX DO - 热门话题
The Cloudflare Blog
H
Heimdal Security Blog
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
Cloudbric
Cloudbric
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
S
Secure Thoughts
T
Tenable Blog
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

Cyberia

《C(金钱掌控)》观后感 - Cyberia C#在Windows UI开发中的衰落 - Cyberia 存储退潮 字体padding计算器 开源已死 如何写出优雅完整的音频元数据 自动化EAC音频抓取 起夜级家庭网络正在变得越来越重要 优化Powershell的启动时间 无JavaScript其实没有很重要 你不需要一个电纸书阅读器 文件分享的难题 为什么我不敢看都市 某科学的 SSH 算号指南 时代的辉夜姬 为什么 Pixi 是神 关于神椿的过去,当下以及未来,我的一点看法 The EVE of PUSHING LIMITS 在 Word 中通过制表符实现居中对齐等操作 编码之殇:前 Unicode 时代的 WAV 处理 sHELL 即地狱 WR1800K AX NAND 路由器刷入 Immortalwrt 一个 PWM 的世界 沉痛悼念复选框同志 字体焕新 独立博客自省问卷15题 答一答 解决 Visual Studio Code 内终端启动报错问题 (1) 简评《鱿鱼游戏》 Sword Art Online,以及它带来了什么 解决 Visual Studio Code 内终端启动报错问题 2024 年度总结 轻小说重度依赖 铃音之后 解决部分应用在 Windows 平台下端口被随机占用的问题 计算机科学中最困难的事:居中 宿舍场景下多人共用路由器下流量分流实践 Extra Decal Pre Processor 自动化处理 Amazon Music 文件 MD5 不一致问题 解决 MultiMC 无 Forge 版本的 Optifine 安装问题
Tahoe 的图标令人难评
Tonsky x Nullpinter · 2026-01-08 · via Cyberia

在我阅读1992年的麦金塔人机界面指南(HIG)的时候,找到了这个很好的插图:

hig_icons

并附以下解释:

hig_qoute

保持显示界面的图形设计简洁。界面元素的数量及其行为应当受到限制,以增强界面的可用性。 图形——图标、窗口、对话框等——是实现高效人机交互的基础,设计时必须充分考虑这一点。不要因过多的窗口使屏幕显得杂乱,不要用复杂的图标让用户产生过度负担,也不要在对话框中放置成堆的按钮。

让我们快进到2025年,苹果发布了macOS Tahoe系统。本次更新的最大亮点是在每个菜单项上添加了让人不快、分散注意力、难以辨认、凌乱、堆叠、令人困惑且令人沮丧的图标(这是苹果官方的说法,不是我的!):

st

这很不好。但是为什么这很不好?让我们深入分析一下。

免责声明:所有截图分别采自 macOS 26.1 与 26.2,来源仅限系统自带的 Apple 原生应用,未进行任何系统级配置调整。

图标应具有辨识度#

图标的核心作用是帮助你更快地找到你想要的东西

比较反直觉的是,给所有东西都加上图标,反而是一种错误。只有当某些内容在形式上与众不同时,它们才会被注意到;而一旦所有内容都拥有图标,图标本身就失去了区分意义,自然也谈不上“突出”。

颜色同样如此。
黑白图标看起来很干净,但它们并不能帮助你更快地找到目标。

微软以前明白这一点:

word

看看你能够多快的找到正确的“保存”或“分享”选项:

menu_cleanup

这看起来也很清爽、简洁。

彩色版本会更好(文字与图标的区分度更强,更容易找):

menu_cleanup

你也许并不喜欢它的外观——我同样如此。
这些图标在设计上并不轻松:必须从一开始就把颜色纳入考虑,才能保证最终效果不至于难看。
但它确实非常好用

不同应用间的图标一致性#

如果你希望图标真正发挥作用,它们必须保持一致。人们需要学习才能够辨别它们的含义。

举个例子,我看到了“剪切”操作以及 scissors。好,下次我寻找“剪切”操作的时候,我会去寻找 scissors,这样子更能够节省时间。

Tahoe在这方面做的如何?让我展示给你看:50种“新建”:

menu_new

把它们全部放在一起看,会更加抽象:

icons_new

诚然,其中有些操作本身就不相同,因此配以不同的图标也无可厚非。创建智能文件夹与创建日记条目确实是两种不同的行为。但这个又该怎么解释?

menu_new_object

或者这个:

icons_new_smart_folder

或者这个:

icons_new_window

别找借口。

对于“打开”:

menu_open

“保存”:

menu_save

没错。其中一个是复选符号。它们连箭头的方向都无法达成一致!

“关闭”:

menu_close

“查找”(有些时候是搜索,或者过滤):

menu_find

“删除”(出自 剪切-复制-粘贴-删除):

menu_delete

最小化窗口:

menu_minimize

这并不是什么晦涩或小众的操作。 它们是操作系统最基础、最核心的功能。 几乎每个应用都提供这些功能,而且它们在界面中的位置始终保持一致。 既然如此,它们就不该以截然不同的形式呈现

同一应用中的图标一致性#

工具栏中同样使用了图标。
按理说,工具栏里的操作与通过菜单调用的操作在功能上完全一致,因此理应使用相同的图标。 这其实是最简单、也最不容易出错的场景:发生在同一个应用内,往往甚至位于同一屏幕之上。 在这样的条件下,保持一致性真的有那么难吗?

预览:

preview

照片: info_circleinfo同时存在捏

photos

地图和其他工具常使用不同的图标表示缩放:

consistency_maps

图标复用#

另一项大忌是为不同操作使用相同的图标。试想:我已经知道 square_and_pencil代表“New”:

new_note

然后我打开了一个应用并且看到了 square_and_pencil。OK,我已经知道 square_and_pencil是什么意思了:

edit_address

太棒辣!

你可能会想, eye意味着“Quick Look”:

quick_look

并非并非,有些时候 eye是“Show completed”:

show_completed

有些时候 square_and_arrow_down是“Import”:

import_

有些时候 square_and_arrow_down是“Updates”:

update

就和一致性一样,图标复用不止发生在不同的应用之间。有些时候你能看到工具栏上的 rectangle_pencil_ellipsis

form_filling_toolbar

然后在同一个应用中看到 rectangle_pencil_ellipsis具有不同的意思:

autofill

有时相同的图标会出现在同一个菜单中:

save_export

甚至相邻:

passwords

还有紧密排列一整列的:

photos_export

这无益于任何人。 当所有图标看起来一模一样时,用户既不能更快地找到对应的菜单项,也无法借此更好地理解其功能。

迄今为止最严重的图标复用案例当属“照片”应用:

photos_copy

看起来,负责为每个菜单项设计独立图标的人,似乎突然灵感枯竭了。

完全可以理解!

不必要的细微差别#

观察图标时,我们通常会忽略一些细微的差异。这能够让我们把不同的图标映射到相同的概念上,例如这些细节上上不同的道路标志具有相同含义:

pedestrians

因此,若你在某处绘制一个指向框外的箭头,同时又绘制一个箭头和框但角度略有不同,或笔画粗细不同,或使其中一个填充颜色,我们仍会把这些理解成相同的含义。

所以, info_circleinfo_circle_fill具有不同的含义?别开玩笑了。

similar_i

或者两个大写字母A,它们的字体大小仅略有不同:

similar_font_size

铅笔是“重命名”,但划线的铅笔就是“高亮”?

similar_pencil

使用正副对角线的箭头?

similar_actual_size

三个点占用⅔的空间 VS 三个点沾满。认真的?

similar_sidebar

颜色更深一点?

similar_quality

这张纸,根据它的角是否折叠或内部是否有线条而改变含义?

similar_sheet

但最终BOSS是箭头。它们各不相同:

similar_font_size

据说优质的用户必须能够一眼顶针圆圈的变形程度,能够立刻看出圆形被“挤压”的程度,判断变形是从右上还是右下开始的,以及箭头末端延伸了多远。

我在乎吗?说实在的不在乎。如果苹果能保持一致性,我或许会尝试理解。但苹果在某个场景里把 square_and_pencilplus视作同义,却又指望我在另一场景里注意到这种细微差别?

抱歉,我不能接受。经历过这么多之后,鬼才信。

细节过多#

图标的设计目标,是即使在一定距离之外也能被轻松识别。这一点所有图标设计师都清楚:细小的细节是不可取的。你或许可以在某些情况下、出于审美目的加入少量细节,但绝不能依赖这些细节来传达信息

而 Tahoe 菜单中的图标尺寸非常小。大多数图标都被限制在12×12像素的区域内(Retina上实际分辨率为24×24),并且因为很多图标并非正方形,其中一个维度往往甚至小于12像素。

这几乎没有多少可供发挥的空间!即便是Windows 95时代,图标尺寸也有16×16像素。如果按当时常见的72 DPI计算,其物理尺寸约为0.22英寸(5.6毫米)。而在一台254 DPI的现代MacBook Pro上,Tahoe的24×24像素图标,物理尺寸只有0.09英寸(2.4毫米)。 没错,24的确比16大,但实际上这些图标的实际显示面积却小了4倍。

dpi_comparison

模拟物理尺寸对比:左侧为16×16像素(72 DPI),右侧为24×24像素(254 DPI)

所以当我看到这个:

details_zoom

我很难看出区别。我能看出它们确实不同,但我确实很难看得出画的是什么。

放大20倍,依然是一坨:

details_zoom

哦还有这个,这是三种不同的图标:

details_lists

我能在这里把加号和星星区分开吗?

details_sparkle

其中某些线条比其他线条厚半个像素,而这正是关键所在:

details_redact

这可能是个箭头?

details_original

一个颜料刷?

details_paste

看,这是一个小照相机:

details_screenshot

它甚至配备了一个更小的取景器,如果你放大20倍,几乎能看到它:

details_screenshot_zoomed

或者看看这个。有一个框,框里有一个圆圈,圆圈里有一个微小的字母i,总高度仅有2像素:

details_properties

看不见?

details_properties_zoomed

我真看不见。但确实有……

然后再来看看这个窗口!居然还有红绿灯!多可爱啊:

details_window

请记住:这些是retina像素,相当于真实像素的¼。史蒂夫·乔布斯本人曾宣称它们肉眼不可见。

事实证明,每英寸300像素左右存在一个神奇的值——当你将物品置于距眼睛10至12英寸处时,这正是人类视网膜分辨像素的极限。

然而,Tahoe图标的设计却依赖于你能够看清它们。

像素网格#

当可用空间极其有限时,每一个像素都至关重要。你当然可以做出一个不错的图标,但前提是必须对每一个像素的取舍都极为谨慎。

在Tahoe的图标中,Apple选择使用矢量字体,而不是传统的位图。这种做法可以节省Apple的资源——一次绘制,处处复用;不同大小、不同分辨率还是不同字重,都可以复用。

但这种方案也存在明显的缺点:字体在垂直方向上很难精确定位,其字号并不能直接映射到具体像素,笔画宽度也无法与像素网格做到一一对应。结果是,虽然到处都可以用这些图标,但是在任何地方都显得模糊且平庸。

details_window
Tahoe 图标(左)及其像素对齐版本(右)

确实,如果图标大一点点会好很多。

ipad_comparison
iPad OS 26 vs macOS 26

或者让图形更简洁。细节与微型图标的组合堪称致命。因此,在苹果推出380+ DPI的MacBook之前,我们不得不继续关注像素网格。

令人困惑的含义#

图标可能还有另一项功能:帮助用户理解命令的含义。

例如,一旦了解上下文(移动窗口),这些图标比文字更能快速说明操作内容:

window

但要使这种设计奏效,用户必须理解图标上绘制的图案。它必须是具有明确对应计算机操作的熟悉物体(如垃圾桶→删除)、广泛使用的符号,或易于理解的示意图。HIG:

pedestrians

新手常犯的错误之一就是错误地描述对象。例如,选择操作看起来是这样的:

metaphor_selection

但是图标长这样:

metaphor_select

说实话,我写这篇文章已经一周了,至今仍完全不明白为什么它会变成这样。有个对象看起来和上面那个一样,但它在自由/预览模式下是个文本块:

metaphor_text_block

在SF Symbols中这叫character.textbox

character_textbox

为什么它会成为“全选”?我认为这很可能是误用。

另一个地方竟在Mac上使用iOS的文本选择!

metaphor_text_selection

某些图标具有显而易见或被广泛接受的含义。在这种情况下,不使用它们是错误的。例如书签 bookmark苹果出于某种原因选择了书本:

metaphor_bookmarks

有时现成的界面元素可作为图标使用。但请注意避免混淆用户认知——矩形中的圆点更像是密码输入框而非权限设置:

metaphor_permissions

图标表示“勾选”,但是实际上操作是“取消勾选”:

metaphor_mark_incomplete

严重的错误:图标不仅无助于理解,反而会误导用户。

人们也容易设计出双层图标:一个主体对象加某种指示符号。例如勾选框配上叉号,意为“取消勾选”:

metaphor_mark_unchecked

或者一个用户和一个勾号,比如“勾选该用户”:

metaphor_manage

遗憾的是,这种小巧思基本没用。用户懒得和你对电波。

寻找好的含义很困难。名词比动词容易,而菜单项大多是动词。“打开”的动作该怎么表现?一支指向右上角的箭头?为什么?

metaphor_open

我并非说苹果错过了某个显而易见的表示“打开”的图标——事实上并不存在。但关键正在于此:若找不到恰当的图标,不使用图标远胜于采用拙劣、令人困惑或毫无意义的图标。

我常用一个游戏来检验图标的质量:去掉文本,试着猜出含义。来试试看:

metaphor_guess

妄想只要绞尽脑汁就能为每个操作设计出完美的图标,这纯属痴人说梦。根本不可能,从一开始就不可能。无论投入多少资金或做出多少“管理决策”都无济于事,纯自找苦吃。

话虽如此,苹果公司确实值得称赞。他们在选择图标方面确实很在行:

metaphor_up_down

成对操作#

一种典型、且极易引发混淆的图标语义问题,是对本质上互为对立的一组操作,赋予了不一致的图标含义。 例如撤销与重做、打开与关闭、向左与向右,这类天然成对的操作。

使用具有相同含义的图标对是好的:

symmetry_import_export_right

因为它能节省你的时间和认知资源,你只需要理解一种。

正因如此,不使用相关动作的通用含义实属错误:

symmetry_select

或者这个:

symmetry_clipboard

另一个错误则是强行配对不同的操作。“返回”对应“查看全部”?

symmetry_app_store

有些Tahoe中的菜单同时存在两种错误。例如:显示/隐藏没有配对,但是把已完成任务与子任务配成了一对:

symmetry_eye

导入没有和导出配对,反而和分享搭上了:

symmetry_import_export

图标中的文字#

HIG中描述:

hig_text_icons

避免在图标中使用文字
应尽量避免在图标中直接使用文字。图标中的文字容易引起混淆,而且无法很好地适配不同地区、语言或国家的本地化需求。 为帮助用户识别图标,并使视力障碍用户能够通过朗读功能理解其含义,对图标进行文字标注是合适且必要的。在产品发布时,每个图标都应当有一个名称,但需要注意的是,用户可以在任何时候更改图标的名称。图 8-11 展示了包含文字的图标示例,以及在不使用文字的情况下更能清晰传达含义的图标示例。

HIG的作者们反对将文本作为图标的一部分。因此类似这样的设计:

metaphor_select

或者这个:

similar_i

在1992年不会出现。

但Tahoe存在更严重的问题:图标仅由文本构成。例如:

text_font

难以分辨“不应字面理解的具有具体含义的图标文本”与文本的界限。它们使用相同的字体和颜色,我该如何区分?这些图标只会妨碍阅读:A.​.​.Complete?AaFont?这到底是什么意思?

我或许还能勉强理解 textformat_characters_dottedunderlinea_ellipsis,圆点多少还能象征某种含义,我也能想象设计 aa时背后的思路。。但 textformat_characters呢?没有任何装饰和特效,只是普通的Abc。这对吗?

格式化文本#

有人可能会认为,使用图标来展示文本格式化过程是个好的主意。

你可以看到这种:

text_transformations

或者:

text_size

或者:

text_styles

仅凭图标就能理解文字将发生的变化。图标展示了操作过程。

此外,BIU这三种表示在文字处理领域已相当成熟,难道全是优点?

也不尽然。问题依然存在——文本图标看起来像文字而非图标。更何况这些图标过于冗余。重复首字母有何意义?“Bold”一词本身就以字母”B”开头,阅读时同样顺畅,何必重复?让我们复习一下:

text_styles

甚至在快捷方式上又重复了一遍……

有一个更好的设计方法:

text_styles_inline

并且苹果在33年前就已经知道了。

hig_style

图标中的系统元素#

操作系统自己也会使用一些视觉元素作为图标,例如窗口控件、调整大小控点、光标、快捷方式等。若将这些元素用于图标设计则实属错误。

hig_standard_elements

不要为已有对象赋予新的行为
上一节介绍了如何使用现有用户界面中的元素。在使用这些既有的界面构建模块时,应当按照其标准方式来使用,务必不要更改标准元素的既有行为。当你需要一种新的行为时,应当为其设计一个新的元素。 如果同一个元素在不同情境下表现出不同的行为,整个界面就会变得不可预测,也更难以理解和使用。

但是苹果再次掉入了这个陷阱,他们复用了箭头。

text_arrow

键盘快捷方式:

text_encoding

HIG专门有一节内容讨论省略号的使用,并强调在菜单的其他位置使用它有多么危险。

hig_ellipsis

以一个包含子面板(subpalette)的调色板为例。你可能会想到使用省略号(…)来表示该调色板还会显示更多选项。然而,用这个符号来指示子面板,会赋予它不同于其标准含义的意义。 在菜单中,省略号表示:在操作执行之前,用户还需要提供更多信息;它并不表示当用户选择该项时会出现更多内容。图 3-3 展示了这种对省略号的不正确使用方式。

显然Tahoe中也有这个问题:

text_ellipsis

图标打断了阅读#

如果没有图标,你只需自上而下扫视菜单,只关注每个条目的首字母即可。 因为这些文字在垂直方向上是对齐的:

align_sequoia
macOS Sequoia

但在Tahoe,有些菜单项带有图标,有些则没有,且它们的对齐方式也不同:

align_tahoe

某些项目可能同时带有复选标记和图标,也可能只带有其中一种,或者两者都没有,因此会出现如下情况:

align_holes

呕。

特别提名#

这个菜单值得单独拿出来说:

writing_direction

相同的图标却对应着不同的操作,缺乏任何直观的语义区分。 只是把第一个图标稍微缩小了一点。 恭喜——它“满足”了所有要求。

HIG还没过时吗?#

我多次提到 HIG,你或许会产生这样的疑问: 一本写于 1992 年的界面设计手册,在今天是否仍然具有意义? 计算机不是已经发生了翻天覆地的变化,以至于必须依赖一套全新的原则、设计方法和交互范式了吗?

答案是:是,也不是。
当然,其中诸如“如何让图标适配黑白显示器”之类的具体建议,早已不合时宜。 但那些原则——只要它们本身是合理的——依然成立,因为它们关注的并不是计算机如何运作,而是人类如何运作

人类并不会每年更新一个新版本。我们的记忆力不会翻倍,视力也不会变得更加敏锐。注意力的运作方式始终如一。视觉识别、运动技能——这些能力与1992年时并无二致。

所以在我们真正拥有真正的脑机接口前,HIG仍有现实意义。

结论#

在我看来,苹果给自己设定了一个几乎不可能完成的任务:为每一个菜单项都配上一个图标。要做到这一点,根本不存在足够多合适的含义可供使用。

但即便真的存在,这个前提本身也值得怀疑:“所有东西都有图标”并不意味着用户就能更快找到自己想要的功能。

即使退一步,假设这个前提是成立的,我也希望至少可以说一句:在既定目标下,他们已经尽力而为。然而事实并非如此——图标的使用前后失序,缺乏一致性;设计质量同样堪忧,而且这种问题并非偶发,而是贯穿始终。

我希望这篇文章能帮助读者避免一些图标设计中常见的错误,而苹果恰好在一次操作系统的更新中把这些错误几乎全部犯了一次。我热爱计算机,热爱界面设计,也热爱视觉传达。看到那些30年前就已经被充分总结、并且触手可及的优秀知识,在今天被完全忽视甚至丢弃,真的让人感到遗憾。

不过,往好的一面看:现在想要把界面设计做得比苹果更好,已经没那么难了。

为此干一杯吧。新年快乐!

align_sequoia
来自 SF Symbols: 正在打电话的笑脸

后注#

在回顾这篇文章时,我发现我与Jim Nielsen的观点出奇地一致。我将此视为一种证据,表明我们的推理背后,确实指向了某种共同的事实。

同样的:Safari → File的菜单在26.0中变得更差了。原来只有4个图标,现在有18个。

感谢 Kevin,Ryan以及Nicki帮助审阅本文的草稿。

更新:已知引用#

译者的话#

jobs

mios