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

YUDS 文档

容器组件:分组、展开与工作区组织

容器如何组织信息与任务:卡片、横幅、分区折叠、可调分隔、侧内容、列表、头像、图像与轮播的行为契约。

状态:本页是容器族行为与参数的唯一主档。B2-BANNER 与 B3-CAROUSEL 为经独立文档反审的通用深契约候选,设计输入沿用代理依用户授权采用的初始设计基线 D01–D08;具体 API、服务与平台实现仍须真实证据。全部测试与夹具均未执行,文档反审不代表真实平台或辅助技术通过。 更新:2026-10-18 所属章节:基础组件与交互契约

使用选型、解剖与正反例见组件使用手册:从任务选型到页面组合;本页仍是本族行为与参数引用的唯一主档。

容器组织信息与任务;外观有边框不自动赋予按钮、卡片链接或区域语义。

共同设计与验收边界见基础组件与交互契约,本页的特殊条件与来源限制就近说明。本页依次包括:

  • 容器共同解剖
  • CMP-36 / B1-CARD 数据卡片
  • B2-BANNER:首页横幅
  • CMP-37 / CMP-38 / LP-PANEL 内容分区与折叠
  • CMP-39 / LP-RESIZE 可调分隔与条件尺寸能力
  • B1-SIDE 侧内容与滚动容器
  • CT-LIST 列表共享语义
  • CMP-40 记录列表
  • CMP-41 描述列表
  • DSP-AVATAR 头像与头像组
  • DSP-IMAGE / DSP-PREVIEW 图像与预览
  • B3-CAROUSEL:轮播与顺序浏览
  • 组合验证、来源与主档索引

结构化富文本的只读呈现与 HTML 边界见输入组件:文本、结构化编辑与专用输入 B3-RICH-UNSUPPORTED/B3-RICH-SECURITY;容器本身不授予任意 HTML、脚本、净化或嵌入能力。

1. 容器共同解剖

容器应有明确的信息归属、标题层级、主体、必要辅助说明与作用于本容器的操作。视觉分组与文档阅读顺序保持一致;多列排布不能让辅助技术按错误顺序读取字段和值。

容器级状态与子项状态分开。一个附件加载失败不应让整份合同详情消失;多个子区块正在加载也不意味着整个对象不存在。折叠、切换与调整尺寸不丢失用户草稿,持久化范围由产品明确。

2. CMP-36 / B1-CARD 数据卡片

本节深化 CMP-36;卡片组语义复用本页 CT-LIST,动作与命令菜单见操作组件:按钮与动作入口,读取/写回执和授权边界分别见异步执行、结果核查与恢复、权限变化、并发修改与保存冲突。

2.1 用途与不适用

用于围绕一个稳定对象或一个明确口径的摘要作快速理解和进入。可静态阅读、单目的地导航,或在静态容器内放多个独立动作。需要逐列比较、批量选择、连续编辑或复杂筛选时先用既有列表/表格/表单;卡片化不免除这些契约。不能把未知、无权读取、空结果、真实零值统称为“无数据”。不能把任意页面每一小段都装进卡片而制造层级噪声。

结构:可识别标题/对象身份、必要范围或时间口径、摘要正文、局部状态、可选主入口及独立次动作。选择控件、展开控制、导航入口各有明确目标,不能由一次激活隐式连带完成。没有交互的卡片本体不增加 Tab 停靠;整卡链接只在不存在嵌套交互且不干扰文本选择时采用。多个链接/按钮使用独立语义控件,不让整卡点击处理器吞掉菜单、选择或文本操作。标题层级随页面结构,不按卡片视觉字号推断。

2.2 变体、状态与一致性

静态/导航/多动作是行为结构,紧凑/展开是呈现,选中/焦点/禁用/加载/失败/受限是独立状态轴。仅在明确支持选择时呈现选中态。骨架不伪造数值或给每块占位增加可聚焦控件;局部重试影响该卡当前读取,不刷新并抹掉整组草稿。

摘要与详情入口须共享对象和可解释的数据口径。多个数据源不必强制同一服务端版本,但不可把各自时间/范围不同的数据包装成同一快照;必要时显示各块更新状态,汇总口径缺失则不计算貌似精确的总值。刷新期间若仍允许显示旧数据,明确其旧态与范围,并按真实能力决定哪些动作可用。只禁止依赖未知当前值的动作,不把全部阅读一起禁用。

动作意图绑定激活时的对象、范围与版本上下文;排序、刷新、卡片复用后不能改投新对象。旧读取不能覆写新卡标题、值、状态、辅助名称或播报;已发写入仍归原任务处理。进入详情时重新核对实际权限/版本,不能把卡片曾显示等同持续授权。撤权遵循权限变化、并发修改与保存冲突:只清除受限部分,且同步清理卡片摘要、图片替代文本、tooltip、菜单、选中汇总及缓存;允许披露的非敏感状态可保留。

2.3 键盘、布局与平台

采用底层链接/按钮/选择/菜单键盘,不给视觉卡片网格自动加 grid 或 listbox 角色。卡片组的集合关系沿用 CT-LIST,重排保留稳定记录身份;焦点所在动作被移除时按既有安全后继规则,不因背景刷新抢焦点。长标题、单位、更新时间和异常说明允许增长;状态不能只依颜色或悬浮。窄屏重排保留逻辑阅读顺序,省略次信息需有可达完整途径;不能省略决定对象身份与行动后果的内容。Web、原生列表和辅助功能分组分别验证,不把 SAP 固定宽度、Orange 圆角/小尺寸槽位规则移植为 YUDS 标准。

依据:OUDS Items 正文支持静态/导航分类、单目的地及避免嵌套交互;本页的快照、撤权、跨源口径属于 YUDS 推导。SAP Card 目录仅证明参考项存在。OUDS Items

2.4 基线案例与验收

例:项目卡片展示项目名、当前阶段、更新时间和“打开项目”,更多菜单用于归档等动作;点击菜单不跳入详情。

验收:覆盖长名称、多个操作、键盘顺序、复制摘要、批量选中及局部失败。

CMP-36 基线正常夹具

项目 A 卡片更多 → 只开更多、不跳详情。

CMP-36 基线失败夹具

归档失败 → 卡片保留且错误就地,选择与焦点仍可区分。

2.5 组合夹具(全部运行未执行)

B1-CARD-N01 独立动作与单任务主动作

  • 前置:T001 包含 R001/R002 卡片;R001 有详情链接与更多按钮。
  • 动作:键盘打开更多并取消;选择标题文字;激活详情链接。
  • 预期:更多只归 R001;取消回有效触发器;详情导航仅一次;T001 最多一个突出 primary。
  • 禁止:选文字导致导航;菜单激活同时导航。

B1-CARD-F01 局部刷新失败与零值

  • 前置:R001 旧摘要获准保留;R002 真实值 0。
  • 动作:刷新 R001 失败;重试 R001。
  • 预期:R001 旧态/失败可辨;R002 保留真实 0;重试只指向 R001 当前读取。
  • 禁止:把失败/未知显示 0;清空整组状态。

B1-CARD-R01 受限摘要同步清除

  • 前置:焦点在 R001 菜单;读权限将撤回。
  • 动作:撤回权限;送达旧摘要响应。
  • 预期:正文/替代文本/tooltip/菜单/选中汇总不再披露;焦点到安全有效目标;旧响应不恢复数据。
  • 禁止:仅遮住可见文字;假称可回收用户已复制资料。

B1-CARD-L01 窄窗长文重排

  • 前置:长对象名称/长单位/异常说明;多动作卡。
  • 动作:放大文字并缩窄窗口;遍历所有操作。
  • 预期:对象身份与后果可理解;逻辑阅读顺序不变;完整内容途径可达。
  • 禁止:关键状态仅 hover;重复可操作副本。

B1-CARD-V01 刷新排序与旧回执

  • 前置:R001 读取 a 待返回;写入 w 已发送。
  • 动作:排序并将同位置显示 R002;返回 a 与 w。
  • 预期:a 不更新 R002 名称/值/播报;w 按 R001 原任务实际结果处理。
  • 禁止:用位置索引投递动作;丢弃 w 后宣称未发生写入。

B1-CARD-C01 混合来源口径

  • 前置:R001 两块摘要来自不同更新时间/范围。
  • 动作:先返回一块再返回另一块。
  • 预期:可辨别各块范围与更新状态;未获定义的合计不显示为精确整体。
  • 禁止:制造同版本快照;卡片嵌套即增加 primary。

机器可读前置、动作、断言与禁止事件见本组夹具。来源等级及读取边界见本组来源;文档反审不代表真实平台或辅助技术通过。

3. B2-BANNER:首页横幅

现行设计输入沿用 D01–D08(见决策与讨论记录);以下为已经独立文档反审的通用深契约候选,具体 API、服务与平台实现须有真实证据,全部运行未执行。七 role × 固定 step、三文字角色各九档及每独立任务至多一个主操作不变。

3.1 BANNER-USE 用途与结构

横幅提供页面/空间介绍、可选入门说明与普通导航入口。执行失败、撤权、危险后果和必须知悉的状态应使用消息条/任务状态主档,不以可关闭宣传横幅承载。结构为可选装饰图、标题、简短说明、至多必要入口和可选关闭;没有动作时用静态区域,不伪装按钮。整幅链接与内部独立按钮不可嵌套;首选标题/明确链接可点击,其他区域可选择文本。

默认静态且不自动轮播,不抢主任务强调;普通导航入口不因横幅醒目变成另一个 primary。图像纯装饰时从辅助技术内容中省略,有信息时提供等价文字,不能把必要说明仅放图内。长中文、无空格标识、RTL 与大字允许增长/堆叠,不用固定高截掉关闭或链接。

3.2 BANNER-STATE 范围、关闭与持久化

状态为可见、当前会话关闭、已证实持久关闭、持久化待确认/失败/未知、内容更新、失效/失权。关闭按“主体+范围+横幅 ID+内容修订”标识;默认只影响本会话,跨设备同步需真实能力。普通关闭不是永久删除,也不代表内容已读或任务完成。若有远端偏好写入,立即收起可作为明确的乐观呈现,但必须仍可到偏好/恢复入口查看实际结果,失败/未知不得宣称已跨设备保存;不因重绘或超时自动重发。

