国产定制浏览器H5表单自动填充需同时满足WHATWG标准、厂商扩展要求及运行环境前提:①严格使用标准autocomplete值;②适配厂商专属开关与条件;③规避动态渲染、type不匹配等干扰;④强化语义结构并提供fallback。

国产定制浏览器(如 UC、QQ、小米、华为)对 H5 表单自动填充的支持,既依赖 HTML 标准规范,又叠加了各自 SDK 或系统服务的增强逻辑。适配关键不在于“加不加 autocomplete”,而在于**同时满足标准约束 + 厂商扩展要求 + 运行环境前提**。以下四点是实测有效的适配路径:
严格使用 WHATWG 标准 autocomplete 值,禁用任何自定义写法
UC、QQ、华为浏览器(尤其 HarmonyOS 上的智能填充服务)均以 WHATWG 规范为识别基线。大小写、连字符、语义偏差都会导致字段被跳过:
- ✅ 正确:
autocomplete="email"、autocomplete="tel"、autocomplete="street-address"、autocomplete="postal-code" - ❌ 失效:
autocomplete="user_email"、autocomplete="mobile"、autocomplete="zip"、autocomplete="address1" - 姓名统一用
autocomplete="name"(不要拆 first/family,UC 和 QQ 对 given-name/family-name 支持不稳定) - 身份证号字段,华为/小米部分版本支持
autocomplete="id-card-number"(需搭配type="text",禁用type="number")
主动适配厂商专属能力与开关条件
国产浏览器常将自动填充与系统级服务绑定,必须显式满足其前置条件:
-
华为浏览器 / HarmonyOS 应用:设备需开启「设置 > 隐私和安全 > 智能填充」,且应用已接入 Scenario Fusion Kit;表单必须包裹在
<form>内,action属性不可为空(哪怕设为action="#") -
QQ 浏览器:对
autocomplete="cc-number"+cc-exp+cc-csc组合识别率高,但要求所有字段在同一<form>下、初始即存在于 DOM(JS 动态插入无效) -
UC 浏览器:对
type="tel"+autocomplete="tel"组合触发软键盘优化最稳定;若页面含大量数字,建议加<meta name="format-detection" content="telephone=no">防止误识别为电话号码 -
小米浏览器:兼容性较弱,优先保障基础字段(
name、email、tel),避免使用address-level1等低支持率值
规避常见干扰项,确保字段可被扫描识别
即使值写对,以下情况仍会导致国产浏览器完全忽略该字段:
-
type 与 autocomplete 不匹配:例如邮箱必须同时写
type="email"+autocomplete="email";用type="text"即使 autocomplete 正确,QQ 和 UC 填充成功率下降超 60% -
动态渲染字段失效:Vue 的
v-if、React 的{show && <input>}、或 JS 后续 append 的 input,均无法被 UC/QQ 初始化扫描到——必须服务端直出或用v-show/display: none隐藏而非移除 -
value 被 JS 清空或覆盖:页面加载后执行
input.value = ""或受控组件未设defaultValue,会中断浏览器填充时机 -
同一表单多个同值 autocomplete:如两个
autocomplete="tel",UC 和小米浏览器通常只填第一个,且无规律
强化语义结构与 fallback 兜底
国产浏览器对表单语义完整性更敏感,建议每处输入都落实以下三项:
- 显式
<label for="xxx">关联,禁用仅靠 placeholder 提示 -
name属性保持语义清晰且与后端字段一致(如name="receiver_phone"),同时配autocomplete="tel" - 对地址类复杂字段(省市区联动),国家下拉用
autocomplete="country",省级用autocomplete="address-level1"(华为支持较好,QQ 次之,UC 基本忽略,需准备 JS fallback) - 密码字段务必区分:
autocomplete="current-password"(登录页)和autocomplete="new-password"(注册/改密页),混用会导致华为/小米保存失败



















