跳到正文
定位、使用者与职责边界
定位、使用者与职责边界
搜索 YUDS 文档

YUDS 文档

基础组件与交互契约

组件契约的阅读模板、41 项目录、共同状态与值契约、焦点与可访问性、六材质职责及组合验收证据。

状态:本章落实已确认的职责边界与六条原则;「每个独立任务上下文至多突出一个主操作」的方向已确认,但不等于整套组件发布。D01—D08(含 D03 六材质职责与 D03-M01 初始配方)由代理依用户授权采用为初始设计输入,可逆;组件目录、状态分层、共同契约与验收流程是 YUDS 建议或候选。正式 API、设计资产与具体平台支持均未完成,全部文档夹具与真实运行未执行。 更新:2026-10-19;来源核查于 2026-10-18。

本章落实已确认的职责边界与六条原则;清单、键位、接口名称和优先级不因收录而获得批准。

阅读时先核对共同契约,再进入组件的唯一主节。D01—D08 已采用的初始设计输入见决策与讨论记录「代理初始设计基线D01—D08」;API、设计资产、具体平台支持与真实运行仍未完成,来源缺口按对应记录保留。

本页依次覆盖:

  • 职责、统一消费模板与契约交付
  • 组件目录与主档入口
  • 共同身份、值、状态与执行边界
  • 焦点、键盘与可访问性
  • CMP-MAT 六材质设计职责
  • 组合夹具与交付证据
  • 扩展、例外与来源

1. 职责与契约交付

组件是具有明确输入、输出、状态及操作约定的可复用单元。YUDS 定义语义和可观察行为;实现项目选择技术和维护代码;产品确定业务合法性、权限、计算与流程。一个按钮可以提交审批,但组件不能决定谁有审批权,也不能因提交接口返回已受理就宣告审批完成。

六条已确认原则在组件层的落实方式:同义操作同名且同结果;复杂说明渐进展开,但关键后果直接显示;空值、零、未知与受限分开;提交前后范围和结果可知;基本操作容易找到,高频操作高效可用;键盘、辅助技术与不同显示条件均能完成基本任务。本文不更改原则正文及其确认状态。

现有组件目录界定的是已整理范围,不是完整度上限,也不表示已与 SAP 齐全。按用户方向,以 SAP 的体系覆盖与深度检查基础、组件、状态、组合、可访问性、适配及治理,以 Geist 的简洁克制约束视觉,吸收 OUDS 与 Stripe Sail 经核实的方法;不得因此删减必要信息。先用行业无关的“记录 R 查询 → 修改字段 → 提交受控事件 → 查看结果”验证组件组合,实际业务系统不是前置条件。矩阵、跨页批量与版本比较见复杂数据工作模式。

一项组件契约交付以下八项内容:

  1. 用途与反例:解决的任务、进入条件、不适合的场景、替代组件。
  2. 解剖:必需标签、主体、辅助说明、状态位置、操作入口与可选区域。不能仅附默认态截图。
  3. 数据:外部值与用户草稿的区分、稳定标识、空值、默认值、格式化、单位、权限与加载元数据。字符串显示名称不得替代业务对象标识。
  4. 事件:输入意图、请求提交、请求关闭、选择变更等可观察结果;说明事件先后和取消边界。此处是概念契约,不规定具体编程 API。
  5. 状态:合法组合、转换、反馈、焦点与恢复;解释什么由控件拥有,什么由服务端或产品拥有。
  6. 输入路径:鼠标、触控、键盘、辅助技术;无悬浮和无拖拽时的等效路径;平台差异有理由和证据。
  7. 内容适配:语言增长、文字放大、窄空间、D05 已采用的四端 RTL 设计目标、高对比与减少动态效果;实际语言及运行支持范围另行验证。
  8. 测试证据:测试版本、环境、步骤、预期、实际、结论及缺陷链接。结论使用通过、失败、未执行或不适用;不适用须有明确理由,缺少环境或证据记未执行。

1.0 消费一项组件契约的统一阅读模板

组件篇不是 API 参考或截图展板。使用者应能依次回答:为什么选它、哪些部件不可省、用户可以怎样操作、失败后怎样继续、在当前平台是否可实现。本模板规范阅读和补齐方式,不复制已有共同契约;详细选型示例见组件使用手册:从任务选型到页面组合。既有深层规则保留其稳定 ID,按下表链接到唯一主节即可,无需把全部条款再次粘贴到每个组件。