当前会话呈现意图、远端已确认偏好、在途偏好请求分别记录。每次用户关闭/恢复生成新的本地意图代次,写请求绑定该代次、偏好版本与主体/范围/横幅/修订。旧写回执可更新原请求的真实结果,但不能覆盖后来的本地恢复意图或重新隐藏横幅。

远端更新只有在真实服务执行条件版本或等价原子冲突控制时,才提供冲突安全的跨设备修改/反向补偿;仅本地排序、串行或先读后写不能防止另一设备并发覆盖。没有原子条件控制时,本候选不提供安全远端反向补偿,恢复仅标为“仅本会话显示”,或降级远端只读/取消该修改入口。实例可另行明确允许首次普通关闭使用无条件偏好写,但须说明该政策允许覆盖、不保证跨设备冲突安全;不得把此例外泛化到收藏的安全补偿。串行单个写入仅用于本客户端防重,等待旧回执也不创造跨设备冲突控制;本会话恢复不伪称已更改远端偏好。结果未知且无核查能力时不继续远端写,不以新的请求盲目抵消旧请求。

新内容修订不能沿用旧“已读”语义;是否再出现需实例说明。默认同一修订在本会话不反复出现,只有重要且真正不同的可选引导修订可作为新条目;必须通知的安全信息改用不可误消失的任务反馈路径。切换主体/范围清理原偏好和受限正文,旧写回执仅更新原任务当前允许披露状态,不迁移所有权。

3.3 BANNER-KEY 焦点与异常

标题和正文按内容结构表达,不因名为 banner 自动使用全站 banner landmark 或 assertive live region。关闭按钮名包含所关闭说明,普通 Tab 进入链接/关闭,Enter/Space 依原生控件;没有自定义左右键和轮播手势。用户关闭且焦点仍在横幅内时,移到紧接的合理页面入口或标题;焦点已在外部则不移动。后台撤除受限内容仅在焦点受影响时恢复到安全位置,不能通过残留名称/tooltip/应用可控语义树、待发通告或缓存泄露。

读取失败显示局部可重试说明或安全省略可选横幅;主任务仍可用,不把未知内容显示成空/完成。重试只能读取当前主体/范围/修订。静态展示不发送“已读”写入;是否记曝光属于另行明确的数据收集设计,不随组件默认开启。

3.4 BANNER-PLATFORM 平台适配

四端共同保留内容次序、动作身份、关闭范围与真实持久化结果。Web 语义由区域/标题/链接/按钮组合;原生采用对应内容分组与可访问控件,关闭后焦点恢复按平台能力验证。大字和窄窗可改为普通信息块,不强求横向横幅;RTL 使用逻辑起止方向。平台不支持的远端偏好/离线恢复能力显式标不可用,不画出成功状态冒充服务。

执行前冻结平台/浏览器或设备版本、实际视口、文字设置、方向、完整样本、真实能力前置与各子轮唯一预期。所有测试数值仅属夹具配置,不是全局组件默认;本页没有真实运行证据。

3.5 精确夹具(全部运行未执行)

B2-BANNER-N01 普通导航与关闭

  • 前置:静态 B001v1 含标题链接与关闭,无远端偏好能力。
  • 动作:选择说明文字,再激活标题链接;返回并关闭。
  • 预期:选字 0 导航;明确链接 1 导航;关闭只当前会话;主任务 primary 配额不变。
  • 禁止事件:整卡嵌套按钮;自动曝光写入。

B2-BANNER-N02 焦点外移不抢回

  • 前置:B001 当前仍可见,但本会话本地关闭状态已记入,渲染尚未提交;焦点已合法外移到正文 Q。
  • 动作:提交本地关闭状态对应的延迟渲染,移除 B001。
  • 预期:焦点仍在 Q;无主任务变更。
  • 禁止事件:焦点跳到页首。

B2-BANNER-K01 用户关闭恢复

  • 前置:焦点在 B001 关闭按钮,之后正文有标题 H 与操作 P;实例明确关闭后聚焦正文标题 H;H 是可程序聚焦目标。
  • 动作:Space 关闭一次。
  • 预期:横幅消失;焦点到 H 一次;0 业务写入。
  • 禁止事件:焦点落 body 不可辨;关闭视为已读。

B2-BANNER-F01 偏好写入失败

  • 前置:实例声明远端偏好,B001v1 关闭 W1 在途,有持久恢复入口。
  • 动作:W1 确定失败,重绘页面。
  • 预期:入口披露仅会话关闭/未同步;不自动重发;用户可选择重试。
  • 禁止事件:假称跨设备成功;失败后隐藏唯一核查入口。

B2-BANNER-U01 偏好结果未知

  • 前置:B001v1 W1 超时且实例没有查询服务;同一页面会话对象持续存活,未知状态与恢复入口已挂载;不测试进程退出后恢复。
  • 动作:在同会话导航到其他内容再返回,查看仍存活的恢复入口。
  • 预期:说明当前未知及不能核查;不盲目重发,不编任务查询链接;会话关闭状态单列。
  • 禁止事件:未知改失败;自动再次发送。

B2-BANNER-R01 主体切换迟到写

  • 前置:A/a1 关闭 B001v1,W1 在途;B/b1 同 ID 横幅有独立内容且无权读取 A 数据。
  • 动作:切 B 完成;A 对 B001 内容的读取权限撤销;返回 A 旧写回执含受限内容;再明确切回 A,重新鉴权返回拒绝。
  • 预期:B 的同 ID 横幅保持可见;A 偏好不应用 B;旧受限内容不出现在 B 正文/AT/菜单;返回 A 重新鉴权拒绝后仅显示安全失效说明,旧内容不复活;0 所有权迁移。
  • 禁止事件:跨账户误关闭;旧受限名称通告。

B2-BANNER-V01 修订身份

  • 前置:B001v1 会话关闭;B001v2 是明确新可选引导。
  • 动作:按实例已声明的新修订可出现规则载入 v2,之后迟到 v1 状态。
  • 预期:v2 独立呈现;v1 不能关闭 v2;不称 v2 已读;不重复出现 v1。
  • 禁止事件:旧偏好跨修订覆盖;强制安全消息可关闭。

B2-BANNER-L01 长文与替代

  • 前置:长中文/RTL 说明,装饰图,关闭和普通链接。
  • 动作:四端大字窄窗布局并遍历全部内容。
  • 预期:改堆叠内容仍完整;装饰图不读;关闭/链接可达;无自动轮播。
  • 禁止事件:固定高截断;唯一信息仅图中文字。

B2-BANNER-E01 读取失败不堵主任务

  • 前置:可选 B001 读取 r1 在途,正文 P 可用;实例失败政策为显示局部重试说明;r2 成功返回当前 B001v1。
  • 动作:r1 失败,再明确重试 r2。
  • 预期:r1 失败显示局部重试说明,P 始终可用;r2 仅当前主体/范围/修订,成功后显示 B001v1。
  • 禁止事件:把失败当已读;禁止主任务。

B2-BANNER-C01 无隐含持久化

  • 前置:本会话 B001 关闭且没有远端偏好能力;实例政策为退出本页面会话后重置关闭状态。
  • 动作:退出页面会话后重新打开。
  • 预期:新会话显示 B001,未宣称永久关闭或跨设备同步。
  • 禁止事件:显示全设备已隐藏;调用不存在偏好服务。

B2-BANNER-W01 恢复意图与迟到成功

  • 前置:A/B001v1 首次普通关闭意图 g1 发 W1,远端无原子条件版本能力,W1 未回;实例明确允许此无条件首次关闭并披露允许覆盖、不保证跨设备冲突安全。
  • 动作:在恢复入口选择仅本会话显示,产生 g2;再送达 W1 成功。
  • 预期:B001 保持可见;远端偏好确认关闭与当前会话恢复显示分开表达;仅 W1 一次远端写。
  • 禁止事件:旧成功覆盖 g2 再隐藏;恢复时盲发 W2;远端已关闭说成当前不可显示。

B2-BANNER-W02 真实远端关闭成功

  • 前置:A/B001v1 可见,实例明确提供条件版本 v1 及当前偏好读取。
  • 动作:关闭 g1 发 W1(v1),服务确认偏好关闭 v2;新会话读取同主体同修订偏好 v2。
  • 预期:原会话关闭且明确保存成功;新会话按 v2 隐藏同修订;1 写 1 读可追踪。
  • 禁止事件:未有服务回执就报告持久成功;把关闭当已读。

B2-BANNER-W03 缺失原子能力只会话恢复

  • 前置:A/B001v1 远端已确认关闭 v2,服务不提供原子条件版本或等价冲突控制;当前会话隐藏;本实例反向恢复降级为仅会话显示。
  • 动作:请求恢复,产生本地 g2;尝试远端安全反向补偿。
  • 预期:B001 本会话显示;远端仍已确认关闭 v2;远端恢复/补偿请求 0,说明不能保证跨设备冲突安全。
  • 禁止事件:先读后无条件写冒充安全补偿;本地串行称跨设备冲突保护;会话恢复称已修改远端。

来源:完整夹具 · 来源与适用边界 · 独立反审。原始草案仅以 b2冻结源稿 存证,不是第二份现行正文。来源语义范围不等于 SAP 对等或平台运行通过。

4. CMP-37 / CMP-38 / LP-PANEL 内容分区与折叠

4.1 用途、不适用与结构边界

面板是同一上下文内有明确归属的内容容器。静态面板不自动可折叠、可移动、可调整大小或可聚焦;折叠是附加交互。卡片主要表达独立对象,面板主要组织同任务的一部分;边框、阴影和背景色不决定语义。横向兄弟视图切换用标签页,浮层集中任务用对话框,双区空间调整用 CMP-39。

结构为恰当层级的标题、可选局部摘要/计数/异常、局部操作、正文与局部状态;折叠变体另有标题中的展开按钮及展开关系。操作工具不嵌进展开按钮,不把整标题行内的“刷新”点击也当折叠。静态标题用真实文档标题关系;不要每个小面板都加地标。

