G4.04.2new window only when leaving the current flow设计研究

离开当前流程的链接才考虑新窗口

别名: 流程外才新开 · in-place default · 原地跳转 · keep flow in place

概念解释

新窗口的正当理由不是「这条链重要,怕人走丢」,而是当前这条任务还没做完,被点的那一跳不属于它。填写中的表单需要对照一份帮助、一份条款、一份在另一个系统里的工单,原地跳转会拆掉未完成的帧;这时才考虑另开上下文,把主流程冻在原窗口。流程内部的下一步、列表进详情、向导里的邻步,一律原地走——它们就是这条任务的下一帧。

机制

人一次盯着一条任务链。链内跳转若另开窗口,注意力被切到新上下文,原任务的「下一步」变成两个窗口之间的切换,工作记忆要同时维持两套位置。链外参考却相反:若原地打开,主流程的表单、校验状态、滚动位置被卸载,参考看完之后主流程可能已经没了。选择新窗口还是原地,问的是「这一跳是任务的续还是任务的旁支」。

旁支的典型是帮助文档、法律文本、外部工单系统、计算器或日历这类对照工具。它们被看完后要丢下,主流程还在。把旁支做成原地,主流程被写成了 history 上的上一帧,返回能回来,但未提交的输入、文件选择、支付会话往往已经死了。把链内下一步做成新窗口,主流程被冻住,人却以为自己在往前走,Back 对不上「上一步」。判定标准是任务图上的边:主路径上的边原地走,离开主路径的边才考虑分叉。

怎么研究

给同一套结账流程两种链接:条款与「下一步」。比较全部新开、全部原地、以及「只有条款新开」。

  • 因变量:表单是否还在、是否用错返回、完成主任务的时间、旁支看完后能否继续填。
  • 自变量:哪类链接新开、表单是否有未提交值、旁支是站内帮助还是外站。
  • 方法论注意点:没有未提交状态的短流程会让「全部原地」看起来无害,因为没有东西可丢。必须在表单填到一半时点旁支。也不要用「用户喜欢新标签」的态度题代替任务完成——态度测的是习惯,不是哪一种边该分叉。

边界

阅读长文时点脚注,主任务是阅读,脚注是旁支,但许多读者更想原地跳转再返回,因为阅读的 history 链本身就是任务。强制新开会打断阅读的返回链。编辑器里预览可以是分屏而不是新窗口,分叉不是唯一手段。嵌入式对照(抽屉、侧栏)能留下主流程又不造第二套 history,优先于新窗口。用户已用系统手势要求新标签时,尊重那次分叉,不要再判断「属不属于流程」。

怎么落地

  • 画当前任务的主路径:路径上的链(下一步、详情、同向导邻步)禁止 target="_blank"
  • 仅对明确的旁支——帮助、条款、外系统对照——考虑新窗口或抽屉;能用页内抽屉留下主帧的,不要新开。
  • 旁支新开时,主窗口保持未提交状态,不要在跳转时自动提交或重置。
  • 验证:填到一半点「条款」和点「下一步」。条款允许新上下文或抽屉,表单还在;下一步必须在当前窗口变成下一帧,Back 回到这一步。两者开法相同,就还没有按任务边来选。

延伸

  • 同组G4.04.1 新窗口打断返回链 · G4.04.3 新窗口需提前告知
  • 相邻G4.06 任务链与中断恢复 · G4.08 外部链接与离开提示 · H1.01 表单长度与分步
  • 站内检索in-place navigation · leave the flow · target=_blank

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/G4.04.2