Interface Lab
返回知识库
Resource Licensing

确定性头像占位治理

Boring Avatars、DiceBear 这类头像生成器适合做身份占位,但必须记录 seed、样式、授权、隐私输入和可访问名称,不能把生成图当真人肖像或品牌资产。

设计原则

确定性头像的价值是稳定识别同一对象,而不是提供真实身份。它同时涉及视觉区分、隐私、授权、可访问标签和跨项目复用边界。

大理论

头像占位不是装饰圆片。成员列表、评论区、客服、CRM 联系人和生成式产品的历史记录都需要用户快速识别“这是谁/哪个对象”。确定性头像通过 name、seed 或 id 生成稳定图形,能避免空头像和随机变化,但也会带来隐私和许可问题:email 不能直接暴露到外部 API,风格包可能有不同授权,头像不能暗示真人肖像或官方品牌。

小知识点

  1. 先定义头像角色:用户身份、匿名对象、团队、机器人、生成任务、占位空状态;不同角色需要不同 alt、颜色和 fallback。
  2. seed 应使用内部稳定 id 或哈希后的显示名,不要把 email、手机号、客户编号原文发送到第三方头像服务。
  3. 记录 generator、version、style/variant、palette、seed policy、license、source URL 和是否自托管生成。
  4. DiceBear 的核心代码和每个 avatar style 可能不是同一许可;使用前逐 style 检查 creator、source、license 和 attribution。
  5. Boring Avatars 可本地生成 SVG;旧 API 服务曾在 2024-07-31 暂停,生产界面不要依赖未知稳定性的远程头像端点。
  6. 头像不是可访问名称本身;可点击头像按钮需要 visible name 或 aria label,装饰性重复头像才可隐藏。

设计判断

当头像能帮助用户在列表中区分对象,同时文本名称仍然可见,seed 不泄露隐私,授权能追溯,并且禁用图片后身份仍可理解,它就是健康的占位头像。若头像成为唯一身份线索、每次刷新随机变化、或使用未确认授权的风格包,就是风险。

实现建议

建立 avatar intake record:purpose、generator、version、style、palette、seedSource、hashing、localOrRemote、licenseHref、attribution、accessibleName、fallbackInitials、darkMode、collisionRisk、lastChecked。React 实现优先本地生成 SVG 或服务端生成缓存;列表中始终保留姓名/对象名;对机器人或系统用户使用不同语义标识,不要伪装成真人。

反例/风险

把用户 email 作为 DiceBear URL seed 直接暴露;用 CC BY 风格但未署名;刷新后头像随机导致审核人员认错对象;头像按钮只有图形没有 aria label;把生成头像用于客户 testimonial 让人误以为是真人照片;远程头像 API 故障导致联系人列表全空。

案例分析

Boring Avatars 官方仓库把它描述为基于用户名和调色板生成自定义 SVG 头像的 React 库,并提供 marble、beam、pixel、sunset、ring、bauhaus 等 variant;其文档也提醒旧服务在 2024-07-31 暂停。DiceBear 的许可页明确代码为 MIT,但 avatar styles 由作者选择不同许可,并列出大量 CC BY、CC0 或自定义来源。W3C WAI 的 informative images 指南说明图像替代文本应表达视觉传达的意义。可学习点是:头像占位要同时治理生成稳定性、风格授权和身份可访问性。

来源链接

Boring Avatars GitHub: https://github.com/boringdesigners/boring-avatars DiceBear Licenses: https://www.dicebear.com/licenses/ W3C WAI Informative Images: https://www.w3.org/WAI/tutorials/images/informative/ Creative Commons CC BY 4.0: https://creativecommons.org/licenses/by/4.0/

Agent 指令

生成头像占位前必须记录 generator/style/license/seed policy,并保留文本姓名和 accessible name;禁止把私密标识传给第三方 API 或把生成头像冒充真人照片。