VOCABULARY / 词条
持续纠缠
Nagging
在用户已经明确拒绝某个请求后,仍反复用同一请求打断用户,通过消耗其注意力与耐心换取最终的“同意”,而不是通过一次有说服力的说明重新赢得同意。

识别特征
- 同一请求在用户拒绝后短期内反复出现,且没有变得更稀疏或消失
- 拒绝选项只提供“暂不”一类的临时选项,没有真正持久生效的“不再询问”
- 系统未记录此前的拒绝,或记录了却仍按相同频率重新弹出
概念边界
与“羞辱式拒绝文案”不同:那条针对单次弹窗中用情绪压力影响拒绝的措辞,本条针对同一请求随时间反复出现、无视此前记录的拒绝;“同意疲劳诱导”作为变体合并于此——即通过反复弹出的同意/权限请求本身消耗意志力,而非靠某一次的措辞施压。一次经过合理间隔、时机恰当的提醒(例如功能相关性发生实质变化后再次询问)不属于此模式;判断依据是产品是否记录并尊重了此前已表达的“不”。
什么时候考虑它
- 审查权限请求、通知订阅或数据同意提示是否在用户拒绝后仍重复出现
- 审查同意管理界面是否记录了此前的拒绝并据此调整后续提示
什么时候慎用
- 作为提升某个转化指标的推荐手段
- 以“提醒用户功能”为由,对已被明确拒绝的同一请求维持不变的弹出频率
取舍
修复时可以保留少量、间隔明显拉长的提醒能力,但必须记录拒绝状态、在承诺的期限内不再展示同一请求,并提供真正持久生效的“不再询问”;重复弹出本身不得成为最终获得同意的手段。
条件规则 · 编辑建议
相关词条
两者都在同意/拒绝环节施压,但机制不同:一个靠单次情绪羞辱,一个靠随时间重复的请求;应分别记录。
两者都剥夺了用户本应拥有的“了结”能力,一个是让退出路径变难,一个是让请求本身不会停止。
与技术应尽量安静、只在必要时才要求注意力的取向直接冲突。
来源与支持范围
将“纠缠”定义为反复用同一请求打断用户的欺骗模式,仅提供“暂不”而非永久拒绝,并以 Instagram、Windows 等反复弹出的通知或设置请求为例。
检索日期:2026-09-15 · 快照待确认把“纠缠”定义为持续超过一次或多次交互、反复打断用户预期功能的轻微重定向,是该文归纳的五种暗黑模式策略之一;并以 Instagram 反复弹出“开启通知”弹窗、仅提供“暂不”而无永久关闭选项为例说明其运作方式。
检索日期:2026-09-15 · 存档于 2026-09-16把“持续索取”(Continuous Prompting)列为过载类暗黑模式,并明确说明:即便用户此前已明确拒绝提供某项数据,产品仍无视该拒绝、按相同方式反复索取,本身即构成此模式;同时说明 GDPR 要求撤回同意应与给予同意同样简便。
检索日期:2026-09-15 · 快照待确认定义参考以上来源;数字界面示例、选择建议、条件关系及配方由本样例编辑,尚未经用户研究验证。
类型扩展与实现说明
本条尚无可操作的样本;插画为编辑示意。应用到产品时仍须核对:拒绝状态是否被实际持久化、重新提示的时间窗口是否被产品与法务共同确认、“不再询问”选项是否在所有触达渠道(含推送、邮件)生效,以及所在法域对同意撤回便利性的具体要求。
{
"harm": "通过随时间重复的打断消耗用户的注意力与耐心,使最终的“同意”来自疲劳而非自由意愿",
"repair": "记录已表达的拒绝,在设定期限内不再展示同一请求,并提供持久生效的“不再询问”。"
}完整 Agent 条目 JSON
{
"id": "nagging",
"type": "anti",
"name": {
"zh": "持续纠缠",
"en": "Nagging"
},
"aliases": [
"同意疲劳诱导",
"重复索求式提示",
"Consent-Fatigue Induction"
],
"granularity": "flow",
"intents": [
"audit-choice",
"audit-consent"
],
"tags": [
"反模式",
"重复打扰",
"同意疲劳",
"拒绝记录",
"权限提示"
],
"definition": "在用户已经明确拒绝某个请求后,仍反复用同一请求打断用户,通过消耗其注意力与耐心换取最终的“同意”,而不是通过一次有说服力的说明重新赢得同意。",
"boundary": "与“羞辱式拒绝文案”不同:那条针对单次弹窗中用情绪压力影响拒绝的措辞,本条针对同一请求随时间反复出现、无视此前记录的拒绝;“同意疲劳诱导”作为变体合并于此——即通过反复弹出的同意/权限请求本身消耗意志力,而非靠某一次的措辞施压。一次经过合理间隔、时机恰当的提醒(例如功能相关性发生实质变化后再次询问)不属于此模式;判断依据是产品是否记录并尊重了此前已表达的“不”。",
"signature": [
"同一请求在用户拒绝后短期内反复出现,且没有变得更稀疏或消失",
"拒绝选项只提供“暂不”一类的临时选项,没有真正持久生效的“不再询问”",
"系统未记录此前的拒绝,或记录了却仍按相同频率重新弹出"
],
"when": [
"审查权限请求、通知订阅或数据同意提示是否在用户拒绝后仍重复出现",
"审查同意管理界面是否记录了此前的拒绝并据此调整后续提示"
],
"when_not": [
"作为提升某个转化指标的推荐手段",
"以“提醒用户功能”为由,对已被明确拒绝的同一请求维持不变的弹出频率"
],
"tradeoff": "修复时可以保留少量、间隔明显拉长的提醒能力,但必须记录拒绝状态、在承诺的期限内不再展示同一请求,并提供真正持久生效的“不再询问”;重复弹出本身不得成为最终获得同意的手段。",
"comparison": {
"focus": "通过时间维度上的重复,而非单次情绪压力,影响选择",
"mechanism": "无视已记录的拒绝,按相近频率反复弹出同一请求",
"cost": "消耗用户的注意力与耐心,使“同意”来自疲劳而非真实意愿"
},
"sources": [
{
"id": "deceptive-nagging",
"title": "Deceptive Patterns · Nagging",
"url": "https://www.deceptive.design/types/nagging",
"claim": "将“纠缠”定义为反复用同一请求打断用户的欺骗模式,仅提供“暂不”而非永久拒绝,并以 Instagram、Windows 等反复弹出的通知或设置请求为例。",
"checkedAt": "2026-09-15",
"archive": {
"lookupUrl": "https://web.archive.org/web/20260915*/https://www.deceptive.design/types/nagging",
"status": "pending",
"checkedAt": "2026-09-16T05:59:03.364Z",
"error": "status-request-failed",
"jobId": "spn2-b5f8b67e2e29c6273712b442165e78bd8f3924ed"
}
},
{
"id": "gray-2018-dark-patterns",
"title": "Gray, Kou, Battles, Hoggatt & Toombs (CHI 2018) · The Dark (Patterns) Side of UX Design",
"url": "https://classes.cs.uchicago.edu/archive/2020/fall/33231-1/readings/2018_Grayetal_CHI_DarkPatternsUXDesign",
"claim": "把“纠缠”定义为持续超过一次或多次交互、反复打断用户预期功能的轻微重定向,是该文归纳的五种暗黑模式策略之一;并以 Instagram 反复弹出“开启通知”弹窗、仅提供“暂不”而无永久关闭选项为例说明其运作方式。",
"checkedAt": "2026-09-15",
"archive": {
"lookupUrl": "https://web.archive.org/web/20260915*/https://classes.cs.uchicago.edu/archive/2020/fall/33231-1/readings/2018_Grayetal_CHI_DarkPatternsUXDesign",
"status": "available",
"checkedAt": "2026-09-16T05:18:06.690Z",
"jobId": "spn2-1f7b201125d0eb25b2ddac37f4bf8edd087a1e3d",
"url": "https://web.archive.org/web/20260916051911/https://classes.cs.uchicago.edu/archive/2020/fall/33231-1/readings/2018_Grayetal_CHI_DarkPatternsUXDesign",
"timestamp": "20260916051911"
}
},
{
"id": "edpb-dark-patterns-2022",
"title": "EDPB · Guidelines 3/2022 on Dark Patterns in Social Media Platform Interfaces",
"url": "https://www.edpb.europa.eu/system/files/2022-03/edpb_03-2022_guidelines_on_dark_patterns_in_social_media_platform_interfaces_en.pdf",
"claim": "把“持续索取”(Continuous Prompting)列为过载类暗黑模式,并明确说明:即便用户此前已明确拒绝提供某项数据,产品仍无视该拒绝、按相同方式反复索取,本身即构成此模式;同时说明 GDPR 要求撤回同意应与给予同意同样简便。",
"checkedAt": "2026-09-15",
"archive": {
"lookupUrl": "https://web.archive.org/web/20260915*/https://www.edpb.europa.eu/system/files/2022-03/edpb_03-2022_guidelines_on_dark_patterns_in_social_media_platform_interfaces_en.pdf",
"status": "pending",
"checkedAt": "2026-09-16T05:18:08.074Z",
"error": "status-request-failed",
"jobId": "spn2-08f478e096cf7ba6af37a3b05f820551f088a1a8"
}
}
],
"relations": [
{
"target": "confirmshaming",
"kind": "related",
"condition": "审查同一同意或退出流程",
"reason": "两者都在同意/拒绝环节施压,但机制不同:一个靠单次情绪羞辱,一个靠随时间重复的请求;应分别记录。",
"basis": "editorial"
},
{
"target": "obstruction",
"kind": "related",
"condition": "审查用户是否能真正终止某个请求或流程",
"reason": "两者都剥夺了用户本应拥有的“了结”能力,一个是让退出路径变难,一个是让请求本身不会停止。",
"basis": "editorial"
},
{
"target": "calm-technology",
"kind": "conflicts_when",
"condition": "同一请求在用户拒绝后仍按原有频率反复打断",
"reason": "与技术应尽量安静、只在必要时才要求注意力的取向直接冲突。",
"basis": "editorial"
}
],
"rules": [
{
"when": "用户拒绝某个权限、通知或数据同意请求",
"instruction": "记录该拒绝,并在承诺的期限内不再展示同一请求。",
"strength": "must",
"basis": "editorial"
},
{
"when": "设计任何重新展示已被拒绝请求的机制",
"instruction": "不得让重复弹出本身成为最终获得同意的手段;同意必须来自一次有效说明,而非疲劳。",
"strength": "must",
"basis": "editorial"
},
{
"when": "提供拒绝选项",
"instruction": "给出一个真正持久生效的“不再询问”,而不只是“暂不”这类临时选项。",
"strength": "recommend",
"basis": "editorial"
}
],
"anti": {
"harm": "通过随时间重复的打断消耗用户的注意力与耐心,使最终的“同意”来自疲劳而非自由意愿",
"repair": "记录已表达的拒绝,在设定期限内不再展示同一请求,并提供持久生效的“不再询问”。"
},
"demo": null,
"version": "0.1.0",
"editorialStatus": "drafted",
"requirements": [],
"demoCapabilities": [],
"implementationNote": "本条尚无可操作的样本;插画为编辑示意。应用到产品时仍须核对:拒绝状态是否被实际持久化、重新提示的时间窗口是否被产品与法务共同确认、“不再询问”选项是否在所有触达渠道(含推送、邮件)生效,以及所在法域对同意撤回便利性的具体要求。",
"image": {
"src": "/images/nagging.webp",
"alt": "一张虚构的 FIELDNOTES 界面插画:同一个权限提示堆叠成三层向远处延伸,每一层都带着一个已忽略的标记,而最前方又有新的一次同样的弹窗出现,旁边有一枚小小的警示三角。"
},
"searchTerms": [
"anti-pattern",
"repeated interruption",
"consent fatigue",
"declined-request tracking",
"permission prompt"
]
}