J3.06.3session timeout warning设计研究

会话超时前需提前警告

别名: 会话即将过期 · idle timeout warning · 登录超时警告

概念解释

登录会话、购物车、正在填写的申请在空闲一段时间后会被服务器作废。作废之前必须先出现警告,并给出足够时间去延长会话或先保存。人若只在提交时才发现已经退回登录页,中间输入的内容按超时被丢了,这不是「时限可以关掉」能事后弥补的——数据已经不在。

警告是会话这种时限的专用出口:安全上往往不能永久关闭空闲锁定,但可以、也必须在切断前提醒。

机制

会话时钟跑在服务器上,浏览器里的人看不见。阅读一篇说明、用阅读器听完一页条款、去找证件再回来,对服务器都是空闲。时钟一到,下一步请求带着过期 cookie 回来,页面被换成登录,本地未保存的字段随文档卸载。没有提前警告,用户无法区分「我点错了」和「时间到了」;有警告但短到来不及用辅助技术点「继续」,等于没有。

警告还必须自己可达:它常被做成定时弹出的对话框。若焦点不进去、读屏不播、倒计时只剩几秒,延长动作本身就被时限吃掉。会话时限的操作无障碍,在这一拍上成败。

怎么研究

用真实或测试账号进入长表单,停住不动直到接近空闲上限。记录:警告是否出现、提前量、是否可键盘操作、选延长后会话是否真的续上、选不延长或错过之后草稿是否还在。

对照:超时后再登录,字段还在吗?许多实现警告做了,保存没做,用户仍丢数据。这条的最低线是警告与可延长;丢失数据会把失败从「来不及确认」升级成「工作作废」。

边界

银行、医疗、公共终端上的硬性空闲锁定可以很短,仍然要警告——不能用行业敏感换掉提前量,只能把提前量按锁定时长比例缩放(短锁定也要留出操作警告的时间)。无账号的纯浏览会话若无任何可丢数据,警告可以不做;购物车、投稿、问卷一旦开始就不算「无数据」。多标签页里一个标签超时、另一个还在填,警告应在仍可见的页面上出现,不能只打在已经切走的那一页。

怎么落地

  • 在服务器切断之前弹出可操作的警告,说明大约还剩多少时间,提供「继续会话」和必要时的「先保存」。
  • 警告出现时把焦点移入,并让阅读器能读到;倒计时要长过用辅助技术完成一次点击。
  • 延长必须真的续上服务端会话,不要只关对话框。
  • 验证:填到一半停住,等到警告。只用键盘点继续,然后提交。若从未出现警告、或出现后仍丢字段,会话时限没有完成提前警告。

延伸

  • 同组J3.06.1 时限需可关闭、可调整或可延长 · J3.06.2 自动轮播需可暂停
  • 相邻J4.09 记忆负担的减免 · J3.02 焦点顺序与焦点陷阱 · J5.12 动态内容的播报
  • 站内检索session timeout · idle warning · extend session

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/J3.06.3