变体:静态分区、单块披露、多块独立折叠、互斥单开、至少保持一块展开;懒加载是装载策略,不是折叠状态。一个容器可只读但仍允许展开、滚动和复制;子字段禁用不等于标题按钮不可用。容器级失败与局部字段失败独立。

4.2 输入、事件与展开集合

输入包括稳定面板 ID、所属对象/任务、标题层级、展开策略与展开集合、装载/缓存策略、原始草稿、可披露摘要、错误定位与当前授权。输出为用户展开/收起意图、最终展开集合、内容读取与局部重试、必要焦点迁移;展开、折叠、滚动和重新布局均不生成数据保存事件。

展开集合按稳定 ID 维护,不按当前数组索引。重排/筛选/标题翻译不改变哪个面板展开。远端“默认展开”只用于尚无本地交互的初始化,不能覆盖当前会话用户刚做的展开决定。若一个必展开项被删除,选仍有权且可用的合理后继并说明;没有可用项时允许空集合,不能强行恢复受限面板满足数量约束。

“至少一开”仅限制对最后一个展开标题的主动收起,保留该标题的可发现性及原因;不能因此阻止撤权清理或进入别的面板。互斥单开时,主动打开 B 可以收起 A,但 A 草稿必须在任务状态中保留。纯装饰动画不参与判断展开事件次数。

4.3 折叠前焦点与子层

用户点击同面板标题按钮收起,焦点保持该按钮。若焦点仍在将被隐藏的内容中,隐藏前先安排有效的可见目标:通常是该面板标题;若由用户已聚焦的 B 标题切换互斥面板,则保持 B 标题,不跳回 A。焦点已经在外部有效位置时不因程序折叠而抢回。

不能只隐藏 DOM 却让焦点/辅助技术停在不可见子控件。面板内容中的菜单、候选列表、提示及编辑子任务属于面板:

  • 无独立草稿的临时子层可按其关闭契约先收起,再完成折叠,最终焦点落可见标题,而不是再次回隐藏字段。
  • 子编辑任务有草稿时,先走其自身离开仲裁;取消折叠则父面板保持展开,子层草稿不丢。不要用“折叠不是关闭”绕过子任务保护。
  • 若独立子模态仍活动,背景程序不得直接卸载它的父容器;可延后非必要折叠,或完成已声明的安全迁移。撤权清理始终优先,不为保焦点保留受限内容。
  • 组字期间的非紧急程序折叠应避免销毁编辑器;用户明确请求则按平台输入拥有者和保存策略协调。不能把组字取消误判为表单取消。

4.4 懒加载、错误、验证与恢复

首次展开可读取内容,但必须保留标题、加载状态和可退出路径。折叠时可保留已授权缓存;如卸载渲染,草稿/错误/必要滚动状态应在安全的任务状态中保存,不能存于已销毁输入节点。折叠不是撤权,隐藏也不是访问控制。

加载失败保留原有获准内容或明确空占位与局部重试,不显示为“无数据”。重新展开在同一有效上下文可恢复已有草稿;缓存过期或对象版本改变时显示刷新/冲突边界,不静默把旧草稿并入新对象。异步响应核验实例、对象、请求和授权代次;折叠中可以安全更新状态,但不能因响应返回自动展开或聚焦。

提交验证发现隐藏字段错误:保留可发现的错误摘要;用户提交后的定位或激活摘要时,先展开所有必要祖先,再等待目标实际可读后定位。不为定位最后一个错误连续跳焦点;不能先 focus 隐藏节点再补展开。互斥组选择当前要定位的错误项,其他错误仍可从摘要逐一进入,草稿不丢。若目标已撤权/删除,移除受限错误详情,用可披露状态解释无法进入。

未经用户定位的后台校验只更新可读摘要,不突然打开用户刚关闭的面板。普通折叠标题不把所有错误全文塞入名称;数量只有在完整且获准时给出,未知数量不猜成零。长内容的滚动恢复以可见且仍有权的逻辑位置为准,不硬恢复越界像素。

4.5 键盘、平台与增长

Web 基线是标题按钮 Enter/Space 切换,Tab/Shift+Tab 正常经过标题与已展开内容;不让面板容器额外吃一个 Tab。本页不新增全局方向键模型,方向键留给字段/列表/滚动。若实现另采用完整复合标题导航,需作为明确适配记录,不能仅做半套键位。展开状态与受控内容关联须真实同步;非折叠标题不加虚假的展开状态。

Apple/Android/HarmonyOS 采用目标平台可访问展开状态、动作与标题语义,不复制 ARIA 属性名。原生 disclosure、分组容器或列表中的展开内容是否保留焦点、可访问树与草稿,仍须逐端测试;本页不承诺存在完全同名控件。窄窗口可从多列转单列,标题、摘要、工具及正文读序一致。RTL 不改变展开集合和字段值;长标题允许换行,摘要不能挡住标题按钮或局部操作。

4.6 精确夹具(全部运行未执行)

  • LP-A-N01 正常:静态分区 A 与可折叠 B;B 中输入未解析文本“1.”,收起再展开。预期原始文本与校验状态保留,写入 0,静态 A 不多出 Tab 入口。
  • LP-A-N02 独立操作:B 标题旁有“刷新 B”;激活刷新。预期只发 B 读取一次,展开状态不变,不提交整个任务,不触发标题折叠。
  • LP-A-F01 内部焦点:焦点在 A 内部字段,程序请求收起 A;其下拉候选仍开。预期先关闭候选并把最终焦点安置到可见 A 标题,再隐藏内容;没有悬空焦点或子浮层漂在页面上。
  • LP-A-F02 子草稿:A 内独立子编辑任务有未保存输入;外部请求折叠 A,用户在离开保护中选继续。预期 A 仍展开,子草稿原样,折叠完成 0 次;不能把子层“取消离开”当“取消编辑”。
  • LP-A-F03 单开切换:A 展开且有草稿,用户聚焦 B 标题并打开 B。预期 A 收起、草稿保留;焦点留 B 标题,B 内容可经 Tab 到达,A 的晚到响应不能把焦点抢回。
  • LP-A-F04 隐藏错误:嵌套面板内字段有错误,用户提交。预期摘要可见;定位时先逐层展开再到唯一当前错误;另外错误仍可逐个定位,未触及区草稿不丢。
  • LP-A-F05 读取失败:首次展开 B 的读取失败,再折叠后重开重试。预期标题、失败与重试可理解;空/失败不同,过期响应不覆盖最新读取,重试不创建业务写入。
  • LP-A-R01 撤权:A 为必须展开的唯一项,包含受限摘要和原始草稿;阅读权撤回后旧读取返回。预期清除受限内容/摘要/待发通告,允许无展开项并给安全说明,不为“至少一开”复活 A。
  • LP-A-L01 增长:长标题、多个局部工具、长字段错误、大字、窄窗口与 RTL。预期标题和工具独立可点,DOM/原生读序合理,折叠按钮名称不包含全部正文,重新展开不丢读位和草稿。
  • LP-A-F06 后台校验:用户刚收起 B 且焦点已在 A;后台发现 B 错误。预期更新获准摘要,不自动展开/抢焦点;用户主动点错误入口时才按规则展开定位。

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

CMP-37 内容分区

用途:组织同一页面的相关内容,例如合同信息、付款信息、附件。解剖:与页面结构匹配的标题、必要说明、正文、分区操作和局部状态。不是每个分区都需要独立地标;过多地标会降低导航效率。

行为:分区操作只影响明示范围,如“刷新付款计划”,不可暗中提交整份合同。懒加载分区进入视口时不得抢焦点;通过目录导航到分区应找到可阅读的起始位置。

校验与失败:分区里的错误在分区标题或摘要处可被发现,具体字段仍有自己的提示。数据不完整可显示已加载部分并说明缺口,不能让汇总结果看起来像是基于完整数据。

例:合同详情的金额区更新失败,基本信息区仍可读;金额区显示旧值与更新时间。

验收:覆盖标题层级、跳转定位、局部重试、跨区错误及隐藏区草稿。

CMP-37 基线正常夹具

刷新付款计划 → 仅刷新该区,不提交整个合同。

CMP-37 基线失败夹具

金额区失败 → 基本信息仍在,旧金额注明时间和缺口。

CMP-38 折叠面板

用途:有清楚分组的辅助或分段内容;关键操作风险和判断依据不可默认折叠后又没有提示。解剖:有标题的展开按钮、展开状态、内容区、必要的数量或异常摘要。

Web 参考模式用标题中的按钮控制面板,Enter/Space 展开与收起,并提供展开状态及面板关联;普通 Tab 顺序仍可到达展开内容。APG Accordion

行为:每个实例应说明允许同时展开多个面板、只展开一个,还是必须至少展开一个。展开不是提交;收起不是清空。异步内容加载失败保留标题和重试,不能把无返回当无内容。

校验:仅当前用户提交的快照仍匹配、且用户仍在本任务时,才可为该提交错误展开相关面板并定位;用户明确激活错误摘要定位也可展开。后台或过期校验不自动展开、不夺焦,沿用 LP-PANEL 与 FORM-SNAPSHOT(见表单校验、草稿与提交)。展开不得关闭另一块尚在编辑的内容而造成丢失。

例:高级计费设置初始折叠,摘要显示已有特殊规则;当前提交快照匹配且用户仍在本任务,或用户明确激活对应摘要时,展开并定位无效字段。后台或旧提交的拒绝只更新其允许更新的状态,不拉回已转往其他任务的用户。

验收:覆盖键盘、标题内多个动作不嵌套、程序展开、长标题、错误定位、焦点在内容中时收起。

CMP-38 基线正常夹具

展开高级设置并编辑 → 收起再展开 → 草稿仍在。

CMP-38 基线失败夹具

当前提交快照匹配且用户仍在本任务,或明确激活摘要定位 → 展开对应区并定位字段,不丢其它编辑区;后台/过期校验及用户已离开时不自动展开或夺焦。