阅读单元 组件主节需要回答的具体问题 不完整时如何处理
目的与适用任务 使用者在什么上下文达成什么结果?成功的可观察结果是什么? 只能说外观不能说任务时,尚不能证明需要该组件
使用/不使用 何时采用?何时改用链接、字段、容器或整页?替代入口在哪里? 说明边界,不用“复杂场景”一词代替选型判断
解剖 anatomy 哪些是必需部件、哪些可选?标签、值、说明、状态、操作分别在哪里?由谁拥有? 以文字编号或结构示意标明;只有默认截图不算解剖完整
变体与配置 哪些差异属于表现、内容、值模型或行为?默认选哪一种、为何?哪些组合不允许? 不把八种视觉变体、请求状态当作八个新组件
值与身份 输入、草稿、接受值和保存值何时不同?稳定 ID、空值与未解析值怎样表达? 引用 INP-G 与具体主节;纯展示组件说明不适用,不制造值事务
状态与转换 交互、值、请求、权限各维怎样组合?进入/退出条件、可见反馈是什么? 引用 CMP-STATE 并列本组件特例;不采用一个互斥枚举掩盖并存状态
操作与反馈 激活、编辑、接受、提交、关闭、取消的边界是什么?什么动作不触发业务执行? 列触发条件、可观察结果、失败和恢复;不虚构事件 API
可访问性 可访问名称来自哪里?角色、值、状态如何表达?键盘、焦点和非拖拽替代是什么? 指向平台语义与真实测试项;加 ARIA 属性不等于通过
响应式与密度 容器变窄、长文本、文字放大、RTL、不同密度时保留什么,如何重排? 保留对象、动作、状态与退出路径,不只缩小控件
平台选择 Web、iOS、Android、HarmonyOS 各承载什么共同语义?哪些能力待验证? 链接组件平台选型:先定任务,再定呈现与实现映射,不承诺未确认 API
内容规则 名称、动作词、提示、错误、单位和省略如何写?完整信息从哪里可达? 消费界面文案、术语与多语言,组件只补局部规则
正反例与组合 至少一个正常任务和一个易误用/失败任务;组合后谁拥有草稿、焦点和提交? 用中性记录与受控事件;完整链见接入示例:共享资料清单
验收与资源 可复现输入、步骤、预期、实际、版本、环境与结论;设计/实现资源是否存在? 无实际执行证据标未执行;未发布资源写未提供,不虚构下载入口

可复制的组件阅读卡(填写结果,不另立契约)

  • 名称/稳定 ID/唯一主节:〔填写实际定位〕。
  • 覆盖范围:contract/subset/boundary;适用能力与明确排除项:〔逐项填写〕。
  • 本次任务、对象、范围与结束条件:〔填写〕。
  • 选它的理由/不用它的条件/替代:〔填写并链接主节〕。
  • 必需部件与可选部件:〔按上述解剖填写,注明标签、状态与操作的所有者〕。
  • 变体与关键状态:〔填写实际选择及合法组合;共同规则引用稳定 ID〕。
  • 输入/接受/提交/取消/结果未知:〔仅填本组件适用的边界与唯一规则链接〕。
  • 平台、内容增长、可访问性:〔填写目标环境与未验证差异〕。
  • 正常例、失败例、验收记录:〔填写或链接,不把预期当实际〕。
  • 设计资源/实现包与版本:〔真实资源链接;没有则写未提供〕。
  • 未决问题与采用条件:〔说明阻断项、可独立推进项和所需责任角色〕。

使用时先检索组件主节是否已回答,缺什么补什么,不为了模板标题而重复全文。contract 要求本节所有适用问题有明确答案或唯一引用;subset 必须列出覆盖与排除项;boundary 只供分类和后续讨论,不能作为实现合同。标签只说明文档范围,并不更改原有条款的确认状态,也不代表运行成熟度。纯容器无需“远程提交”,但其焦点、增长、组合边界仍须说明;不适用要有理由。

1.1 主操作与分类边界

一个独立任务上下文至多突出一个主操作;以对象、任务目标和操作边界识别上下文,不能给每个卡片或按钮组各配一个主按钮。危险确认中的危险操作承担该任务的主操作,不与品牌主按钮并列。主档见操作组件:按钮与动作入口。

41 项是结构与行为组件目录,不按八种视觉变体、请求状态或业务状态重复计数。八变体名称沿用既有记录,D03 初始设计职责映射见按钮篇与本页「CMP-MAT 六材质设计职责」(第 5 节);完整 API 和实现待确认/待验证;主操作方向已确认,不等于整套组件发布。

2. 组件目录与主档入口

原始基线共 41 个命名组件,以下列表保留该范围,变体不重复计数。后续扩展与组合的现行主档以YUDS 统一设计系统的当前组件登记和本章新增入口为准;首批扩展进展仅保留当时快照。族内显示/交互变体、目录标签和夹具不直接相加为独立组件总数:

扩展编辑族:公式/规则构建(FAM-020、B3-EXPR)与富文本/HTML(FAM-040、B3-RICH)统一见输入组件:文本、结构化编辑与专用输入;共同编辑规则 B3-EDIT 只定义一次。族内变体和 42 项未执行夹具不作为新组件数量。

候选先行范围:动作按钮、文本输入、复选框、单项选择器、链接、对话框、校验提示与内容分区。其余按实际流程拉动;不以多实现变体证明系统成熟。

3. 共同身份、值、状态与执行边界

状态必须按以下维度分别记录:

维度 取值
视觉与指针/焦点 默认、悬浮、聚焦、按下
交互能力 可用、只读、禁用
值与校验 空、有效、无效、真实混合
请求 空闲、待确认、处理中、成功、失败、结果未知
业务阶段 由产品定义,例如草稿、审批中、已归档
授权 允许、受限、待核查

这些是可组合维度,不是一个排他的状态枚举。例如“聚焦、只读、已有值、后台刷新失败”是合法组合;不能通过禁用把失败信息一并藏掉。

