E5.11.2overflowing tabs设计

页签数量超出宽度需滚动或折叠

别名: 页签溢出 · scrollable tabs · more tabs

概念解释

页签要一排摆下所有切面名称。名称一多或语言一长,这一排就会超出对象宽度。页签溢出(overflowing tabs)必须在「横滑看见其余」和「收入更多」里选一条,否则切面会从可点集合里消失,并列预告也就断了。这和底部标签栏的数量上限是不同容器上的同一类宽度问题,但页签还可以横滑,因为它们不是必须同时作为应用级地标出现。

机制

未溢出时,所有切面名称同时在场,扫一眼就知道对象有几块。溢出后,未显示的切面暂时等于不存在,使用率向仍露在第一屏的项倾斜。横滑保住「它们仍是同一排页签」的模型,代价是发现性下降、以及与页面纵向滚动抢手势。折叠成「更多」保住可见槽位的可读性,代价是又一次隐藏:更多里面的切面要多点一次才进入并列集合。

两种策略都不能靠缩小字号硬塞。字小到读不清,项数在数学上放下了,预告功能已经死了。当前选中项若在溢出后滚出视口,选中态与名称分离,人不知道自己在哪一切面。所以溢出策略还包含「选中项必须被拽回可见区」。

边界

切面超过一排还在继续增加,说明这些内容可能不是同一对象上的平行切面,应重新信息架构,而不是无限横滑。桌面宽屏能放下的数量不能当作手机策略。与页面横向轮播嵌套时,页签横滑几乎不可用,更该折叠。屏幕阅读器不依赖这一排的可见宽度,但「更多」必须仍是可达的真实控件。

怎么落地

  • 放不下时在横滑与「更多」里选一:切面仍同质且用户会相邻切换,用横滑;切面杂、偶尔才去,用更多。
  • 选中项始终滚入或留在可见区;不要让当前切面只以高亮短条的形式出现在视口外。
  • 不要靠缩字硬塞;与纵向滚动同时存在时,给页签一条明确的横滑热区,避免整页被带着横移。
  • 验证:在最窄宽度列出全部切面,数出不滑动、不打开更多就能读到的名称。读不到的那些做一次寻找任务,失败即溢出策略没补上预告。再切换到一个原本不可见的项,看它是否被带进可见区。

延伸

  • 同组E5.11.1 页签表达并列的内容分区 · E5.11.3 页签内的滚动位置需独立保持
  • 相邻E5.02 底部标签栏 · E5.15 导航项数量
  • 站内检索overflowing tabs · scrollable tabs · more menu

同组卡片

快捷操作

分享

分享当前页面

ios_share

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