5. CMP-39 / LP-RESIZE 可调分隔与条件尺寸能力

本节是 CMP-39 与上列容器的组合契约,不意味着每个对话框、弹出面板或面板都可调。实例必须登记支持方向、允许边界、当前可理解大小、恢复策略、持久化范围、键盘路径及无需拖拽的单指针路径。未实现或目标平台不支持时,不显示虚假抓手、resize 光标或无法执行的辅助动作,改用自适应滚动/单面板布局。

面板间分隔柄与窗口外框调整不是同一语义。Web 分隔柄采用所选的完整分隔模型:名称说明被调整区域,读出当前值与有效边界;方向键只在真正可调的柄获得焦点时处理。固定位置切换与连续调整分别声明;没有折叠能力时,Enter 不随意隐藏面板。单指针“扩大/缩小/恢复”或预设路径与键盘路径分别验收,不能只提供拖拽和键盘。

调整仅改变呈现,不关闭、不提交、不换对象。开始一次连续调整时,记录有效尺寸、约束/窗口版本和偏好版本作为本次基线,预览增量明确归本次调整拥有。pointercancel、由调整柄拥有的 Escape 或平台确认的调整中断会结束本次预览:只撤销仍归本次调整且版本匹配的变化,恢复到当前边界内仍有效的基线。若外部合法更新已经改变尺寸/约束,保留新状态并重新约束,不盲目回滚旧快照;当前基线已不可用时,采用可访问的有效布局。中断不保存最后的预览,也不自动完成一次偏好写入。键盘、点击预设等离散调整按其已声明的完成事件处理,不能与尚未完成的拖拽混为一谈。

偏好保存仅在产品确有该能力、持久化范围已说明,且发生了明确定义的完成调整/保存偏好意图之后进行;仅打开、恢复、预览或中断都不产生持久偏好写入。调整期间返回的旧偏好加载结果不能覆盖用户刚调整的尺寸;存储失败时保留当前布局,并明示未持久保存。偏好恢复须按当前窗口、安全区、文字大小与有效边界重新约束,不把退出按钮和另一工作区挤掉。无可用空间时转为已声明的单区导航,保留任务/草稿和返回,不为满足旧比例制造不可用区域。

移动 sheet 的已支持高度档位、桌面窗口调整、可脱离的 popover 和 Web splitter 分别登记,不能统一声称跨端相同。平台已有的可访问调整动作也需实测;没有验证时状态仍为未执行。

  • LP-Z-N01 正常:已声明可调整的双面板,用键盘与点击预设分别扩大详情,达到边界后继续操作。预期:尺寸停止于有效边界,当前值说明真实,两个区及退出均可达,业务写入为 0。
  • LP-Z-F01 不支持:普通静态面板,无尺寸能力。预期:无可调柄、resize 光标或虚假辅助动作;长内容可重排与滚动,不因缺少尺寸能力阻断基本任务。
  • LP-Z-F02 失败:用户已调整到当前有效位置,随后旧偏好读取返回,接着保存失败。预期:旧读取不覆盖用户尺寸,本次布局仍可用,明示偏好未保存;不恢复到失效的旧位置。
  • LP-Z-R01 撤权:拖拽中,一个区域的对象被撤权。预期:停止对受限内容的交互与披露,安全的替代区域可达;不能以拖拽未结束为由延迟清理,或恢复旧缓存。
  • LP-Z-L01 增长:把来自宽窗口的偏好恢复到窄窗,增加文字大小并打开软键盘。预期:重新约束尺寸,或改为可返回的单区布局;焦点与退出不被挤走,任务/草稿不变。
  • LP-Z-F03 调整中断:基线尺寸 S0,拖拽预览到 S1 后,分别注入 pointercancel、柄拥有的 Escape、平台中断。预期:回到当前约束内仍有效、且未被外部更新替代的 S0,预览写入偏好 0 次。再在外部更新已把尺寸改成 S2/约束改成 Q2 的情况下复测:取消不得覆盖 S2,重新约束后的布局仍可访问。
  • LP-Z-F04 保存时机:只恢复旧偏好、打开面板、预览后再取消,然后明确完成一次调整。预期:前三种动作持久写入 0 次;只有声明支持偏好且完成意图已发生时才请求保存,保存失败仍保留本次布局与未保存说明。

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

用途:在确需同时查看的两个工作区之间调整空间,例如列表与详情。

解剖:两个面板、可识别的分隔柄、当前尺寸或位置、允许边界,以及可选的折叠/恢复入口。

行为:拖拽之外,同时提供键盘调整,以及无需拖拽的单指针操作,例如点击“扩大/缩小/恢复”或选择尺寸预设;键盘替代不能代替单指针替代,二者分别验收。达到边界后不继续压缩到内容不可用。保存布局偏好时记录适用的窗口/工作区;恢复到较小窗口时需重新约束尺寸,不能把一个面板挤到不可访问。

Web 分隔模式提供可聚焦分隔符、方向键调整及数值语义;官方页面说明其示例和评审仍有未完成部分,因此实现必须补充实际测试,而非仅复制角色。APG Window Splitter

失败:偏好保存失败不阻止本次调整,但说明未保存;数据重载不重置用户当前的拖动。窄空间可转为分步或单面板,保持返回与选中对象。

例:合同列表与详情按用户需要调整,键盘可恢复默认布局;放大文字后详情可滚动,而操作不消失。验收分别覆盖:键盘调整与边界、单指针点击调整/恢复、RTL 方向、拖拽中切窗、软键盘、缩放,以及恢复失效偏好。

CMP-39 基线正常夹具

键盘增大详情 → 到边界停止;点击恢复 → 回到默认有效位置。

CMP-39 基线失败夹具

保存偏好失败 → 本次布局保留并说明未保存;缩窗不挤走退出。

6. B1-SIDE 侧内容与滚动容器

本节只补充侧内容的关联与滚动拥有者。对象切换/草稿保护引用浮层组件:对话框、抽屉与提示中的 LP-DRAWER,模态变化引用 CMP-LAYER-RESP;折叠与尺寸分别复用本篇的 LP-PANEL、LP-RESIZE,不定义第二套层或尺寸协议。

6.1 用途、结构与实例选择

侧内容补充当前主任务;滚动容器解决可用空间内的阅读和操作,不因为有滚动条就成为独立任务、模态层或可调大小面板。优先使用普通文档流;确需两区独立定位时才各自滚动。需要跨对象详情时引用 LP-DRAWER,折叠引用 LP-PANEL,可调尺寸引用 LP-RESIZE,不新增平行的 drawer/splitter 规则。

实例声明:主区和辅助区的关系、辅助区固定对象还是跟随明确选择、各滚动拥有者、可达的进入/返回/关闭动作、是否允许隐藏,以及窄屏呈现。侧内容的标题和范围应能独立解释。辅助区不是当前主任务必需的信息时可收起;关键校验、身份、必要动作不能因为被当成“辅助”而永久隐藏。没有辅助内容时,不保留无名的空白焦点区。

6.2 状态、滚动与焦点

主区选择、辅助区对象、各自的请求/草稿/滚动锚点、面板显隐、尺寸分开记录。主列表排序或键盘游走不偷偷改变固定对象;跟随选择时按 LP-DRAWER 的离开保护处理。新对象加载时不拿旧对象正文顶替;主区失败和侧区失败分别表达,当前仍合法的另一侧保持可用。

滚动位置按范围、对象/查询、视图与有效版本关联;恢复之前先核对权限和目标是否存在,不把 S001 的偏移套到 S002。保留可解释的记录/段落锚点优于盲目恢复像素位置;内容删除或尺寸变化时回到附近的有效位置,不制造空白或隐藏焦点。背景数据追加不强迫用户回顶或追随末尾;只有已声明、且用户当前选择跟随的场景可以自动跟随,用户手动离开末尾后停止。该跟随策略为候选交互,不新增日志业务能力。

非模态两区不能各设焦点陷阱。确保仅用键盘可以进入、滚动并离开需要操作的区域;是否需要可聚焦的滚动宿主,取决于浏览器/平台的实际能力与内部可聚焦内容,不一律给每个 div 增加 Tab 停靠。编辑器、列表等拥有方向键时,不由外层抢键滚动;没有内层键盘所有者时,使用平台原生滚动。指针滚动到边界后是否传给外层,由已声明的布局行为决定,但不得让键盘用户被困住,或让页面关闭手势替代普通滚动。

6.3 安全、响应与遮挡

点击错误摘要进入侧区字段时,应按表单校验、草稿与提交展开必要的祖先,等待目标可见后再定位。滚动负责呈现,焦点负责当前操作,二者不能相互触发无限循环。粘性头部/底部操作区、软键盘、浏览器缩放、固定外壳共同占用视口时,当前操作及退出路径仍须可达;不要用大范围自动滚动打断另一侧正在编辑的用户。

窄屏优先按任务阅读顺序堆叠,或明确单区切换;隐藏区的活动编辑不能被无声卸载。若必须改变模态语义,唯一依据是 CMP-LAYER-RESP。仅宽度变化不发出提交/关闭/对象切换事件;重排不打断输入法组字。撤权时清理与对象相关的正文、锚点文字、辅助名称及子层,只保留不泄露受限内容的安全位置。之前发出的写入遵循原任务回执,不因侧区关闭而声明取消。

Web 粘性元素的遮挡须实测。WCAG 2.4.11 AA 的最低要求是获得焦点的组件不被作者内容完全遮住;本规范以当前操作清楚可见为设计目标,不能把“完全无遮挡”误称为该 AA 条款原文。原生软键盘避让、系统安全区和读屏滚动分别核验;不从 SAP Scroll Container 目录推断跨端 API。WCAG Focus Not Obscured

6.4 组合夹具(全部运行未执行)

机器可读的前置、动作、断言与禁止事件见本组夹具。来源等级及读取边界见本组来源;文档层面的反向审阅不代表真实平台或辅助技术通过。