状态优先级不是简单覆盖颜色:焦点在任何可聚焦状态下都必须可辨;错误不能被悬浮色盖住;处理中保留对象与动作名称;无权限时先遵循产品的披露规则,再确定可以显示哪些说明。产品判定权限,组件仅表达授权结果。

  • 只读:能查看并理解当前获准值,不能改变;文本选择与复制在当前披露及输出策略允许时保留,不能由只读状态推定复制、下载或导出授权。不要默认用灰色禁用输入代替所有详情显示。
  • 禁用:动作当前不可执行。可见原因应放在邻近说明或可达帮助中,不只绑在无法聚焦的控件上。
  • 处理中:某次请求尚未确认结果;可按风险阻止重复操作,但无关区域保持可用。
  • 结果未知:请求发出后失去确认;优先使用产品真实支持的请求状态或任务记录核查。无查询能力时说明限制,按浮层组件:对话框、抽屉与提示 CMP-LAYER 的安全退出与真实处置路径处理,不能直接显示“未保存,请重试”,也不能虚构持久任务服务。

3.1 CMP-STATE:状态组合与事件仲裁

授权决定哪些信息可披露、哪些意图可执行;业务阶段决定当前合法任务;请求结果与值校验决定恢复动作;交互能力与视觉只表达以上事实。这个判断顺序不表示高优先级信息可以盖掉其它必要信息。无效值仍可编辑,禁用不等于只读,处理中不等于授权,已选不等于聚焦。只读、无效、聚焦可并存;真正不可聚焦的禁用控件不能伪画当前键盘焦点,但禁用原因仍须从邻近说明读到。

组合与事件 可见及可访问表达 允许动作与下一状态 文档失败断言
聚焦+已选+无效 保留焦点轮廓、选择标记和关联错误三种独立信号;悬浮不覆盖错误 继续修正;修正获确认才移除该错误,保留选择 只剩红色底、看不出焦点或选择即失败
只读+后台刷新失败 仍可读获准保留的已知值,并按输出策略允许复制;显示更新时间和刷新失败 重试读取;不把只读改为可编辑 用禁用灰框抹掉值或错误即失败
可用+提交中+再次激活 保留动作名称与请求状态,当前同意图不得重入 查原任务、允许无关操作;有服务端取消协议才发取消请求 二次激活另建相同写任务即失败
写请求超时+对象已变化 显示原任务结果未知和当前对象版本分别来自哪里 先按任务身份核查,不能用当前对象变化推断原请求成功/失败 无证据直接重试或报失败即失败
聚焦字段+授权撤回 立即移除应用可控呈现/可访问树中禁止保留的值,停止后续受限复制输出,说明可披露原因 焦点迁至仍可用的区块说明/安全动作;按产品安全策略处理草稿 留着秘密值仅加遮罩,或恢复权限前继续提交即失败
取消请求中+完成回执 显示最终已完成及可核实部分,不用本地取消动画覆盖 依回执进入完成/部分成功/已取消;恢复入口来自真实结果 将已完成写入说成已撤销即失败
旧读取响应+新查询已完成 当前结果、数量、错误均绑定新查询 忽略旧读取响应;已发出写操作另按任务身份保留回执 旧错误覆盖新成功,或丢旧写回执即失败

撤权的输出边界以权限变化、并发修改与保存冲突为准:清理应用可控内容与停止新的受限输出,不承诺追回此前合法复制到系统剪贴板、已下载或交付到外部的副本,也不能覆盖用户后来复制的无关内容。

走查时分别注入每行事件,检查文本、可执行动作及焦点位置三个输出。这里只定义预期;真实注入、读屏和视觉组合验证均未执行。跨业务恢复见系统状态、权限与恢复,平台输入见平台适配、国际化与输入能力。

INP-G01—G05 按能力适用:可编辑/选择值控件保留实际发生的值与校验事实;命令组件只承担其真实命令、权限与反馈;纯展示/容器不凭空增加值事务、传输或弹层。这里规定可观察语义,不强制相同内部存储结构。身份、真实状态、授权与焦点原则仍共同适用。

INP-G01 值事务

具有相应编辑及提交能力的控件在概念上分开原始编辑内容、可解析候选、已接受的本地草稿、提交意图、服务端确认值及版本。下文的“改变”“接受”“提交”“确认”“取消”是行为描述,不是事件函数名。拖动、方向键、点击候选不自动代表业务已保存;产品必须登记即时应用还是显式应用。未发生实际值变化不得生成重复业务提交。异步响应必须绑定对象、值和版本;过期结果不能覆盖新草稿。

INP-G02 状态独立

对实际具备的能力分别记录,不要求不存在的轴:

  • 值存在性:空/已有/尚未知。
  • 编辑权限:可编辑/只读/禁用/撤权。
  • 交互:静止/悬浮/焦点/正在操作。
  • 校验:未检查/检查中/有效/错误/需注意。
  • 传输:未提交/提交中/成功确认/失败/结果未知。
  • 弹层:关闭/打开。

各族另列自己的值轴。不得把只读当禁用、未知当零、保存中当有效、焦点当选择。组合冲突由明确优先级处理,例如撤权立即阻止新修改,但不抹除可安全保留的草稿;服务器最终决定权限和业务合法性。

INP-G03 视觉语义

