输入框
输入框用于采集一个原生单行值。它保留浏览器的编辑、选择、校验、自动填充、密码管理器、输入法和表单行为,由 A3S UI 提供一致的视觉契约。
用于接收发布通知和恢复账户。
用法
引入 Tailwind 和一套完整的 A3S UI 样式:
按组件加载时,依次引入基础样式、输入框结构、字段结构和一套视觉样式:
在受支持的原生 <input> 上添加 class="input"。生产表单中应与字段组件组合,使可见标签和说明在编辑前后始终存在。
输入框只处理一个原生单行值。前后缀、图标、单位或内嵌动作使用输入框组;文件队列和进度使用文件上传;富文本指令、提及、附件和排队提交使用任务输入器。
参数
状态与变体
空值和就绪是普通值状态。只有执行校验之后才进入无效状态。禁用与只读是不同的原生可用性契约,不能只当成两种相似样式。
类型语义
根据用户真正需要的数据、键盘、校验和自动填充行为选择类型,并保留浏览器自带控件,不用装饰性图标重新实现。
前导零或精确字符有意义时,标识符仍应使用文本。
浏览器提供邮箱校验和适合邮箱输入的键盘。
地区格式和业务校验仍由应用负责。
校验前应说明是否必须包含协议。
不要阻止粘贴、自动填充或密码管理器。
只有本地日期就是完整值时才使用原生日期控件。
只有当原生步进和数值约束符合任务时才使用 type="number"。账号、邮编、标识符、前导零值和高精度小数仍是文本。原生 type="file" 只作为兼容边界;生产级拖放、队列、进度、失败和重试流程属于文件上传组件。
表单校验与恢复
首次校验前保持必填字段中性。失败时保留用户值、说明具体问题、聚焦输入框,并把错误加入描述关系。值恢复有效或表单重置后,立即清除过期错误语义。
客户端校验用于改善恢复过程,不能替代服务端校验、清理、授权和过期响应处理。
禁用与只读
禁用会把值移出聚焦、编辑、约束校验和表单提交。只读仍允许聚焦、选择、复制和提交。两者都需要可见原因。
无障碍
- 始终提供一个持久可见的标签。占位文本可以说明格式,但不能是唯一名称。
- 用
aria-describedby关联普通说明。仅在校验后追加当前错误 ID,恢复后立即移除。 - 保留原生键盘编辑、选择、撤销、粘贴、自动填充、密码管理器以及搜索和日期控件。
- 输入法组合期间不要转换文本、执行业务校验或提交,等待
compositionend。 - 在 RTL 布局中仍以从左到右的方向编辑邮箱、电话号码和 URL,避免标点与前缀被重排;标签和辅助说明继续遵循页面方向。
- 使用一条连续的聚焦边界。强制色彩模式下改用系统
Highlight轮廓。 - 粗指针环境下,文本输入框至少 44px 高、字号至少 16px,避免移动端聚焦缩放。
- 发布前在 200% 浏览器缩放、超长值、RTL 文本、中日韩输入法、真实移动键盘、自动填充、密码管理器和辅助技术中测试。