B1-SIDE-N01 双区滚动与固定对象

  • 前置:主区 R001/R002;侧区固定 R001;双区都有滚动内容。
  • 动作:主区焦点移到 R002;进入侧区滚动;返回主区。
  • 预期:侧区仍为 R001;两区键盘可达、可退出;滚动不触发保存/关闭/对象切换。
  • 禁止:非模态焦点陷阱;外层抢夺输入控件的方向键。

B1-SIDE-F01 局部失败与字段定位

  • 前置:主区可用;侧区 R001 读取失败;R001 同一授权范围内的任务草稿字段 A 原文为 1.,其校验错误已在摘要中;字段 A 位于折叠祖先 P 中。
  • 动作:重试 R001 读取,服务端返回字段 A 为 1 的成功结果;激活已存在的错误摘要中的字段 A 链接。
  • 预期:主区状态保持;读取成功不覆盖原始草稿 1.;P 展开后字段 A 可见且焦点在 A;不产生循环滚动/焦点迁移。
  • 禁止:用读取值替换未提交原文;未授权的草稿恢复。

B1-SIDE-R01 隐藏侧区撤权

  • 前置:侧区已隐藏,但缓存了 R001 的内容/锚点/子层;旧的 R001 读取 r 已发出、尚未返回。
  • 动作:撤回 R001 读权限;旧读取 r 实际送达;重新打开侧区。
  • 预期:正文/辅助名称/锚点文字/子层中的受限内容被清理;只到达安全说明;旧响应不能恢复内容。
  • 禁止:把隐藏等同于安全清理;强行回收外部副本。

B1-SIDE-L01 粘性区软键盘与窄屏

  • 前置:长文侧区,带粘性头部与底部;字段正在输入。
  • 动作:放大/缩窄/打开软键盘;遍历到末尾动作;在组字过程中改变宽度。
  • 预期:当前操作/退出可达;获得焦点的组件不被作者内容完全遮住;任务/原始草稿保留;模态变化只按 CMP-LAYER-RESP。
  • 禁止:重排导致提交或关闭;重建编辑器丢失组字。

B1-SIDE-V01 滚动恢复范围与版本

  • 前置:S001/R001 已记录阅读锚点;S002/R001 显示名相同。
  • 动作:切换到 S002;返回并重新核验 S001;删除原锚点所在段落后恢复;用户在中间段落阅读时,向末尾注入后台追加内容。
  • 预期:不把 S001 的位置套到 S002;仅恢复已授权的有效内容;锚点被删除时选择邻近的有效位置;后台追加后保留当前阅读锚点,不自动回顶或追随末尾。
  • 禁止:显示空白或隐藏焦点;后台追加强制回顶。

B1-SIDE-C01 侧区子层与调整组合

  • 前置:非模态侧区中有一个活动的模态确认子层;父区可调整。
  • 动作:缩窄窗口,同时保持最高子模态活动;按一次 Escape 关闭最上层子模态;父区开始连续尺寸预览;触发 pointercancel;作为配套回归,执行 LP-Z-F03 的外部约束版本更新案例。
  • 预期:缩窄时最高活动模态的隔离保持;一次 Escape 只关闭子层,父任务不关闭;只释放子层拥有的隔离;pointercancel 仅撤回本次调整拥有且版本匹配的尺寸预览;业务写入和偏好写入均为 0;外部更新不被本次撤销回滚。
  • 禁止:一次 Escape 连关父子两层;背景重排取消独立子任务。

7. CT-LIST 列表共享语义

真实父子关系与树表须接续数据表与交互网格契约「B1-TREE:树与树表」;视觉缩进本身不创建树语义,普通列表不自动升级为 treegrid。

7.1 结构与语义选择

结构:有名称的集合、稳定的项目 ID、项目阅读顺序、必要的标题/值、状态、独立操作、分页/加载信息。列表是内容组织方式;视觉上的一行、卡片网格或左右对齐不能直接决定 ARIA 角色。以下五类分别建模,不能统一为“可点击行”。

  • 展示项:同类记录用语义列表及项目;名称—值资料优先用描述列表。只读项目不加 Tab 停点,允许文本选择与复制;0、未知、未加载、不适用、受限分别表示。
  • 输入项:每项包含真实输入及持久标签,组需要组名;草稿、校验、服务端值分开。Tab 进入输入,方向键保留输入原义,不能被外层行吞掉。单/多值选择才考虑原生选择或完整 listbox;listbox option 内不能塞入可独立交互的链接/按钮/复选框。APG Listbox
  • 动作项:执行命令用按钮,导航用链接;整项只有一个动作时可扩大命中区域,但不能吞掉文字选择。多动作使用兄弟控件,不把按钮嵌在整行按钮或链接内;列表样式不自动变为 menu。
  • 对象项:身份、摘要、状态、主入口和可选的选择/展开/更多各自独立。复选框切换选择不打开对象,打开对象不隐式选中,展开不提交。辅助状态不重复拼成无限长的可访问名称。
  • 网格项:纯视觉的 CSS 网格仍可为普通语义列表;严格二维比较用表格;需要复合方向键导航时才采用完整的交互 grid,定义行/单元格、入口、焦点管理及内部编辑转换,不能只加 role 或把子项移出 Tab 顺序。APG Grid

7.2 独立状态、数据与事件

分开记录:项目授权、数据完整性与版本、选择(含跨页选集)、焦点 ID、展开、编辑草稿/校验、行命令请求、集合排序/分页加载。选中不等于焦点,当前详情不等于批量选中,读权限不等于可编辑,行失败不等于全列表为空。

  • 输入:集合与查询版本、稳定记录 ID、原始值与显示文本、顺序/分页游标及总数可信度、选择范围、焦点/展开目标、动作能力、授权代次。
  • 输出:导航、选择、展开、编辑/提交、项目命令、请求更多;每个意图带稳定目标和当前范围,禁止用可见数组索引执行。

跨页选择须说明是当前页、已加载项还是服务端全查询;筛选改变后是否保留选集由明确策略控制并提示,不能静默扩大。

7.3 输入路径、动态变化、失败及增长

普通列表中,自然 Tab 经过真实控件,静态内容由浏览导航读取。按钮 Enter/Space,链接 Enter,复选框 Space;触控时每项操作有不重叠的目标,不依赖 hover 或长按。如采用复合 grid:登记唯一 Tab 入口、方向键/Home/End 边界、内部编辑的进入/退出方式;编辑模式下方向键交给输入,Escape 先处理组合输入/子层再退出编辑,不同时关闭父任务。原生端另行映射,不照抄 Web 按键。

虚拟化需保留稳定 ID、逻辑位置和已知集合大小语义;总数未知时不得伪造。正在聚焦/编辑的项不被无声回收;保留草稿与稳定的编辑宿主,输入法组合优先,滚动、追加、排序或回收均不得隐式提交/取消/退出编辑。退出策略只能在明确的用户授权后执行,不能把实现上的回收需要当作授权;无法稳定宿主时,暂缓回收或切换为保留该编辑项的呈现。追加不推走阅读锚点,排序不把焦点跳到相同索引的新对象;新数据绑定原 ID。删除聚焦项时,焦点转到原位置的下一项,无下一项则到上一项,空集则到集合标题;焦点不在被删除项上时不抢焦点。加载更多失败时保留已有项和重试,不清空选择或草稿。

权限撤回时先清理受限的值、名称和动作,并取消其待发事件;焦点在被移除项上时,移到安全的邻项或集合说明。保留未授权项的选中数量也可能泄漏范围,须依据披露规则处理,不能仅隐藏行。长身份与状态允许换行,操作区不遮盖正文;列表与网格在窄屏重排时保持逻辑顺序,不能为了布局反转 RTL 数据顺序。

7.4 文档夹具(实际均未执行)

  • CT-LIST-N:初态为 R-001/R-002 对象列表,R-001 未选,且有“打开记录 R-001”“选择记录 R-001”“更多”;事件:Space 选择后,Enter 打开 R-002;预期:选集只含 R-001,详情为 R-002,两个意图分开,且无嵌套交互。
  • CT-LIST-F:初态已加载 R-001/R-002 并选择 R-001,总数未知;事件:加载更多失败;预期:两项、选择和位置保留,只显示“已加载 2 项”,不写“总共 2 项”;重试入口可达。
  • CT-LIST-R:初态焦点在 R-001 的“更多”按钮,R-002 仍可访问;事件:R-001 撤权,且旧回包到达;预期:R-001 的受限内容/名称/选中泄漏被清理,焦点移到 R-002 的合理入口或集合说明;旧回包不重建 R-001。
  • CT-LIST-L:初态为两个不同 ID 的同名长中文记录,另含阿拉伯文摘要;事件:窄屏+文本放大+逐项键盘操作;预期:允许披露的区分信息可读,各动作的稳定目标准确,完整名称可查,文字选择不触发导航。
  • CT-LIST-I:初态输入项 R-001 含数值输入,光标在值中;事件:Left 及输入法 Escape;预期:按输入本义移动/取消组合,不将焦点移到上一行,不触发外层关闭;字段错误与草稿保留。
  • CT-LIST-G:初态为纯视觉两列卡片网格,每张卡片内部有两个链接;事件:Tab 连续导航;预期:所有链接自然可达,未套 grid 角色。若另选复合 grid 实现,必须另测单入口、方向键、编辑切换的完整模型,不把本夹具计为其通过证据。
  • CT-LIST-V:初态焦点在 R-002 的输入上,虚拟化即将把它移出视窗;事件:追加/排序;预期:保持 R-002 的稳定焦点、草稿与编辑宿主,输入法组合不中断;因滚动/追加/排序/回收产生的提交、取消和退出事件均为 0,不能把输入与同索引的 R-003 串位。只有用户明确授权退出后才按声明策略退出,未授权则保留宿主或暂缓回收。

来源和证据限制见本组来源。

8. CMP-40 记录列表

用途:以连续项目展示同类记录,适合单列摘要与窄空间;需要严格跨列比较时改用表格。

解剖:列表名称、项目身份、摘要、状态、主入口、可选的选择与项目动作。

例:待办列表包含合同名、任务类型、期限、处理入口;已处理项从列表消失前反馈结果,并保留返回定位。