严格保留七角色 primary、neutral、focused、success、warning、failure、general 与已批准固定职责 step 的两轴公共颜色消费方式;不得加组件颜色别名或自造色阶。选择、焦点、错误同时存在时各自保留,不能互相覆盖。排版继续 label/prose/heading 各九档;初始色值、系统字体/字号与几何按视觉与语义基础的 D01/D02/D05 主档采用,本文不复制另一套数值。每个独立任务至多一个主操作;字段选择或评分着色不是授予每段一个主操作。嵌套选择器若形成独立的确认任务,应明确其任务边界及与外层提交的关系。

INP-G04 访问与内容

需要字段标签的输入/选择控件,其标签持续可见并关联控件;纯图标命令按钮按操作组件:按钮与动作入口的可访问名称规则,不强制额外可见文字标签。格式、单位、范围、错误是可获取描述,不能只在悬浮提示中。颜色之外有可读值和状态。长标签可换行,值不缩小到不可读;窄屏可重排或切换等效控件,仍保留相同值域、稳定身份和错误。放大、强制颜色、触控读屏须实测。RTL 不等于把数字内容、时区标识、序列号逐字符倒置;输入方向、视觉排列、读出次序分别登记。

INP-G05 平台与实现

Web 优先真实原生语义;自定义控件按选定 APG 模式验证。iOS、Android、桌面原生端可以采用平台选择器和可访问增减动作,但不能宣称与 Web 键位、默认值、取消行为完全一致。每个适配记录 OS/浏览器/辅助技术及版本、键位、触控替代、值转换、错误恢复;目前没有这些运行证据。

来源口径

SAP 目录中的标题/Available/弃用标记只证明目录记录,不能证明行为。SAP v1-151 若只读到外壳,本文明确记为“正文未取得”。搜索工具有时返回同一官方 URL 的长正文片段,登记为“官方检索正文节选”,也不称完整逐段审计。W3C APG 是参考模式及示例,不是 YUDS 实现合格证。以下超出直接来源的细则均是 YUDS 规范建议。

3.2 展示、消息与异步范围

输入至少包括稳定对象身份、当前可披露内容、数据版本/时间、加载与权限状态、真正可用操作及操作范围。显示标题不能代替稳定身份;同名对象、重排和跨页更新不能改变事件目标。输出是用户意图、加载/错误呈现及焦点结果,不把一次点击视为服务端成功。

每个异步读取/解码/计数/阅读状态回调绑定账户、工作区/受众范围、资源 ID 与版本、当前授权代次及请求身份;应用结果前再次核对。切范围或撤权后,旧响应不得重新填充 DOM、画布、blob、缓存、角标或可访问名称。读取结果不匹配则丢弃其呈现更新;已发出的写请求按原任务身份保留允许披露的核查,不移交新范围,也不因丢弃旧视图回调而宣称写入未发生。

变体描述用途和结构,状态描述运行中事实。尺寸、密度、图文结构属于呈现选择;loading、failed、stale、restricted、focused 等属于状态。只读不是 disabled;纯展示内容没有可禁用的点击行为。每个可交互入口明确是按钮(命令)还是链接(导航),禁止在整行按钮里嵌按钮。文字、可访问名称、tooltip、缓存与复制路径遵守同一权限边界;撤权后清除应用可控呈现和缓存,不承诺收回此前用户已保存的文件/截图。

Web 默认采用原生文本、列表、按钮、链接的语义与自然 Tab 顺序;只有完整定义复合键盘模型时才使用复合控件。触控操作具有显式可点入口,不要求 hover、长按、双指或拖动。支持文本放大、窄视口、减少动态效果及高对比模式;具体尺寸、对比度、命中范围需实现后量测,不在此虚构通过结论。

每族提供未知/失败、撤权、长文、键盘及正常夹具。夹具对象 R-001、R-002 与成员 U-001 等均为中性虚构记录,不含行业数据。夹具写明初态、事件和精确可观察预期;不存在运行日志,全部“未执行”。

3.3 跨平台与证据边界

记录列表里的状态/头像/附件预览必须共享对象稳定 ID 及授权版本;消息摘要的定位不能依赖可见索引;通知中心打开任务时重新验证权限和当前状态。只有宿主已证实具备持久任务标识、查询入口与保留期时,后台真实结果才承诺在任务区留存;否则明示当前会话边界、离开后的核查限制及真实可用处置路径,依浮层组件:对话框、抽屉与提示 CMP-LAYER,不凭编号制造可恢复承诺。toast 只作提示;消息摘要不接管通知未读数,通知已读不清除表单错误。

Web:本文明确原生文本/列表/按钮/链接与模态焦点候选;还需实际浏览器、键盘和读屏验证。SAPUI5 与 SAP Web Components 并非同一实现:目录中 avatar-web-component 与 avatar-group-web-component 有弃用元数据,只能提示需另核正式替代关系,不凭名称推定当前 API。SAP v1-151 正文缺证未消除,不把 16 个目录条目计作完整规范覆盖。

iOS/iPadOS、Android、HarmonyOS、桌面原生:共享语义、状态、ID、权限与意图,采用平台原生可访问名称/特征、焦点、系统返回、文本缩放与触控尺寸映射。不能把 DOM role、Escape、px 或 Web aria 属性照抄为原生实现。OUDS iOS 头像只有搜索可见片段,未核完整正文/运行;目前不宣布任何原生端支持合格。PDF 跨端渲染器、系统共享/下载及阅读器权限另测。

