S2.05.2Inclusive name-field design设计
拆分姓名字段会排除部分用户
别名: 单字段姓名 · 姓名表单 · full name field
概念解释
包容性姓名字段设计(inclusive name-field design)只在业务确实需要某个姓名成分时才要求用户拆分。把“名”和“姓”都设为必填,会让单名、没有 hereditary family name、成分边界不同或只持有完整法定字符串的人无法如实完成表单。他们往往被迫复制姓名、填句点或把成分塞进错误字段,使“校验通过”的数据反而失真。
机制
表单 schema 把字段数量、必填性和标签变成对所有用户的结构假设,后端又常把这些字段用于问候、排序、证件或第三方接口,错误会沿数据链放大。W3C 的姓名国际化指导建议:若只需称呼或展示,优先收集一个完整姓名字段;只有在排序、个性化称呼或法定流程确需结构时再收集分段信息。LDML PersonName 逻辑对象也允许只存在 given 或 surname 之一,并把其他字段视为可选,而非要求一套固定的西式表单。
边界
单一完整姓名字段不是所有系统的万能模型。护照、税务、航空或特定身份核验接口可能依法或按协议要求精确成分,此时应复用对方的术语与约束,并说明用途。相反,“以后也许能个性化”不足以增加必填字段。legal name、display name、name on document 和 preferred name 不能混为一个字段;拆分后的值也不能可靠重组出用户希望展示的名称。
怎么落地
- 先列出每个姓名字段的真实下游用途;仅展示时收集“完整姓名/希望如何显示”,需要结构时再展开可选成分,并允许只填一个核心字段。
- 用面向用户的清晰标签替代
first name、last name这类暗含顺序的词;若必须匹配证件,明确提示“按证件填写”并提供完整预览。 - 将法定姓名、显示名、首选称呼和结构化成分分开存储,记录来源与用途;不要用虚构占位值补齐缺失 surname 或 given。
- 用单名、复合 given name、多 surname、只有组织惯用全名及不同文字版本的账户完成端到端测试,确认导出、搜索和第三方同步不会再次强制拆分。