验收:覆盖排序变化、重名对象、项目删除、已选但未显示的项、辅助技术顺序及空列表。

CMP-40 基线正常夹具

选 A 后打开 B → 选择与详情身份分别保留。

CMP-40 基线失败夹具

追加失败 → 现有项目保留并可重试,不能清空列表报“无数据”。

9. CMP-41 描述列表

用途:展示对象的名称-值关系,如合同基本信息;不承担二维记录比较。

解剖:字段名称、值、必要单位、状态及有权限的来源入口。长值可换行,不依靠截断制造整齐。

行为:默认只读,可选择复制;局部编辑用独立动作标示范围,不能使点击值和复制值相冲突。多值字段有合理语义,不把三段无关联的文本拼在一起。

状态:零、缺失、未加载、无权限、不适用和计算失败分别表达。链接与附件作为独立可操作的值;受限值即使在视觉上遮盖,也不得残留可复制的原文或可访问名称。

例:年度租金显示币种及期间;值未知时显示“尚未确认”,不能显示为“0.00”;来源入口按权限提供。

验收:覆盖名称和值的关联、窄布局重排、只读复制、长组织名称、单字段加载失败和数据脱敏。

CMP-41 基线正常夹具

年租金为 0 → 显示币种、期间与 0;复制时保留必要单位。

CMP-41 基线失败夹具

权限撤回 → 从应用可控内容/可访问树中移除受限值,并停止后续受限复制,显示允许披露的状态。

10. DSP-AVATAR 头像与头像组

10.1 用途与解剖

头像是人员、团队或其他实体的身份辅助,不是身份验证证明,也不从照片推断年龄、性别、职能或在线状况。解剖:身份图像/可授权缩写/通用占位、可读身份、可选的已证实状态、可选的独立打开动作。邻近姓名已等效表达身份时,图像可作装饰处理;没有邻近姓名时,必须提供允许披露的完整身份名称。身份未知时用“未识别成员”等中性说明,不随意生成姓名。

头像组表达成员集合及其次序,不表达任意同名图像的堆叠。须明确组标题、成员唯一 ID、排序依据、可见成员、隐藏数量/未知数量、展开入口及集合完整性。只读摘要可使用一个组级可访问描述;可逐项打开成员时,每个真实成员动作独立命名,不用组级 label 吞掉子操作。

10.2 变体、生命周期与隐私

单体呈现变体:图像、由名称派生的缩写、通用人/组图形。组呈现变体:非交互摘要、成员分别可操作、单入口查看完整成员。不要同时给整组和所有子项设置同一个点击覆盖层。加载、图像失败、身份未知、受限、过期分别表达,加载占位不能永久冒充身份。

回退顺序为:已授权图像 → 按产品语言规则生成且获准披露的名称缩写 → 中性图形;名称本身受限时不泄漏缩写。图像错误不清空已授权的姓名,不无限重试损坏的 URL。缩写按字素簇和姓名规则处理,不硬取 UTF-16 的前两位;中文、复姓、无空格姓名、组合字符和表情无需强行转为英语首字母。企业图片未经权限检查不可发送到第三方头像服务;不从邮箱 hash 自动外发查询头像。

输入包括实体类型、稳定 ID、可披露名称、图像授权来源及有效期、回退规则、状态来源和组成员范围。输出包括打开成员/查看全部/重试图像的意图;选择成员另行复用选择组件。头像点击不自动切换账号或改变负责人。

10.3 组溢出、无障碍与增长

溢出“+3”必须说明是另外 3 名可披露成员,不暗示全部系统人数。总数未知时显示“查看其他成员”,权限不足时不暴露精确人数。显示容量随容器变化只影响呈现,不改变排序/选择/服务端集合。视觉叠层不能改变逻辑阅读顺序;RTL 重新布局仍保持排序定义。展开的面板或对话框需要标题、关闭入口、焦点进入与返回;成员列表分页时保留已加载项和阅读位置。

交互头像使用按钮或链接,Enter/Space 规则随语义而定;触控时显式提供打开成员/查看全部的入口,不依赖 hover 卡片。小头像的命中区域不得互相覆盖;重叠导致无法独立点击时,改为单入口组。键盘焦点必须不被前景头像遮住。身份和组标题允许长名称换行;缩写只是视觉替代,不能作为区分两个同名实体的唯一方式。

10.4 文档夹具(全部运行未执行)

  • DSP-AVATAR-F01:初态 U-001 姓名“成员甲”,授权图像加载中;事件:图片 404;预期:展示获准的缩写/通用回退,仍读作“成员甲”,不永久显示加载动画。
  • DSP-AVATAR-F02:初态组 G-001 有 5 名可见成员,容量 2;事件:激活“查看另外 3 名成员”;预期:完整列表按原排序显示 5 名,焦点在面板的合理起点,关闭后返回原组入口。
  • DSP-AVATAR-F03:初态组仅知道已加载的 2 名,下一页未取到;事件:下一页失败;预期:保留 2 名与重试,不写“共 2 名”,也不捏造“+3”。
  • DSP-AVATAR-F04:初态 U-002 的姓名/图像/缩写可读;事件:撤权;预期:三者均移除,允许显示中性身份状态;旧 hover 卡片和可访问名称同步消失。
  • DSP-AVATAR-F05:初态两个不同 ID 的同名成员,其中一名为阿拉伯文长名称;事件:键盘逐项打开;预期:使用允许披露的区分上下文命名,目标 ID 各自准确,RTL 不反转成员业务顺序。
  • DSP-AVATAR-F06:初态为窄容器中的重叠可交互头像;事件:文本放大及单指触控;预期:无隐藏命中点,溢出可点;必要时切换为单入口组,而不是挤成无法操作的微小图像。

11. DSP-IMAGE / DSP-PREVIEW 图像与预览

11.1 图片语义、结构与状态

图像用于传递有意义的视觉信息或作装饰;文件预览用于检查已授权资源的内容,不是上传、编辑、签署或来源真实性的证明。图片解剖:资源、替代内容、可选的说明/来源/时间、加载区域、失败处理;预览在此之外再加文件身份、位置/页码、视图变换、关闭/返回、可用的下载或外部打开入口。只有真实允许时才展示下载,不把预览权限等同于下载权限。

语义变体:装饰、信息图片、作为动作内容、复杂图示。容器变体:就地展示、内联预览、模态预览。加载状态独立:首次加载、可读、部分页加载、失败、授权失效、格式不支持。

图片 alt 按当前用途写:装饰或邻近文字完全等效时用空 alt;信息图片给出有意义的简述;复杂图需要文字等效内容;图片作为按钮唯一内容时,名称表达动作。文件名不是视觉内容说明;OCR 文本未经校验不承诺等效。以上基于 W3C 决策树提炼。W3C 图片替代文本

11.2 值、变换与交互

输入:文件/资源 ID、版本、授权范围、媒体类型、尺寸或页数可信度、替代内容、初始页/缩放、实际支持的变换与恢复规则。输出:打开/关闭、切页、缩放、旋转、平移、重置、重试或外部打开意图;仅视图变换不修改原件。若产品支持裁切/编辑,进入独立编辑任务并说明保存/取消,不能借预览按钮静默修改原图。

缩放支持按钮或预设,旋转支持按钮,平移支持方向控件或可键盘滚动的视口;捏合、拖动和滚轮只是增强。每个手势均有无需拖拽的单指针等效路径;重置恢复到明确的适合视口状态。显示当前可理解的缩放/旋转/页码;到达范围边界后不继续累计无效变换。页面本身的放大不被预览拦截。方向键仅在预览画布获得焦点并明示模型时处理,不劫持文本输入、读屏浏览或整页滚动。

模态打开时将焦点移入,Tab/Shift+Tab 限制在模态内。Escape 先遵循输入法组合状态及最高子层仲裁:组合输入/子菜单先消费按键,单次按键不得同时关闭子层与预览;无优先消费者时关闭预览,并另提供可见的关闭入口。关闭后的焦点沿浮层组件:对话框、抽屉与提示的 LP-G05 按原因处理:仅在仍需恢复时回到有效的触发入口,入口消失时选同任务的邻近记录或区标题;明确进入新任务时由目标接管;用户已在有效位置时不抢回。长内容可从标题取得初始焦点,不将全部文本塞进单一描述。只有背景真正不可交互时才标记 modal。上述 Web 焦点模型参考 APG Dialog。非模态预览不伪造焦点陷阱,返回/切换路径另行明确。

11.3 PDF、失败、增长和安全

PDF 专门记录总页数是否已知、当前页、页面加载/渲染错误、搜索能力与搜索范围。仅为图像扫描时不宣称可检索;搜索“无结果”和“尚未完成”不同。预览壳符合无障碍要求,不代表 PDF 有标签、正确的阅读顺序或表格语义;需提供可访问的原文件/等效文本,若无则明确已知限制。允许用外部阅读器打开需经授权并说明离开路径,不能承诺第三方阅读器一定可用。

断网/解码失败时,保留允许保留的已加载内容及文件身份,给出局部重试;授权失效时优先遮断,并清除应用可控的像素、替代文本、blob 引用和缩略图缓存,不把权限失败当作空文件。下载链接不得泄漏令牌;日志不记录资源秘密。长标题换行;工具栏变窄时重排或进入有名称的菜单,关闭与重置始终可达;RTL 镜像工具栏的逻辑位置,不镜像图片内容、签名或页码数据;“下一页”以文档阅读顺序说明。

