E5.02.2destinations versus actions设计

标签必须是并列的目的地而非动作

别名: 目的地型导航 · tab as destination · 底栏动作污染

概念解释

底部标签栏上的每一项应是一个可以停留的目的地(destination),而不是一次做完就消失的动作(action)。「首页 / 搜索 / 消息 / 我的」是四处可回访的地方;「发布」「扫一扫」「创建」是触发一次流程。把动作塞进标签栏,选中态会失去意义:点完发布后,哪一项该保持选中?人无法用「我现在在哪一站」来理解底栏。

机制

标签栏的选中态是位置信号:高亮的那一项告诉你当前停在哪一个并列空间。目的地满足这个语义——切到「消息」就待在消息栈里,再切走、切回来,仍是同一个地方。动作不满足:动作会打开相机、编辑器或一次性流程,完成后要么回到刚才的目的地,要么进入一个从未在栏上出现过的页面。若动作项也有选中态,高亮会撒谎;若没有选中态,整条栏的「一项且仅一项被选中」规则被打破,用户要额外判断「这一项是去一个地方,还是开枪」。

混放还会扭曲信息架构。动作往往被做成中间凸起的大按钮,视觉权重高于真正的目的地,使用率被强行抬高,同时占用一个本该给并列空间的槽。结果是:栏上可见的地方变少,而那个动作在别的表面(顶栏、内容内按钮)本来也可以触发。底栏被征用成工具条,就不再是地图。

边界

少数产品把「创建」做成中心项并立刻覆盖全屏,用户已经学会它不是一站。这种用法靠的是视觉例外(凸起、与两侧不同构),而不是标签语义,不能推广成「动作也可以当标签」。搜索若是一个可停留、可恢复上次查询的一级空间,它是目的地;若只是弹出键盘再关掉,它是动作,不该占一个标签槽。桌面侧栏里「新建」放在列表底部是工具条模式,不要和底部标签栏的选中模型混为一谈。

怎么落地

  • 列底栏候选时先问:离开再回来,用户是否还停在同一个空间。能,则是目的地;不能,则是动作,放到内容内、顶栏或悬浮按钮。
  • 整条栏始终保持「恰好一项选中」。点击某项若打开模态流程,结束后把选中态退回进入前的那一项,不要把动作项点亮。
  • 需要强调的创建动作用与标签不同构的控件,避免它参与选中竞争。
  • 验证:走完每个底栏项的往返,问用户「你现在在哪一站」。答不出站名、或答成「我刚发了一条」的那一项,就是动作混进了目的地栏。再检查截屏:是否始终能指出唯一高亮项。

延伸

  • 同组E5.02.1 标签数量上限受宽度与可读性约束 · E5.02.3 切换标签需保留各标签内的位置状态
  • 相邻E5.11 页签 · E5.16 快捷入口与固定项
  • 站内检索destinations versus actions · tab bar semantics · selected state

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/E5.02.2