核心问题
系统是在帮助用户做决定,还是在操控用户做决定?
Dark patterns 是指利用界面、流程、文案或默认值,诱导用户做出不符合其真实意愿或利益的选择。
它们通常不一定是技术 bug。
相反,它们经常是“精心设计”的。
例如:
- 取消订阅很难
- 退出流程隐藏得很深
- 默认勾选营销邮件
- 按钮颜色误导用户
- 用倒计时制造虚假紧迫感
- 把拒绝按钮写得很羞辱
- 隐藏真实价格
- 让用户不小心同意数据共享
伦理问题在于:
系统是否尊重用户意图,还是利用用户注意力和认知弱点?
设计也会分配权力
很多人以为伦理问题只在后端权限和数据层。
但前端设计同样会分配权力。
例如两个按钮:
[继续订阅] 亮色大按钮
[取消订阅] 灰色小链接
这不是中立设计。
它在推动用户选择平台更想要的结果。
设计不只是展示选项,而是在塑造选择环境。
核心句:
界面不是中立容器,界面会影响选择。
常见 Dark Patterns
1. Roach Motel
进入很容易,退出很难。
例如:
订阅:一键完成
取消:联系客服、等邮件、填问卷、隐藏入口
如果加入比退出容易很多,就要警惕。
原则:
取消应该和订阅一样容易。
2. Forced Continuity
免费试用结束后自动扣费,但提醒不充分。
例如:
免费试用 7 天
但用户不清楚:
- 什么时候扣费
- 扣多少钱
- 如何取消
- 是否会提醒
更好的做法:
- 明确试用结束时间
- 明确价格
- 扣费前提醒
- 容易取消
3. Hidden Costs
最后一步才展示额外费用。
例如:
课程价格 ¥99
结账时加服务费、税费、手续费
如果费用可预期,就应该尽早展示。
4. Confirmshaming
用羞辱性文案诱导用户选择。
例如:
[是的,我要变得更高效]
[不,我想继续浪费时间]
拒绝选项不应该羞辱用户。
5. Sneak into Basket
偷偷把额外商品或服务加入购物车。
例如:
默认添加保险、会员、增值服务
额外付费项目应该主动选择,而不是默认选择。
6. Privacy Zuckering
诱导用户分享超出必要范围的数据。
例如:
点击继续即同意我们和合作伙伴共享你的学习、浏览和设备数据。
用户可能为了继续流程而被迫同意不必要的数据共享。
7. Misdirection
视觉上强调平台想要的按钮,弱化用户可能想选的按钮。
例如:
[同意全部] 大按钮
[管理设置] 小灰字
如果选择是重要的,选项应该清楚、公平、可理解。
默认值的伦理
默认值影响巨大。
例如:
默认订阅营销邮件
默认公开个人资料
默认分享学习记录
默认开启自动续费
默认同意数据共享
默认值不是技术细节,而是价值判断。
好的默认值应该保护用户:
- 默认私有
- 默认最少数据共享
- 默认不营销
- 默认可撤销
- 默认清楚提醒
核心句:
默认值是产品伦理的代码形态。
Friction:摩擦是否对称
不是所有摩擦都是坏的。
高风险操作应该有摩擦:
- 删除账号
- 导出敏感数据
- 关闭安全设置
- 大额付款
- 永久封禁别人
但操控性设计会把摩擦加在用户利益方向上:
- 取消订阅很难
- 退款很难
- 删除数据很难
- 拒绝数据共享很难
判断标准:
摩擦是在保护用户,还是在保护业务指标?
指标会诱导 Dark Patterns
很多 dark patterns 来自单一指标压力。
例如只优化:
subscription retention
团队可能让取消流程更难。
只优化:
email opt-in rate
团队可能默认勾选营销邮件。
只优化:
checkout conversion
团队可能延迟展示真实价格。
所以指标要有伦理 guardrail:
- 取消成功率
- 退款完成时间
- 投诉率
- 误点击率
- 退订入口可发现性
- 数据删除完成率
- 用户信任评分
核心句:
没有 guardrail 的增长指标,会自然滑向操控。
工程师的责任
工程师不是只负责“按设计稿实现”。
如果一个需求明显诱导用户、隐藏成本、阻碍取消、扩大数据收集,工程师应该提出问题:
- 用户是否清楚知道自己同意了什么?
- 拒绝路径是否合理可达?
- 费用是否提前清楚展示?
- 取消是否和订阅一样容易?
- 默认值是否保护用户?
- 这个设计是否会制造误点击?
这不是工程师越界。
这是工程师对系统行为负责。
反 Dark Pattern 检查清单
设计流程时问:
- 用户是否清楚知道自己在做什么选择?
- 拒绝、取消、退出是否容易找到?
- 是否用视觉强弱误导用户?
- 是否默认选择了对平台更有利的选项?
- 是否隐藏了费用、续费、数据共享或限制?
- 是否用羞辱性文案推动选择?
- 操作摩擦是在保护用户,还是阻碍用户?
- 用户能否轻松撤销选择?
- 指标是否可能奖励操控行为?
- 是否有 guardrail metric?
小结
- Dark patterns 是利用设计诱导用户做出不符合真实意愿的选择。
- 界面不是中立容器,界面会影响选择。
- 取消应该和订阅一样容易。
- 额外付费和数据共享应该主动选择,而不是默认选择。
- 默认值是产品伦理的代码形态。
- 摩擦应该保护用户,而不是阻碍用户维护自身利益。
- 没有 guardrail 的增长指标,会自然滑向操控。
- 工程师有责任质疑明显操控用户的系统行为。