11.4 文档夹具(全部运行未执行)

  • DSP-IMAGE-F01:初态 R-001 包含已授权的信息图,且文字说明可用;事件:图片解码失败;预期:保留说明与失败/重试,读屏不重复文件名三次,不把显示空白当作成功。
  • DSP-PREVIEW-F02:初态预览入口在 R-001 行;事件:Enter 打开、Tab 遍历、缩放+旋转、Escape;预期:焦点进入有名称的预览,控件可到达,原文件不变,关闭后回到原入口。
  • DSP-PREVIEW-F03:初态为缩放 200% 的图像;事件:用户只用单指点击平移控件与“适合视口”;预期:可检查各边缘并恢复,无需拖动/捏合。200% 为夹具输入,不是批准的字号/尺寸。
  • DSP-PREVIEW-F04:初态 PDF 已加载第 1 页,总页数暂未知;事件:第 2 页请求失败;预期:第 1 页保留,不报“2/2”,错误区可重试;未完成的搜索不能报 0 结果。
  • DSP-PREVIEW-F05:初态预览已打开,图片含受限文字;事件:权限撤回;预期:应用可控的画布/图片/alt/缩略图被移除,撤权说明与关闭可达,不让重试绕过授权。
  • DSP-PREVIEW-F06:初态为 120 字符的文件名、RTL 界面、窄屏;事件:文字放大;预期:标题可读,关闭/缩放菜单可达,图片本体不左右翻转。
  • DSP-PREVIEW-F07:初态预览入口所在记录被后台删除;事件:关闭;预期:焦点到列表标题或明确的相邻记录,不无提示地落到文档 body。

来源与适用范围见展示消息来源登记。

  • Geist Badge:读到用途、变体、静态与交互边界及最佳实践;借鉴静态 badge 与动作分离,不复制其颜色名、英文大小写规则、单行数量限制。
  • Geist Avatar:读到单体/组、叠层与回退最佳实践;借鉴组与身份替代,不复制固定 px 和英语首字母规则。
  • OUDS Web Badges 1.5:读到类型、语义、辅助文本、计数、disabled 及定位;借鉴文字说明和计数上下文,不把视觉 disabled 自动当作交互禁用。
  • Stripe Apps Badge:仅读到入口用途与 v8/v9 索引;版本正文读取未成功。不是 Sail 证据。
  • W3C 两项正文见本篇“图像与预览”一节;SAP 逐 URL 读取结果、16 条目录定位和未读条目见 display-contracts-sources.json。本文不复制外部正文长段,不以题名/目录证明行为。

12. B3-CAROUSEL:轮播与顺序浏览

本节是经独立反审的通用深契约候选,设计输入沿用 D01–D08。真实服务、平台能力与运行结果仍须证据,全部运行未执行。以下约束继续保持:七个 role × 固定 step、三个文字角色各九档、每个独立任务最多一个主操作。

用途

用于有理由逐项浏览的有序展示集合,例如获准内容示例或同一对象的图片。先问静态列表能否更清楚;选择轮播时,始终提供同一获准内容的静态列表/查看全部路径。该替代路径保留稳定身份、名称与当前对象,不自动下载,也不绕过权限。

首期范围与非用途

首期是一项可见、有限且完整的有序条目身份集合;条目媒体可以懒载。数量尚未知或只取得部分身份集合时,保持加载/部分列表与真实的“数量未知”,不把已载数量当总量,不启动自动轮换。

以下不在首期:未知流式集合、多项复杂可视窗口、嵌套轮播、无限复制循环、视频自动播放、需要就地编辑的表单。重要警告、必须阅读的条款或唯一的任务主操作不藏在轮换项里。

结构

  • 可理解的标题/容器名;
  • 当前条目内容与名称;
  • 位置说明;
  • 上一项/下一项;
  • 可选的有名定位按钮;
  • 静态列表入口;
  • 若启用自动能力,另有稳定的启停控制和状态原因。

内容内只容纳阅读及明确的导航链接,独立编辑任务在轮播外完成。静态模式不伪造轮播角色;当前项不等于用户的业务选择。

边界与定位按钮

首期默认首尾不循环:首项的上一项、末项的下一项可发现但不可执行,原因清楚;激活时不变化,也不发事件。确需循环时另立变体并审计,不以克隆首尾项偷偷实现。定位按钮须能由内容名辨认;项目多到定位按钮妨碍阅读时改用静态列表,不只留下无名小圆点。

需分别记录的身份

实例/范围、集合修订、稳定条目 ID 及顺序、当前 ID、焦点所在控件、条目内容修订/读取请求/授权代次、手动或自动意图、临时暂停原因与停止原因。位置索引只是当前集合的派生显示,不作事件目标。

状态

状态至少包括:

  • 身份集合:加载/失败/空/完整;
  • 当前媒体:加载/成功/失败;
  • 当前项/首末边界;
  • 播放:手动/自动等待/自动运行/悬停暂停/显式停止/环境停止;
  • 可读/撤权。

只有一项时,去掉无意义的切换与自动控制,仍可阅读原内容;零项显示空状态;失败不变成空集合。

切换、失败与晚到响应

用户请求下一项后,当前 ID 立即进入目标项的已命名加载位,焦点留在控制上;读取失败时保留该目标及重试/返回,不自动跳到下一张“好图”。晚到的旧项响应只可更新仍获准的对应缓存,不能切回旧当前项、移动焦点,或错误地通告当前项成功。每次呈现/通告都复核实例、集合/条目修订、请求身份与授权。

重排与删除

重排保留仍有效的当前 ID,并更新其真实位置说明;相同索引上的新对象不能接管身份。当前项被删除时停止自动,按旧顺序先取仍有权的后继,再取前驱;都没有则显示空状态。焦点已在外部时不抢回;若内容中的实际焦点将消失,先迁至可见且仍可用的轮播控制或状态说明。集合增删不自动启动轮换。

启动条件

默认没有自动启动。实例必须显式声明具有自动能力;只有用户主动“开始自动切换”才形成运行意图。间隔与过渡形式由实例按内容可读性声明,本稿不设品牌时间数值。看完后不推断已读,也不保存用户偏好。

只有同时满足以下条件才允许计时:集合完整、多于一项、当前内容就绪、文档与应用活跃、容器在有效可见区域、未减少动态效果、没有阻断性的焦点/子层/错误,且无悬停。相关环境状态未知时按不满足处理,保持手动能力。

事件与恢复条件

事件 状态及恢复条件
初始加载、重开、集合更新 保持手动/停止;不从缓存恢复自动意图
焦点进入轮播任一元素,或运行时移到另一个内部元素 停止并清除运行意图;仅移出焦点不恢复
用户在启停按钮明确开始 清除先前的停止意图;焦点可留在该启停按钮,不因本次激活立即自停。若浏览器未把焦点移离某个内容链接,则不运行并说明焦点阻断;不强搬焦点
鼠标进入 暂停计时,但保留既有的明确运行意图;鼠标离开时,仅在该意图仍有效且无其他停止/阻断时重新开始完整间隔,不追赶遗漏项。悬停中按“开始”可处于“已请求、待离开悬停”状态,必须显示暂停原因
用户停止、手动前后/定位、打开静态列表 清除运行意图,直到再次明确开始;一次手动动作最多切换一次
页面隐藏、应用失活、容器离屏、进入独立子层、减少动态效果变为开启或未知 停止并清除运行意图;返回可见/活跃、子层关闭或偏好恢复都不自动续播
当前媒体等待或失败、身份集合不完整、撤权/删除 停止;加载成功/重试成功/重新授权都不自动续播
到末项 停止;若提供重播,入口明确为“从首项开始自动切换”,一次激活先到首项再开始完整间隔;普通下一项仍不循环

减少动态效果

减少动态效果开启或状态未知时不提供实际自动运行,原因可读;静态切换仍可用。自动内容轮换和视觉过渡是两层:即使关闭了位移动画,也不能绕过上述自动停止规则。

计时器失效

计时器绑定实例、集合修订、当前 ID、播放代次与授权。停止、暂停、重启、手动切换与环境变化都使旧的到期回调失效;回调触发时复核全部条件,只执行一次合法切换,不能靠已排队的回调在后台连跳。单次媒体加载完成不产生下一项意图。

Web 键盘

Web 首期用普通按钮控制和自然 Tab 顺序,不为整个容器抢占左右键;Enter/Space 按按钮激活一次,上一项/下一项/启停后焦点仍在按钮上。按钮到达边界时保留可读的位置和不可用原因,避免刚切换就失焦。可选的定位按钮逐一有名;若未来改为标签页型,必须完整继承 CMP-22,而非只加 tab 角色。

语义与通告

按 APG Carousel 选用适当的 group/region、可理解的容器/条目名称及状态通告。启停入口位于可轮换内容之前,名称说明下一动作。自动轮换不逐项播报;手动变化只作适当的轻量通告。非当前条目不能残留可聚焦入口或错误暴露的阅读树;动画副本不制造重复 ID、重复操作或重复名称。只有数量完整且获准时才使用“当前位置/总数”。这些原则不证明 Web 实现或辅助技术已通过。

触控与原生平台

触控有明确的前后/定位入口;滑动可作增强,不是唯一方式,手势中断不切换,不抢系统返回。iOS/Android/HarmonyOS 分别采用平台的名称、分页/当前项与可访问动作;没有原生支持证明时,使用简单控件/静态列表候选,不把 ARIA 属性或 Web 键位照搬成原生契约。外接键盘、触控读屏、窗口/应用生命周期需逐端实测。

RTL 与内容增长

RTL 维持逻辑前后和真实顺序,箭头/读序成组适配;标识和位置数字不反转。长标题、正文增长、大字或窄屏不截掉必要内容/控制,不用固定媒体高度裁切文本;可自然增长并切换到静态列表。切换布局时保持当前 ID,且不重新启动自动。

12.5 精确夹具(全部运行未执行)

