复选框
复选框让用户从一组非互斥选项中选择零项、一项或多项。它适合随表单一起提交的选择;会立即改变系统状态的二元设置应使用开关。
安装Terminal
用法
导入 Tailwind 与完整 A3S 样式包:
为原生复选框添加 input 类,并使用 label 建立名称关联。只有一个输入时,标签可以直接与它配对。
需要按组件加载时,依次导入基础样式、复选框结构、字段结构和 A3S 视觉样式。CDN 与其他接入方式见安装。
参数
状态与变体
未选中和已选中是用户可操作的常态。禁用状态必须同时解释原因;无效状态只在用户提交或离开字段后出现,避免页面首次加载就显示错误。
导出前必须完成确认。
只有工作区所有者可以更改此项。
indeterminate 只能通过 DOM 属性设置,常用于“全选”控件。它仍会按 checked 属性决定表单提交结果,因此应用必须分别维护两个状态。
多项选择
相关选项使用 fieldset 和 legend 分组。标签回答“这一项是什么”,说明文字补充后果或限制;不要把整段说明都塞进标签。
表格中的行选择属于表格或数据网格的整体交互。表头“全选”必须同步可见行、跨页选择范围和不确定状态,不能只在复选框文档中拼出一个没有行为的静态表格。
可访问性
- 每个复选框都必须有可访问名称,优先使用与
id配对的可见label。 - 相关多选项使用
fieldset与legend;不要为普通.field添加冗余的role="group"。 - 空格键切换聚焦的原生复选框。不要用自定义点击处理替换浏览器行为,也不要阻止标签点击。
- 帮助或错误信息通过
aria-describedby关联;校验失败时同步设置aria-invalid="true"。 - 禁用项仍应显示标签和不可用原因。若用户仍需理解或复制内容,优先只禁用控件,不要隐藏整行。
indeterminate只是部分选择的视觉和无障碍状态;提交值仍由checked决定。