每条追踪 ID 的交付记录至少包括:文档版本、来源读取范围、设计资产位置(未有则写无)、平台实现与版本(未有则写无)、具名运行环境、对应夹具、实际结果和失败证据。只有正文存在不等于设计资产存在;只有组件 API 不等于读屏通过。进入发布前必须逐族完成正常、未知/失败、撤权、长文/RTL、键盘/触控、乱序/并发测试;本文所有测试仍未执行。

完整来源与逐族状态见输入选择来源、展示消息来源和首批扩展进展。

SAP 的职责仍是覆盖与深度参照。SAP 1.151 页面读取仅得到标题、组件名与 Usage 外壳,或工具读取失败;没有取得完整行为正文,也没有绕过 403/访问限制。SAP 目录的 deprecated/internal_only 标记原样保留,不能由某个近似名称推定替代关系。原清单“部分覆盖待补”不升级为“可证已规范”。

官方 Web 语义基线:APG Menu Button、Menu and Menubar、Toolbar、Breadcrumb、Disclosure Navigation、Tabs。APG 是模式指导,不是通过测试的证据。下文明确的溢出迁移、权限竞态和异步身份规则是 YUDS 工程候选,不归称为 SAP/APG 已规定的实现。

Geist Menu 提供可发现触发器、键盘/typeahead、分组与边界自适应等参照;Geist Tabs 区分同页相关视图与跨页导航;Geist Breadcrumbs 展示层级和文字/菜单变体。只吸收克制层级与内容方向,不照搬其英文大小写、数量上限、Tooltip 作为唯一约束解释、零计数隐藏或完整属性 API。触控可发现性与 YUDS 真实未知值优先。

3.4 共用身份与状态契约(YUDS 候选)

  • 身份以稳定条目 ID、所属上下文 ID 及权限版本识别;位置索引、翻译标签、当前 DOM 节点不是身份。事件须带发起时对象/范围快照;同一项从主栏迁到溢出不能变成另一项或重发执行。
  • 分开保存:聚焦项、当前位置/选中项、展开集合、布局呈现、可用性、请求状态。聚焦不等于执行,展开不等于当前,busy 不等于禁用原因,隐藏不等于已获授权。
  • 每次激活重新检查允许范围,提交意图与完成回执分开。读取失败可重试读取;写入结果未知按 CMP-LAYER 核查能力说明,不自动重发。
  • 拦截离开沿用 NAV-01—NAV-05 单一流程;取消离开须恢复原当前值,不让浏览器地址、标签选中与内容各指不同位置。撤权优先,不为询问是否保存而继续展示受限内容。
  • 重新布局优先保留同一可见可聚焦实例;不得同时暴露重复 ID/两个可交互副本。必须迁移时,先确定新目标再卸载旧目标。若用户已移到别处,布局或晚到结果不得抢回焦点。
  • RTL 使用逻辑起止边与平台方向模型;不可只翻转 CSS 却留下反向焦点顺序。下文键位默认 Web LTR;RTL 的物理箭头映射、视觉顺序和辅助技术阅读顺序须成组实测,不能推定所有平台相同。文本方向隔离用于嵌入的 R-01 等标识,不翻转实际标识。
  • 文字放大/窄容器/翻译增长时首先保留动作词、目标身份与状态。不能只靠悬浮显示完整信息;同名条目用可披露祖先/次要说明消歧,不能泄露无权对象。

3.5 反馈与列表的共同边界

继续使用七角色 primary/neutral/focused/success/warning/failure/general × 已批准固定职责 step;不得新增组件颜色别名。文字使用 label/prose/heading 各九档。一个独立任务上下文至多突出一个主操作,嵌套卡片、toast、空状态不能各自再抢同一任务的主操作。以下 ID 是追踪标记,不是事件名或 API。

SAP 1.151 相关条目仍只有目录 D 级证据,不能据此宣称正文对等覆盖。SAP v1-96 Busy Handling 只采用公开 Intro/Usage 短段,页面带 internal_only 文字,不取其后内容为公开规范证据,不继续寻找内部材料。Geist 与 W3C 已读的具体正文范围见配套 JSON;APG 为指导而非认证,WCAG Understanding 为说明文档。以下生命周期、去重键、焦点回退和夹具是 YUDS 建议,不能误写成 SAP 既定行为。OUDS 未取得对应正文,不提出 OUDS 行为结论。未尝试绕过 403 或其他访问限制。

异步读取均绑定账户、工作区、资源/查询 ID、数据版本、授权代次与请求身份;展示和通告前分别核验。读取过期则丢弃呈现更新;已提交写任务仍保留允许披露的原任务核查,不能因换页而假称未执行。撤权清理应用可控 DOM、可访问名称、待发通告、tooltip 及缓存;已送至辅助技术/系统或此前合法复制的内容不能保证追回。

局部文档审阅不代表整体评审达标、SAP 等价或平台通过。

