核心问题

系统是在帮助用户做决定,还是在操控用户做决定?

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 的增长指标,会自然滑向操控。

工程师的责任

工程师不是只负责“按设计稿实现”。

如果一个需求明显诱导用户、隐藏成本、阻碍取消、扩大数据收集,工程师应该提出问题:

  1. 用户是否清楚知道自己同意了什么?
  2. 拒绝路径是否合理可达?
  3. 费用是否提前清楚展示?
  4. 取消是否和订阅一样容易?
  5. 默认值是否保护用户?
  6. 这个设计是否会制造误点击?

这不是工程师越界。

这是工程师对系统行为负责。

反 Dark Pattern 检查清单

设计流程时问:

  1. 用户是否清楚知道自己在做什么选择?
  2. 拒绝、取消、退出是否容易找到?
  3. 是否用视觉强弱误导用户?
  4. 是否默认选择了对平台更有利的选项?
  5. 是否隐藏了费用、续费、数据共享或限制?
  6. 是否用羞辱性文案推动选择?
  7. 操作摩擦是在保护用户,还是阻碍用户?
  8. 用户能否轻松撤销选择?
  9. 指标是否可能奖励操控行为?
  10. 是否有 guardrail metric?

小结

  1. Dark patterns 是利用设计诱导用户做出不符合真实意愿的选择。
  2. 界面不是中立容器,界面会影响选择。
  3. 取消应该和订阅一样容易。
  4. 额外付费和数据共享应该主动选择,而不是默认选择。
  5. 默认值是产品伦理的代码形态。
  6. 摩擦应该保护用户,而不是阻碍用户维护自身利益。
  7. 没有 guardrail 的增长指标,会自然滑向操控。
  8. 工程师有责任质疑明显操控用户的系统行为。