VOCABULARY / 词条
填空式输入
Fill in the Blanks
把输入控件嵌进一句话里,让填完之后整句读起来是通顺的陈述:字段的含义由它在句中的位置说明,而不是由一个单独的标签说明。

识别特征
- 输入控件与文字交替排列,共同构成一句可读的话
- 字段没有独立标签,含义由句子的上下文承担
- 填写完成后整句就是对所填内容的一句陈述
概念边界
判定标准是"句子本身就是标签",而不是"表单写得口语化"。它只适用于字段少、且彼此确实构成一句话的情形;字段一多,句子就会变成必须通读的长段,反而比逐项标签更慢。它也不是自然语言输入:用户填的仍是受控的字段,只是被排成一句话。这一模式天然依赖语序,翻译时句子结构会变,字段顺序也得跟着变,因此多语言产品要为每种语言各自排布,而不是把控件位置写死。
什么时候考虑它
- 单独给字段写标签时,标签怎么写都说不清它到底要什么
- 标签会变得又长又绕,放进句子反而一眼就懂
- 字段数量少且必填,句中出现空缺会让人自然想补上
什么时候慎用
- 字段很多,用户必须读完整段句子才能动手
- 大部分字段可以不填,句子中留下的空缺反而令人不安
- 界面需要支持多语言但字段位置被写死在一种语序里
取舍
句子承担了标签与说明的全部工作,理解成本几乎为零;代价是它牺牲了表单的可扫读性:字段不再对齐成列,用户无法快速判断还剩几项没填。
条件规则 · 编辑建议
相关词条
两者都把控件放进内容之中,但就地编辑修改的是已有内容,填空式输入是从一开始就用句子收集内容。
句中没有独立标签可供挂载错误说明,因此提示必须贴近该空缺本身,并说清期望的格式。
每增加一个空缺,用户就要多维持一段未完成的句子在工作记忆里,超过少数几个就会得不偿失。
来源与支持范围
该模式记录别称为"自然语言表单",并建议在以下情形使用:为输入框写的标签说不清它到底要什么;标签变得冗长复杂、反而让用户难以理解;字段的含义可以通过把它放进一句话来表达;以及字段为必填或强烈期望被填写——句中留下空缺会让用户不适。它同时提醒:字段数量多时把它们都放进句子会让用户疲惫,因为句式结构迫使用户读完每一句,并且不要在大量字段可不填时使用。本词条的适用与不适用条件据此转述。
检索日期:2026-09-16 · 快照待确认定义参考以上来源;数字界面示例、选择建议、条件关系及配方由本样例编辑,尚未经用户研究验证。
类型扩展与实现说明
本词条尚无可操作示例;插画为编辑示意,其中的句子与取值均为虚构。应用到产品前仍须确认每个嵌入控件都有可访问名称,并在放大字号与换行后检查句子的阅读顺序。
{
"states": [
"empty",
"partial",
"complete",
"invalid"
],
"a11y": [
"每个嵌入控件有可访问名称,而不是仅靠周围文字暗示",
"句子在放大字号或换行后仍保持可读的顺序"
],
"motion": "无动效;填入后的句子直接更新"
}完整 Agent 条目 JSON
{
"id": "fill-in-the-blanks",
"type": "interaction",
"name": {
"zh": "填空式输入",
"en": "Fill in the Blanks"
},
"aliases": [
"Natural Language Form",
"Madlib Form",
"自然语言表单",
"句子式表单"
],
"granularity": "component",
"intents": [
"prevent-error",
"reduce-complexity"
],
"tags": [
"表单",
"输入",
"句子",
"上下文",
"标签"
],
"definition": "把输入控件嵌进一句话里,让填完之后整句读起来是通顺的陈述:字段的含义由它在句中的位置说明,而不是由一个单独的标签说明。",
"boundary": "判定标准是\"句子本身就是标签\",而不是\"表单写得口语化\"。它只适用于字段少、且彼此确实构成一句话的情形;字段一多,句子就会变成必须通读的长段,反而比逐项标签更慢。它也不是自然语言输入:用户填的仍是受控的字段,只是被排成一句话。这一模式天然依赖语序,翻译时句子结构会变,字段顺序也得跟着变,因此多语言产品要为每种语言各自排布,而不是把控件位置写死。",
"signature": [
"输入控件与文字交替排列,共同构成一句可读的话",
"字段没有独立标签,含义由句子的上下文承担",
"填写完成后整句就是对所填内容的一句陈述"
],
"when": [
"单独给字段写标签时,标签怎么写都说不清它到底要什么",
"标签会变得又长又绕,放进句子反而一眼就懂",
"字段数量少且必填,句中出现空缺会让人自然想补上"
],
"when_not": [
"字段很多,用户必须读完整段句子才能动手",
"大部分字段可以不填,句子中留下的空缺反而令人不安",
"界面需要支持多语言但字段位置被写死在一种语序里"
],
"tradeoff": "句子承担了标签与说明的全部工作,理解成本几乎为零;代价是它牺牲了表单的可扫读性:字段不再对齐成列,用户无法快速判断还剩几项没填。",
"comparison": {
"focus": "用句子的上下文说明每个字段要填什么",
"mechanism": "输入控件嵌入连续文字之中",
"cost": "失去对齐与可扫读性,且依赖语序"
},
"sources": [
{
"id": "fitb-ui-patterns",
"title": "UI Patterns · Fill in the Blanks design pattern",
"url": "https://ui-patterns.com/patterns/FillInTheBlanks",
"claim": "该模式记录别称为\"自然语言表单\",并建议在以下情形使用:为输入框写的标签说不清它到底要什么;标签变得冗长复杂、反而让用户难以理解;字段的含义可以通过把它放进一句话来表达;以及字段为必填或强烈期望被填写——句中留下空缺会让用户不适。它同时提醒:字段数量多时把它们都放进句子会让用户疲惫,因为句式结构迫使用户读完每一句,并且不要在大量字段可不填时使用。本词条的适用与不适用条件据此转述。",
"checkedAt": "2026-09-16",
"archive": {
"lookupUrl": "https://web.archive.org/web/20260916*/https://ui-patterns.com/patterns/FillInTheBlanks",
"status": "pending",
"checkedAt": "2026-09-22T11:55:04.410Z",
"error": "status-request-failed",
"jobId": "spn2-f131fc62c7ca8c7cf7934fb55bb00d0e98264a0a"
}
}
],
"relations": [
{
"target": "inline-edit",
"kind": "related",
"condition": "用户在正文所在的位置直接修改取值",
"reason": "两者都把控件放进内容之中,但就地编辑修改的是已有内容,填空式输入是从一开始就用句子收集内容。",
"basis": "editorial"
},
{
"target": "inline-validation",
"kind": "composes_with",
"condition": "某个空缺填入了不合法的取值",
"reason": "句中没有独立标签可供挂载错误说明,因此提示必须贴近该空缺本身,并说清期望的格式。",
"basis": "editorial"
},
{
"target": "cognitive-load",
"kind": "composes_with",
"condition": "句中空缺的数量增加",
"reason": "每增加一个空缺,用户就要多维持一段未完成的句子在工作记忆里,超过少数几个就会得不偿失。",
"basis": "editorial"
}
],
"rules": [
{
"when": "输入控件被嵌入句子中",
"instruction": "仍为每个控件提供可被读屏识别的名称,不要只依赖视觉上的上下文。",
"strength": "must",
"basis": "editorial"
},
{
"when": "界面需要翻译成其他语言",
"instruction": "把整句作为可调整语序的模板交给翻译,而不是把控件位置固定在原语言的语序上。",
"strength": "must",
"basis": "editorial"
}
],
"behavior": {
"states": [
"empty",
"partial",
"complete",
"invalid"
],
"a11y": [
"每个嵌入控件有可访问名称,而不是仅靠周围文字暗示",
"句子在放大字号或换行后仍保持可读的顺序"
],
"motion": "无动效;填入后的句子直接更新"
},
"demo": null,
"version": "0.1.0",
"editorialStatus": "drafted",
"requirements": [],
"demoCapabilities": [],
"implementationNote": "本词条尚无可操作示例;插画为编辑示意,其中的句子与取值均为虚构。应用到产品前仍须确认每个嵌入控件都有可访问名称,并在放大字号与换行后检查句子的阅读顺序。",
"image": {
"src": "/images/fill-in-the-blanks.webp",
"alt": "一张名为 FIELDNOTES 的虚构表单示意:一行文字中交替出现灰色词条与三个带下划线的输入空缺,其中两个已填入深色短文本,第三个为空并带光标。"
},
"searchTerms": [
"form",
"input",
"sentence",
"context",
"label"
]
}