来源和证据限制见早期范围进展。

  1. 身份与事件。 控件绑定稳定对象、任务/字段与范围版本;名称、数组索引和屏幕位置都不是身份。下文“激活、草稿变化、提交、回执、取消”是可观察记录概念,不是正式事件 API。一次明确激活最多形成一次该动作意图;键盘事件与浏览器合成 click 不得分别发送。按住、连击、触控重送、冒泡到行容器不得扩大范围或重复动作。原生控件优先沿用其激活管线,不额外重复模拟。
  2. 三种保存模型先声明。 本地视图变化、表单草稿、即时远程写入不能用同一个“已选”字样混淆。本地变化不声称跨设备保存;表单改变只改草稿,Tab、失焦、折叠、响应式重排不提交。表单取消恢复本次编辑会话基线:打开本编辑会话时的原始草稿快照及其确认版本;若打开前已有未保存草稿,取消不能把它回退成远端确认值;局部菜单关闭不取消整份表单。重新打开已保存版本后建立新基线。外部版本更新产生冲突时不静默重定基线。即时写入没有“离开即撤销”;需要撤销时必须是另一个经允许的补偿动作。
  3. 远程状态。 分开保存已确认值、用户期望/草稿、请求身份与结果。默认保守候选是同一字段/命令 pending 或结果未知时不接收第二次写入,仍可离开、查看原因及真实核查入口;不排队事后惊喜执行。此候选不强制所有既有实例采用同一种禁用机制。若产品确需并发/合并,须补齐串行化、冲突及补偿契约后采用。明确拒绝可恢复可编辑草稿或按该控件约定回退;超时不等于失败或取消,不自动重发。迟到写回执归原操作记录,不能当旧查询丢弃;不得污染已切换对象。迟到只读结果须通过当前身份/版本/权限检查。
  4. 禁用、只读、撤权。 不可用原因在可达的邻近说明提供,不依赖 disabled 元素悬浮。aria-disabled 只描述,不自动阻断;所有键盘、指针、快捷键、菜单副本及程序激活路径须检查。只读允许理解当前值但不改变,不虚构 HTML checkbox/radio 的 readonly 行为。可用说明或静态值替代时保持名称/值/原因可读。撤权先阻断新意图,再清除不允许保留的草稿、名称与受限内容;仅失编辑权而仍可读时可保留值,不能一概清空。已发写入按真实回执处理,不能说已撤销。旧授权响应不能复活能力。
  5. 焦点与组合。 当前焦点控件变为不可聚焦或移除时,转换前安排同任务的可见、有权、可聚焦后继(相邻项、组标题或状态说明);用户已在其他有效位置时不抢焦点。打开模态遵循浮层组件:对话框、抽屉与提示,执行后进入新任务不再返回旧触发器。输入法组合中 Enter 先由输入拥有者处理;普通字段 Enter 是否提交须由表单明确定义,不能借冒泡误激活这些控件。
  6. 增长与平台。 长标签可换行并保持动作、否定、对象和范围直接可见;复杂解释放邻近说明,可访问名称包含可见名称且不重复装饰图标。RTL 调整布局和真正方向性图标,不反转命令身份、选中含义或未知值;读序/Tab 与视觉逻辑一致。不可仅缩小命中区或改无名图标。Web 的 ARIA 与键位是参考模型;原生采用对应控件语义、焦点和辅助操作,逐端记录偏差,不将 ARIA 属性照搬为跨端验收。无硬键盘时均有可点路径。

来源与边界见动作/选择来源。

3.6 SEL-COMMON 选择值、范围与取消层次

  • 四种状态不可合并。 查询文本、当前浏览/高亮候选、字段已明确接受的草稿值、远端已保存值分别记录。候选 ID 不取数组索引;显示名不是实体 ID。下文“查询/浏览/接受/增删/应用/提交”是可观察意图,不批准事件 API。明确接受一般仅改字段草稿,不代表保存、授权或业务执行。
  • 快照与取消。 表单编辑会话保留进入时的原始草稿快照,包括未解析文本和不合法但允许保留的值;不得把快照净化成仅合法值后在取消时丢失用户原稿,失权禁止保留的内容除外;关闭建议只关闭该子层,不清空字段,不取消整表。值帮助另有打开时的字段草稿快照及对话框临时集合;取消只放弃本次帮助的临时变化,不能把外层已有未保存草稿退回服务器旧值。外部版本变化须冲突检查,不用旧快照盲目覆盖。失权数据即使在快照中也不得恢复。
  • 异步与权限。 请求身份含字段/对象、查询、筛选、排序、游标、数据版本、授权范围/轮次及请求序列。同文查询不是相同身份。旧读结果不得进入当前候选、缓存输出或通告;已发写入仍归原操作记录,不作为旧读丢弃。选择/应用/保存各边界重新校验必要权限与版本。未知保存结果核查原操作,不自动重发或声称已取消。
  • 加载与计数。 未查询、查询中、空结果、失败、局部成功、旧结果刷新、无权限及禁用原因分别表达。状态行不是可接受候选。仅知道已加载 20 条时显示“已加载20条,总数未知”,不写“共20条”或“已选全部”。精确已选 ID 集合的数量可以精确显示,即使候选总数未知;不可解析的历史选择另标待核查,不猜其数量。
  • 增长与焦点。 搜索/过滤/分页不删除仍合法的隐藏已选值。活动候选绑定 ID 与候选版本,失效则清除可接受候选,不把新的同索引对象接过去。虚拟化活动引用必须指向实际存在且可感知的节点;先保留/渲染目标再更新引用,做不到则清除活动引用并说明,接受次数为 0。不能用回收 DOM 触发失焦保存、IME 结束或取消。用户已经移到其他有效任务时,异步响应不抢焦点。

