MODULE 07 / LESSON 02
表单:降低填写和修错成本
标签、帮助、校验、键盘类型与提交反馈。
先理解这个概念
表单是用户与系统交换数据的协议。标签说明填什么,帮助解释要求,校验说明哪里需要修改。占位符会在输入后消失,不能替代标签。尽量只收集完成任务必要的数据。
表单成本来自取信息、理解格式、输入以及修错。减少字段只解决其中一部分;用户已有的信息不必重填,格式要求应在需要时可见,错误应该指向具体字段。占位文字输入后会消失,因此不能承担唯一标签。前端校验改善反馈,最终有效性仍由服务端确认。
好的表单像清楚的 API schema,但还要把校验结果翻译成用户可以行动的语言。
记住这三个原则
- 01
字段使用持续可见的 label,并关联输入元素。
- 02
输入时不要过早打断;失焦或提交校验按任务选择。
- 03
失败时保留输入,定位错误并提供修复方法。
实际设计时,分三步做
- STEP 01
逐字段说明为什么需要、何时使用、是否必须。能从已知数据可靠获得的内容优先复用,避免为了潜在用途提前收集。
- STEP 02
将标签、输入、帮助和错误组织成明确单元;根据内容选择输入类型,保留复制粘贴和自动填充能力。
- STEP 03
设计提交前、提交中、字段错误、服务错误和成功结果。错误后保留安全可保留的数据,并给出修正路径。
一个容易理解的例子
邮箱占位符消失后没有标签,提交失败只在顶部显示“非法输入”。
邮箱标签一直存在,字段下说明格式问题,并把错误关联到输入。
用户不必在错误摘要与字段之间猜对应关系。
展开看:从场景到设计决定
注册表单在用户刚输入邮箱第一个字母时就显示红色错误,会持续打断。可以等字段编辑告一段落或提交时验证;已经出现的错误在用户修正后及时更新。若服务端返回邮箱已使用,错误放在邮箱附近,并提供登录或找回路径。网络失败不应把所有字段标红,因为问题并不在用户输入。
适用边界与取舍
即时校验适合明确规则,但某些结果需要服务端判断。多步骤表单能降低单屏复杂度,也会增加返回与草稿保存需求,不应只按字段数量机械拆分。
把这个原则用一次
先做一个小判断
在状态实验中输入一个没有 @ 的邮箱后提交。
再完成一份设计练习
为收货地址表单补上缺少必填项、格式错误、网络失败和保存成功四种反馈。
不要为了“简洁”删除标签,也不要把所有控件都实现成自由文本输入。
继续查阅
本课为原创教学解释。具体平台规则与标准可查阅官方资料。
W3C WAI · Forms TutorialWAI-ARIA Authoring Practices