订阅表单 · Web

让填写表单不再像排雷

从只有占位符的输入框,到知道怎么填、错了怎么改的完整流程。

用户的任务填写邮箱,收到明确反馈,失败后可以继续。

看见修改前后的差别

GO BEYOND THE HAPPY PATH

亲自触发不同状态

等待填写 格式有误 提交中 模拟网络失败 提交成功

先提交空表单,再填写邮箱。开启模拟失败,观察能否保留输入并重试。

LIVE PREVIEW 实时示例

订阅设计笔记

教学表单 · 不发送邮件、不保存邮箱。

使用任意示例邮箱即可体验。

当前状态:等待填写

观察一下

校验错误说明怎么修正;提交期间阻止重复操作;网络失败保留输入;成功状态明确确认结果。模拟环境的等待时间固定为约 1.1 秒。

标签持续可见;错误紧贴字段;网络失败保留输入并提供重试。

一步步拆解设计决定

  1. 01

    解释字段

    用可见 label 告诉用户填什么,placeholder 只给示例。

  2. 02

    选择校验时机

    本例在提交时校验格式,避免用户还没写完就被报错。

  3. 03

    补全状态

    默认、格式错误、提交中、模拟网络失败和成功都设计出来。

  4. 04

    让反馈可感知

    错误关联输入,提交状态通过 live region 告知,焦点可见。

把规则带进代码

IMPLEMENTATION NOTE
<label htmlFor="email">邮箱地址</label>
<input id="email" type="email"
  aria-invalid={Boolean(error)}
  aria-describedby={error ? "email-error" : "email-help"} />
<p id="email-error" role="alert">{error}</p>
回到所有案例