bootstrap-2-3-2 Fieldset
可移植 fieldset 原子草稿。
Draft 定义与所有权
Section titled “Draft 定义与所有权”C-FIELDSET-0001 独立定义此被动分组;C-FIELD-0001 明确排除 Fieldset,不能替代它。P-BOOTSTRAP-2-3-2-FIELDSET、P-BOOTSTRAP-2-3-2-FIELDSET-LEGEND 与 P-BOOTSTRAP-2-3-2-FIELDSET-DESCRIPTION 从 0.3.0-alpha.1 起为 draft;编目不等于稳定准入。T-BASE-FIELDSET-0001 记录验收计划与边界。
Root 拥有分组语义与 effective disabled:本地 disabled 或外层 Fieldset 策略。嵌套分组不遮蔽祖先,重新启用祖先保留本地限制。参与的 Field 消费此策略并自行拥有校验失效处理。Fieldset 不猜测任意控件,也不拥有值、编辑器、校验、提交、重置或额外焦点目标。
公开 API 与嵌套策略
Section titled “公开 API 与嵌套策略”Root Props:disabled?: boolean(默认 false)、ariaLabel?: string(默认空字符串)。Legend 与 Description 没有声明 Props。三者都暴露只读 effective disabled 状态;通过 Root Props 改变策略,不写 expose 状态。
以 outer → middle → inner 三层 Root 为例:
- 只有 outer disabled 时,三层都 disabled。
- 设 middle disabled 后启用 outer:middle 与 inner 仍 disabled。
- 再启用 middle:inner 随之启用,除非其本地 disabled 仍为 true。
部件与无障碍关系
Section titled “部件与无障碍关系”- Root 接受 disabled 与 ariaLabel,暴露 effective disabled 并渲染子内容。
- Legend 是可选的被动命名内容;Description 是可选的被动帮助内容。两者暴露继承 disabled,不添加 Tab 停靠或激活行为。
- Root 声明 group 角色及限定域的 labelledBy/describedBy Anatomy 关系。A11y 与宿主投射关系,作者不手工编写 DOM ID。原生名称计算,包括 ariaLabel 与 Legend 同时存在时的结果,仍需辅助技术验收。
- 每组最多一个 Legend 和一个 Description。重复精确关系目标 fail closed,不选择第一个;完整终止/重挂载验收仍待补;嵌套分组不得借用彼此名称或描述目标。
- 可移植定义不采用原生 HTML first-Legend disabled 豁免;Legend 内参与的 Field 也继承 disabled。
Base 与四个视觉 family 共享语义 atoms。synthetic WebComponent 测试覆盖策略和限定域关系用例;family smoke 与源码 token 检查仅为较窄证据,不代表完整 Adapter 或像素验收。类型检查覆盖公开投影兼容。原生键盘、辅助技术、跨 Adapter/Compiler 组合、GPUI、生成 CSS/视觉与包消费验收仍未完成,不据此勾选 Finf。
Family 外观
Section titled “Family 外观”- Root: 块级分组,零 margin、padding 与 border;无卡片外框。
- Legend: 全宽正常字重 1.3125rem legend,2.5rem 行高、底边框与间距。
- Description: 块级小号正常字重弱化帮助文本,leading-5 且可换行。
这些是 draft 外观标准,不是像素一致性声明。