来源与证据边界见本组来源。

3.7 GEN-SNAPSHOT 原始草稿与接受边界回归

共同不变式:取消处理当前会话拥有的未提交变化;快照是进入该会话时允许保留的原始内容,包含未解析或尚不满足校验规则的草稿,不自动退回远端已确认值。恢复前重核当前披露权限与对象/版本冲突;不能借保稿恢复受限内容,也不能覆盖其他合法更新。失效原文保留供纠正,不等于允许接受或提交非法值。

夹具 初态与操作 预期
GEN-SNAPSHOT-01 远端确认 a,进入会话前原始未解析草稿 b,当前编辑成 c 后取消 恢复允许保留的 b,不恢复 a;保存请求 0
GEN-SNAPSHOT-02 步进开始前草稿 1.1 不在 step=1 离散集合;用户按住增量进入同一尚未接受的指针/长按操作,当前预览到 2,尚未释放接受即 pointercancel 恢复可披露的 1.1 并保持需修正状态,不强制成 1 或 2,接受/写入 0;若此前独立点击或键盘增量已接受,后续手势取消不撤销此前已接受的增量
GEN-SNAPSHOT-03 子层打开后父字段由另一合法入口更新到 v2,子层取消 仅丢弃子层临时变化,父 v2 不被打开快照覆盖;若撤权,优先清理受限部分

以上是文档回归夹具,运行均未执行。共同边界由已记录的 LP-G03、SEL-COMMON、AC-COMMON 和表单快照约束交叉核对,不新增服务能力或业务 API。

来源与证据边界见本组来源。

4. 焦点、键盘与可访问性

Web 优先使用具备相应语义的原生元素;确需复合控件再实现焦点模型,不以加一个 ARIA 角色替代行为。标签、说明、值与错误正确关联。可见名称应支持语音控制识别;图标单独作为按钮时也有可理解名称。

焦点按任务顺序移动;插入结果不无故夺焦点;删除当前项后移至相邻可操作项或区块标题。仅模态上下文限制焦点范围,非模态控件不能形成键盘陷阱。异步状态通过适当的状态通告表达,避免每个字符、每个进度点重复播报。

Web 验收按 D05 已采用的 WCAG 2.2 AA 目标执行,尚未宣称任何实现达标。重点覆盖键盘操作、焦点顺序及可见性、标签与错误关联、状态消息、文本与非文本对比、重排及目标尺寸;是否符合某成功准则需按原文的适用条件和例外逐项判断。WCAG 2.2

APG 是交互模式实现指导,不能当作通过 WCAG 或所有辅助技术的认证。每个目标平台仍需真实测试,原生应用应映射平台语义而非机械复制 Web 属性。W3C APG 模式目录

5. CMP-MAT 六材质设计职责

本表六材质职责由代理依用户授权按 D03 采用为初始设计映射;实现 API、资产与组件包仍未发布。六个名称核对自 Billgo Standard Design(2026-10-19 读取)。该参考的“一 View”与批准/拒绝例外不替代 YUDS 规则;D04 已选择不启用双主例外;该参考中的 Web 材质等能力仍标记为计划中。

材质属于表面职责,公共颜色仍只使用七角色+固定职责色阶,不新增 surface-* 等公共颜色别名。按钮、输入、标签页是控件,不因此成为第七种材质。

设计材质 组件/表面职责 允许与禁止的边界 失败时保守方案
surface 卡片、面板、内容分组 同一结构用统一表面;不可给每个字段另加一层 采用普通中性表面与明确分组
sunken 侧栏、工具栏、代码区 表达结构凹入,不表示禁用、错误或授权;与控件本身形状分开 用中性分隔与标题表达归属
tooltip 无交互短提示表面 只承载补充说明;不能装表单、唯一风险或确认 必要信息留正文,长解释改帮助面板
menu 菜单、弹出面板、选择器表面 共享材质不共享语义:命令菜单、列表框、日期选择各守自己的键位 按相应原生控件或普通可达面板呈现
dialog 对话框与承担其语义的 sheet/抽屉 模态性由任务显式声明,不由阴影和位置决定 使用满足隔离与关闭契约的普通表面
fullscreen 全屏任务表面 全屏不自动模态,不改变返回/关闭/提交;不增加一个任务主操作 独立页面或可滚动任务容器,保留原任务身份
平台 六职责的设计承载方向 必须登记的适配与验收状态
Web 用可访问的结构/浮层承载以上职责;实现选择 CSS 填充、边界、阴影、圆角 不写未发布 TeaCSS 类名;记录主题/强制颜色和实际包版本;六项均未实现核验
Apple 按任务选原生分组、导航区域、提示/菜单、弹出层、sheet 或全屏呈现;保持相同职责 系统材质外观不证明 YUDS 配色/关闭/焦点自动合格;登记系统版本及减少透明度等设置;六项均未实现核验
Android 按职责选 Material 容器、菜单、Dialog、Bottom sheet 或页面;不以圆角复制代替行为 系统组件也要核查尺寸、焦点、返回及内容增长;不能把示例固定高度当规范值;六项均未实现核验
HarmonyOS 先按相同六职责提供普通可访问表面;具体 ArkUI 容器与系统能力映射待目标版本核验 本表不声称已有原生材质一一对应,也不采用未经读取的 API;六项均未实现核验

