访问过的状态只属于链接,按钮没有已访问的概念
别名: 已访问链接 · :visited · visited link
概念解释
已访问(visited)标记的是「这个地址我去过」,它跟在资源标识后面,所以只属于链接。按钮发出的是当前文档里的一次动作,没有「去过」可记:不能把付款键染成紫色表示「付过了」,那是订单状态,不是浏览历史。给按钮做已访问外观,是在借用一条不属于动作的历史通道;不给链接做已访问,则是丢掉「哪些我看过」的地图。
机制
浏览历史是地址的集合。浏览器用历史给链接换一种颜色,让人在列表、搜索结果、目录里跳过已经打开过的项。按钮不进入这段历史:同一枚「删除」被点过,历史不会、也不该记住「这个删除去过」。若产品把按钮做成链接外观并显示已访问,用户会以为那是可再去的地方。若导航做成按钮,历史无法着色,目录上的已读线索全无。现代浏览器对 :visited 的样式做了隐私限制,能用的差别很小(通常只剩颜色),但它仍只作用于真链接。用本地存储给按钮模拟「点过」会和真正的已访问抢同一套紫色语义,读过的文档和执行过的动作被涂成一种颜色。
怎么研究
给一份目录:真链接带已访问、按钮冒充链接并在点后变色、按钮跳转但不变色。让人「打开还没看过的三篇」。
自变量:是否真链接、是否显示已访问、隐私限制下颜色差是否可辨。 因变量:重复打开已读项的次数、漏掉未读项、是否把变色按钮当成可再访问的文档。
实验室清空历史后只点一两次,已访问的价值不明显。要用一份已经部分访问过的长目录。
边界
已读/未读是应用自己的状态(邮件、通知),可以标在行上,不必也不应做成链接的 visited 色。付过款、已报名是业务状态,用标签或禁用,不用紫色。隐私模式下没有稳定历史,已访问会不可靠,不能当唯一已读线索。按钮的加载或成功态是这一次动作的回执,生命周期到这次结束为止,不要留成跨会话的「已访问」。
怎么落地
- 只有带真实 href 的导航使用已访问样式;动作按钮不要借用紫/灰来表示「点过」。
- 目录、搜索结果、章节列表用真链接,以便历史能着色。
- 业务上的已完成用明确标签(已付款),不要用 visited 色冒充。
- 验证:打开若干项后回到列表。真链接应能看出去过;若一排按钮有的变色有的不变,或该变色的导航完全无差别,已访问就被用错对象了。