停留时长需与文本长度匹配
别名: 吐司时长 · snackbar duration · 阅读时间匹配
概念解释
停留时长(dwell time)是吐司从出现到自动收起之间的可见时间。它要解决的不是「这条消息该不该自动消失」,而是在已经决定自动消失的前提下,给阅读留出多少时间。固定的两秒或三秒把长短文案当成同一种刺激:四个字的「已复制」会在视线回到主任务之后仍挡着内容;二十个字的失败原因会在扫到第二行之前被收起。时长与文本长度匹配,指可见时间随可读字符数和复杂度上升,而不是套一条全局常数。
机制
默读速度大致随字符数线性增加,但界面上的吐司很少被当作一篇要读完的短文。用户先用形状和位置判断「这是一条反馈」,再决定要不要把注视从操作点挪过去。挪注视本身要花时间;若文案还有对象名、数量或原因从句,理解时间在阅读之外还要加一层整合。固定时长等于假设所有消息的感知成本相同。短消息超时,残留物变成视觉噪声,会压住底下的按钮或列表尾部;长消息欠时,用户只捕获了语气(红、失败)却没捕获对象(哪一条、为什么)。动画入场和退场还会吃掉计时器里的可读窗口,真正留给阅读的往往比标称时长短一截。
怎么研究
把同一条吐司做成短、中、长三档文案,系统性地改变可见时间,主任务保持不变。
自变量:字符数、是否含专有名词或数字、入场动画是否计入计时、用户是否正在阅读邻近文本。 因变量:完整复述率、能否指出消息里的对象、提前手动关闭的比例、关闭后是否回头寻找刚才的内容。
不要只用「觉得够不够」的主观评分。关键切点是复述崩溃的那一档时长:短于该点,对象信息丢失;长于该点,手动关闭开始升高,说明残留已经在打扰。中文与英文的字符密度不同,跨语言产品不能把同一毫秒数两边套用。
边界
纯图标或单词级确认几乎不需要按长度公式加时,再长也只是让噪声多停一会儿。屏幕阅读器按自己的语速朗读,视觉计时与语音播报不同步时,应以朗读结束为准,而不是以像素消失为准。含操作的吐司(撤销、查看)时钟还要覆盖伸手点按的运动时间,这已经超出阅读匹配,属于另一层交互预算。弱视或放大显示下,单行会折成多行,长度应按折行后的视觉跨度估,而不是按源文字符数。
怎么落地
- 按文案分档设定时长:单词级确认最短,带对象名的中等,带原因从句的最长;不要用一个全局毫秒数打天下。
- 计时从文案稳定可读开始,入场动画不计入阅读窗口。
- 在目标语言里用真实文案走一遍:读出声,记下读完所需时间,可见时长至少覆盖这一时间并留出把视线转过去的余量。
- 验证:找未参与文案的人看一遍流程,吐司消失后立刻问对象是谁、发生了什么。对象说不出,就是时长不够;主任务被挡住到用户伸手去关,就是过长。