D03 采用理由是稳定结构职责。填充、边界、阴影和圆角先消费下方 D03-M01 初始配方,平台差异另登记;这些参数必须同时通过七角色色阶、焦点、文字增长及高对比检查。

验收夹具(所有实际平台结果未执行):

  • 设置:在卡片里打开列选择面板,再打开独立确认任务。
  • 正常预期:surface → menu → dialog 职责清楚,且每层语义正确。
  • 失败夹具:禁用透明效果/窄屏后,仍能识别边界、退出与焦点。

CMP-01—CMP-41 的唯一主档分别在七篇组件子文档的同名组件主节;末尾索引仅负责导航。它们是 41 个目录项的追踪标识,不是新编号体系、品牌 Token 或实现 API。新增组件须先变更目录及覆盖记录,不能用变体冒充新组件。

5.1 D03-M01:六材质初始消费配方

已有材质 不透明默认表面 必要边界 几何与层次
surface neutral-100 仅确需边界辨识时 neutral-600;否则分组/留白,不滥加框 D05 内容表面 8;正常内容层
sunken neutral-150 与相邻内容确需区分时 neutral-600;装饰分隔才 neutral-500 不强加卡片圆角;D05 布局继承,结构层
tooltip neutral-100 neutral-600 D05 tooltip 4;属于触发器任务的短提示层
menu neutral-100 neutral-600 D05 menu 8;属于对应任务的活动子层
dialog neutral-100 neutral-600 D05 dialog/sheet 12;LP 隔离与任务所有权独立决定
fullscreen 页面 neutral-150,其中内容 surface 按 neutral-100 仅需要时 neutral-600 D05 全屏 0;任务页面,不自动模态

共同默认文字 neutral-950、次文字 neutral-900,具体状态配对仍沿 D01。

代理依用户授权采用(可逆):统一“无附加阴影、无透明玻璃、无新半透明遮罩”作为最小可复现起点,不阻止以后有证据地增加;不能把模态隔离误等同必须有深色遮罩。若真实设计确需遮罩,先明确它的作用、现有 token 消费及合成测试,不在未允许的 alpha 上临时补值。

层级相对关系沿 LP 任务所有权,不在此发明全局 z-index 数值表。此矩阵只填设计参数缺口,不把六材质变成六种交互语义或六个公共颜色别名。

6. 组合夹具与交付证据

  • 用户先输入一半再断网:输入不被骨架或报错替换;恢复后不自动重新执行高后果动作。
  • 同一读取或校验意图中,请求 A 先发后回、请求 B 后发先回:A 的过期响应不得覆盖 B。写操作则逐一按请求/任务身份核查并保留回执,不因较新意图出现就丢弃可能已生效的旧写结果;有依赖的写操作由产品与实现采用排队、版本校验或明确冲突策略。
  • 权限在弹层打开后变化:执行再次校验;显示可披露原因,不泄露已撤销权限的数据。
  • 200% 文字放大、窄容器与长中文名称:关键操作、字段错误、单位及焦点均可访问;复杂二维结构若需滚动,应保留任务入口和上下文。
  • 只用键盘和读屏完成参考流程:能知道正在操作什么、是否已生效、哪里失败以及如何继续。
  • 更换主题或密度:业务语义、命中目标与焦点可辨性不被破坏。初始视觉数值沿 D01/D02/D05 主档采用,未来品牌替换或新增数值另记决定并验证。

组件“文档齐全”不等于“设计资源已有”“代码可用”或“真实任务验收通过”。实现证据、设计资源和产品采用状态分别登记;不在这里锁定框架、样式库或品牌 token。

四系统矩阵记录共性、差异、采用/调整/拒绝及证据等级;SAP 覆盖差距区分已规范、待补与未来扩展,不按目录数量推断质量或实现成熟。目录中的同名组件也要逐项检查用途、解剖、合法状态、事件、焦点、内容增长、平台映射、版本和测试证据。

13 组行业无关夹具以固定输入、事件与预期覆盖上述契约。它们是待实现的文档夹具;文档走查通过不等于组件运行通过。允许/禁止组合及独立版本字段见 规范、设计与实现映射,真实运行门禁见 质量基线、门禁与验收证据。

7. 扩展、例外与来源

已有组件无法承担新语义时先检查:是内容、变体、组合模式还是新组件?只改变排列优先组合;改变值与焦点语义可能需要独立契约。领域特有计算保留产品局部实现。例外需写使用场景、偏离点、风险、负责人、验证与复查条件,不能以“业务特殊”免除权限和基本可访问性。

来源核查于 2026-10-18。外部来源仅支持其对应的可访问性事实;本章目录、状态分层与验收流程是 YUDS 的建议。

历史研究与证据导航

以下是早期读取与范围统计的记录,只反映当时批次,不表示当前族总量、来源覆盖或质量结论:

来源账本分别见动作/选择来源、反馈来源与早期范围进展。局部官方事实及读取限制仍在对应规则附近;当前主档和进展从 YUDS 统一设计系统 读取。

历史附件说明:上述组件矩阵与 13 组夹具 JSON 保持生成时的证据身份及当时设计决定措辞;现行设计输入以 D01–D08 主档为准。历史附件不覆盖现行采用,也不成为新的运行通过证明。

后续:复杂数据工作模式