执行前按实际平台冻结版本、视口、方向、输入方式、能力前置,以及每个独立子轮的唯一预期;测试参数不等同于产品全局默认值。以下每个夹具的实际运行均为未执行。

  • 前置:集合 v1 完整有权 A/B/C,当前 A,自动意图 false;焦点在下一项按钮。
  • 动作:Enter 一次;再激活下一项到 C;再激活边界处的下一项。
  • 预期:第一次仅到 B 且焦点仍在按钮;第二次到 C;第三次当前仍为 C,边界原因可读;写入 0。
  • 禁止事件:一次按键加合成 click 切两项;到末项失焦;自动循环回 A;业务选择/写入。
  • 规则:B3-CAROUSEL-SCOPE、B3-CAROUSEL-KEY
  • 前置:A/B/C 完整且媒体就绪;用户已明确启动自动;焦点在外部。
  • 动作:Tab 进入轮播控制;Tab 离开轮播;等待原定的下一个到期回调。
  • 预期:进入时停止并清除自动意图;离开后保持原当前 ID;旧到期回调无效;只有再次明确启动才可恢复。
  • 禁止事件:blur 恢复自动;焦点进入后自动换项;焦点被移入内容。
  • 规则:B3-CAROUSEL-PLAY、B3-CAROUSEL-KEY
  • 前置:F02 已停止;启停按钮可用且焦点在其上,环境全部合格。
  • 动作:Space 开始;焦点保持在启停按钮上,直至合法计时到期;再 Tab 到内容链接。
  • 预期:明确开始后允许焦点停在该按钮上并执行一次轮换;按钮名称说明“停止”;Tab 到另一内部元素时立即停止并清除意图。
  • 禁止事件:本次启动被按钮自身的 focus 立即取消;自动切换移动按钮焦点;焦点在新内容上时继续轮换。
  • 规则:B3-CAROUSEL-PLAY
  • 前置:自动由用户明确启动,且无其他阻断;当前 A。
  • 动作:指针进入轮播;等待旧定时回调;指针离开;另一次在 hover 暂停中 Tab 进入再离开,并移出鼠标。
  • 预期:第一次 hover 不切换;离开后重新开始完整间隔,可继续原意图;第二次焦点进入清除意图,鼠标与焦点离开均不恢复。
  • 禁止事件:hover 期间换项;补跳遗漏帧;鼠标离开覆盖焦点停止。
  • 规则:B3-CAROUSEL-PLAY
  • 前置:自动运行中,当前 A;已排计时器 g1。
  • 动作:分别独立测试文档隐藏、应用失活、容器离屏;恢复可见/活跃后交付 g1。
  • 预期:各事件均停止并清除自动意图;恢复后保持当前项;g1 不切换;需新的明确启动。
  • 禁止事件:后台轮换;恢复后追赶连跳;仅动画暂停而条目照样变化。
  • 规则:B3-CAROUSEL-PLAY
  • 前置:自动运行中,当前 A;允许观测偏好或可见性变化。
  • 动作:偏好变为减少动态效果;再变为未减少;另测初始偏好/可见性未知时点击开始。
  • 预期:偏好开启时立即停止;恢复偏好不续播;未知时自动不运行且原因可读;手动静态切换仍可用。
  • 禁止事件:移除过渡动画但继续自动;把未知当允许;恢复偏好后自动运行。
  • 规则:B3-CAROUSEL-PLAY
  • 前置:只取得身份 A/B,但总范围未知;另有完整的单项集合 X 与完整的空集。
  • 动作:请求自动;读取集合失败;分别呈现单项与空集。
  • 预期:未知时显示已载/总数未知,不自动;失败不是空;单项没有无意义的切换;空集有安全说明;不把 A/B 当全集。
  • 禁止事件:伪造“共 2 项”;失败时显示无内容;单项循环计时;虚构条目。
  • 规则:B3-CAROUSEL-SCOPE、B3-CAROUSEL-STATE
  • 前置:完整 A/B/C,当前 A 已加载;B、C 媒体未加载;用户手动下一项到 B,读取 b1。
  • 动作:再手动到 C,读取 c1;c1 失败;b1 成功;重试 C,请求 c2 成功。
  • 预期:当前始终为 C,并保留 C 的加载/失败/重试身份;b1 不切回 B,也不通告 C 成功;c2 就绪后仍为手动;焦点不被抢。
  • 禁止事件:旧 B 覆盖 C;失败时跳过 C;重试成功后自动续播;晚回包跳焦点。
  • 规则:B3-CAROUSEL-STATE、B3-CAROUSEL-PLAY
  • 前置:v1 = A/B/C,当前 B;焦点在 B 的内容链接上;自动曾运行,但已因焦点停止。
  • 动作:集合重排为 C/B/A;随后删除 B,且 A、C 仍有权。
  • 预期:重排后当前仍为 B 并更新位置;删除时按删除前的顺序取 A 作为后继,停止自动;焦点先迁至可见控制;没有项时显示安全空状态。
  • 禁止事件:数组索引把当前变为 C;隐藏后仍持有 B 内的焦点;删除触发数据保存;重新启动自动。
  • 规则:B3-CAROUSEL-STATE
  • 前置:当前 B,读取 b2 中;预览/名称/可访问树/缓存中可能有 B 的副本。
  • 动作:撤销 B 的读权;交付旧授权下的 b2 及旧计时到期。
  • 预期:停止自动;受限 B 在各处由应用可控的副本被清理;安全的后继/说明可达;旧响应与计时不能恢复 B。
  • 禁止事件:只加遮罩而保留可访问的秘密;晚回包复活;输出已撤权的导航。
  • 规则:B3-CAROUSEL-STATE、B3-CAROUSEL-PLAY
  • 前置:当前 A,完整 A/B/C 就绪;用户开始,生成 g1。
  • 动作:用户停止再开始,生成 g2;依次交付 g1 和 g2 的到期回调。
  • 预期:g1 无效;g2 至多把 A 切到 B 一次;当前与位置一致,新的间隔独立开始。
  • 禁止事件:g1 切到 B 后 g2 立刻切到 C;重启后追赶;过渡结束时另切一次。
  • 规则:B3-CAROUSEL-PLAY
  • 前置:当前 B,完整 A/B/C 就绪;自动已明确启动。
  • 动作:合法到期到 C;等待后续回调;激活“从首项开始自动切换”。
  • 预期:在 C 处停止并清除意图;多等也不循环;重播明确地一次到 A,然后重新开始完整间隔;普通下一项始终没有回到首项的副作用。
  • 禁止事件:未明示的循环;重播同时到 A 又到 B;边界处的下一项启动自动。
  • 规则:B3-CAROUSEL-PLAY
  • 前置:当前 A 可见,B/C 非当前;B 含可导航链接;Web 辅助树与 Tab 路径可检查。
  • 动作:依序 Tab;切到 B;另测自动运行时切项。
  • 预期:A 期间不能 Tab 到或读出非当前 B/C 的操作;手动到 B 时有适当的简短状态通告;自动切换不逐张打断;返回控制时不移焦。
  • 禁止事件:把离屏 CSS 定位当作隐藏而内容仍可达;重复的克隆 ID/操作;每项强通告。
  • 规则:B3-CAROUSEL-KEY
  • 前置:A/B/C 完整,当前 A;实例若提供滑动增强,系统返回手势有效。
  • 动作:开始滑动后 pointercancel/系统取消;点击有名的下一项;另测无滑动能力的情况。
  • 预期:中断后保持 A;按钮一次到 B;无滑动时仍能前后切换和查看全部;不截获系统保留的手势。
  • 禁止事件:中断后按最后的预览切换;只剩拖动入口;一次触控重复跳转。
  • 规则:B3-CAROUSEL-KEY
  • 前置:当前 B,长标题/正文与 RTL 混排 ID R-001;自动运行中。
  • 动作:按目标端放大/窄化;打开静态列表并定位 B;返回轮播。
  • 预期:正文/控制可读,逻辑前后与读序一致;R-001 不倒置;静态列表是同一获准内容并定位到 B;返回后仍为 B,且自动已停止。
  • 禁止事件:裁掉唯一内容;缩小字号掩盖溢出;静态列表泄漏无权项;返回后自动续播。
  • 规则:B3-CAROUSEL-SCOPE、B3-CAROUSEL-KEY、B3-CAROUSEL-PLAY
  • 前置:自动运行中;内容链接可打开轮播外的独立任务;另测指针点击“开始”但焦点仍留在内容链接上的平台。
  • 动作:打开独立任务再关闭;随后测试焦点仍在内容链接时点击“开始”。
  • 预期:打开时停止,关闭后不续播;焦点仍在内容链接时不运行并说明阻断,不为启动而强搬焦点。
  • 禁止事件:关闭子层后自动继续;旧计时切掉父内容;无视内部内容焦点而启动。
  • 规则:B3-CAROUSEL-PLAY、B3-CAROUSEL-KEY

来源

来源限于已读的 W3C APG 轮播及 CSS Color 4 所列局部;不扩展为 SAP 等价或平台实现证明。详见来源与边界、完整夹具、独立源稿反审。冻结原稿保留当时的发布状态,仅作历史证据。

13. 组合验证、来源与主档索引

容器管理布局、阅读结构、局部状态与焦点连接,不决定业务流程和数据计算。容器折叠或隐藏不能替代权限控制;不可见内容也要遵守数据访问与缓存规则。

综合例:合同详情由描述列表、付款计划分区、附件记录列表与高级设置折叠面板构成。附件上传失败只更新附件区;高级设置的错误可从顶部摘要定位;窄窗口改为单列后,标题、值、单位、动作的顺序仍正确。

测试当前全部未执行。按键盘、读屏、文字放大、窄窗口、动态插入删除、请求失败、局部权限和恢复布局记录结果。官方来源核查:2026-10-18。工作区组合见复杂数据工作模式。

本节只提供追踪导航;完整契约及基线正常/失败夹具已归入同名组件主节。CMP 编号只用于规范追踪,不是组件 API;用途、结构和变体见同名组件主节。输入/输出指可观察的信息与意图,不把意图当作业务完成。正常与失败列均为“前置条件 → 动作 → 预期”,实际平台执行全部为未执行。键位为已注明的 Web 模型,原生端按本章平台映射另行验证;触控必须有显式可点入口,不依赖悬浮或拖拽。

  • CMP-36 卡片:本页「CMP-36 / B1-CARD 数据卡片」
  • CMP-37 内容分区:本页「CMP-37 / CMP-38 / LP-PANEL 内容分区与折叠」
  • CMP-38 折叠面板:本页「CMP-37 / CMP-38 / LP-PANEL 内容分区与折叠」
  • CMP-39 可调分隔:本页「CMP-39 / LP-RESIZE 可调分隔与条件尺寸能力」
  • CMP-40 记录列表:本页「CMP-40 记录列表」
  • CMP-41 描述列表:本页「CMP-41 描述列表」