在盘点软件或开发者网站内容时,联系表单往往是关键触点。本文回答一个具体问题:哪些字段真正有用,标签又该如何写清楚。我们假设你正在审查已有的询盘表单,或正在为技术读者设计一份新表单,目标是在不增加无谓摩擦的前提下,让用户输入更顺畅,也让必要信息被清楚收集。文章围绕字段标签、说明文字和校验提示展开,关注既能帮助普通访客、也能支持辅助技术的结构要素,使每个字段在沟通流程中都有明确用途。

假设一份标准询盘表单

假设有一家中等规模的开发者工具网站,联系与询盘表单正作为更大范围内容盘点的一部分接受审查。这个场景中的作者是一名内容策略人员,手里有一张记录现有表单字段的表格,以及几份草拟的字段清单。其中一份草案名为“项目询盘”,把一个必填的“项目类型”下拉菜单与一个选填的“当前技术栈”文本框配在一起。第二份草案叫“集成问题”,开头是一个必填的“你在集成哪项服务?”选择器和一个简短的“你已经尝试过什么?”输入框。第三份草案名为“账户与访问”,以一个必填的“工作邮箱”开篇,并在第一个答案之后才显示一个有条件的“团队规模”字段。

这位策略人员眼下要问的,不是这些标签好不好,而是哪些字段本来就该保留。“项目类型”下拉菜单很容易说清楚理由,但它的选项列表还没有定下来。“当前技术栈”字段看起来对分流有用,但还没有人决定自由文本的回答能否可靠地分拣归类。“你已经尝试过什么?”输入框是最有意思的候选,因为它适合开发者读者,但它可能与现有的支持渠道重叠,而团队尚未就这条界线划在哪里达成一致。有条件的“团队规模”字段则引出另一个问题:它只在填写工作邮箱之后出现,所以策略人员必须判断它到底是一个询盘字段,还是一个已经混进表单的账户字段。

这些是用于说明取舍而自拟的例子,不是既有企业、真实提交或已完成试验的记录。它们展示的是审查必须做出的那类选择:一个字段孤立地看可能很合理,却仍会与另一个字段的用途相冲突。唯一悬而未决的是,“当前技术栈”和“你已经尝试过什么?”是否都应保留,还是应当让其中一个让位给一个更短、边界更清楚的问题。

为每个输入项定义清晰的标签

在内容盘点中,每个联系或询盘输入项都需要一个标签,既用来标识该项,也说明该控件的用途。Web Accessibility Initiative 的教程把这一点应用于文本框、复选框、单选按钮和下拉菜单,通常通过 label 元素实现。标签与其控件之间应建立隐式或显式关联。1

在可能的情况下,该来源建议显式关联标签:label 元素的 for 属性必须与表单控件的 id 完全一致。该页面以 First name 和订阅新闻邮件的复选框为例,展示这种配对方式。1

如果某个控件无法显式标注标签,例如脚本生成的字段没有已知的 id,也没有添加 id,可以让 label 元素同时包含控件及其文字,以实现隐式关联;该页面指出,辅助技术通常对显式标签的支持更好。1

从表单上已有的一个标签开始,像陌生人第一次看到那样读它。假设该字段目前写着“消息”。你可以把它改成“你想构建什么?”,因为回答描述的是填写者自己的处境,而不是表单的分类。这样,简单的支持请求和合作洽谈就能自然地以不同方式开头,而无需新增字段。

你也可以比较同一个输入项的两种简短标签。“公司规模”要求做出分类;“有多少人会使用它?”要求给出一个与决策相关的估计。两者没有哪个天然更好,因此应选择其答案真正会改变你理解询盘方式的那一个。如果这个数字不会影响你的回复,可以考虑去掉该字段,而不是反复打磨措辞。

对于选填字段,在标签旁加一句平实的说明,例如“选填——有助于我们转交你的问题”。你可以把“电话”改成“电话(选填,用于安排通话)”,让理由在填写之前就出现。把标签大声读一遍,检查它称呼的是读者熟悉的内容,而不是团队内部使用的叫法。

为复杂字段补充上下文说明

当某个字段仅靠标签不够清楚时,W3C 指南针对简单情形建议把说明直接写进标签文字里,例如过期日期要求按 MM/YYYY 格式填写,这个格式就出现在同一个标签中;指南称这种做法在不同浏览器和辅助技术下都较为可靠。第二种做法是把说明放在标签之外,用 aria-labelledby 属性把它与控件关联起来,指南提到撰写时这种做法的支持并不完整。第三种做法使用 aria-describedby,被引用的信息会在标签之后被朗读出来。2

占位文本可以在尚未编辑的字段内给出一个格式示例,但指南明确指出它不能替代标签,而且在辅助技术中的支持也并不普遍。针对整份表单的整体说明,例如哪些是必填项、数据格式要求和时间限制,应当放在 form 元素之前,这样屏幕阅读器在进入“表单模式”之前就能读到这些说明。2

对于表单上已有的复杂字段,比如一个询问项目类型的下拉菜单,你可以试着在标签正下方加一行简短说明,讲清楚什么样的回答有帮助。假设标签写的是“项目类型”,选项有“全新搭建”“迁移”“持续维护”。像“选最接近的一项;细节可以写在留言框里”这样的说明,能让读者放心给出大致答案,而不是卡在那里。你可以试一试,看这一行是否消除了停顿。

你也可以改写一个要求填数字的字段,让说明同时点出范围和用途。“公司规模”可以改成“大概有多少人会使用?给个范围就行——这能帮我们建议合适的起点。”这些是用于权衡措辞的作者示例,不是真实提交记录。

当某个字段是选填的,可以考虑把原因放在它旁边,而不是塞进脚注里:“选填——有助于更快转交你的问题。”你可以拿它和一个光秃秃的“选填”作比较,哪个让陌生人读起来更自然就保留哪个。

区分必填信息与选填信息

来源建议用标签清楚标明必填输入。来源也允许在表单控件上添加required属性,以便用程序方式标明必填:当前浏览器通常支持这个属性,并会通过浏览器自身的对话框机制告知用户缺少必填输入。在页面的示例中,标签本身显示“(必填)”,以告知不使用辅助技术或使用不支持HTML5 required属性的旧版浏览器的用户,同时重复提供aria-required属性,让辅助技术能够播报必填控件。3

拿一个现有的必填字段,检验它的标签是否告诉读者为什么这个回答重要。假设表单目前用星号标注“公司规模”,没有任何说明。你可以把它改写为“公司规模(必填——帮助我们推荐配置方案)”;如果即使没有这项信息分流仍然可行,也可以把它改为选填。选择权在你手里;要点是让星号承载一个理由,而不只是一条规则。

对每个字段,你可以标为必填、选填,或者直接删除,然后像第一次到访的访客那样从头到尾读一遍表单。一个有用的检查是:如果去掉星号,一个通情达理的人是否仍然知道该不该填写?如果答案是否定的,可以考虑补一个简短的括注,例如“选填”或“预约沟通时必填”。你可以把两个版本并排比较,一个只有光秃秃的标签,一个带有说明,然后选择一次通读下来更清楚的那个。

把必填字段控制在一句话就能解释的范围内。如果你无法不用一大段理由就说清某个字段为什么必填,这就是一个信号:在审查结束前,应当考虑把它改为选填或删掉。

按逻辑对相关问题分组

拿出一份你正在审查的联系表单,把现有字段在纸上粗略分成三堆:填写者是谁、要问什么、希望怎样被联系。你不需要改动线上表单就能做这件事。对开发者工具网站来说,“是谁”这一堆可能放着姓名、公司和角色;“问什么”这一堆可能放着项目类型和一个自由填写的问题;“怎样联系”这一堆可能放着邮箱和一个选填的电话号码。这样你就能直观看出,表单是否连续追问同一堆里的三项事实,却把相关问题分散到了别处。

分好堆之后,可以试着按首次访问者会自然回答的顺序来读。你可以把“项目类型”直接移到自由填写的问题之后,让读者先描述问题,再给它归类。一个简单的检验方法是:遮住标签,看这一串问题是否仍能讲出一个小故事——“我是这样的人,我需要这个,请这样回复我。”如果某个字段打断了这个故事,你可以把它往后移,或标为选填。

分组还有助于发现重复。假设“公司规模”和“会有多少人使用?”分别出现在不同位置,你可以把它们合并成一个带简短范围的问题,只保留其中答案真正影响询盘分流的那个版本。对剩下的每一组,可以考虑在上方加一句朴素的话,例如“介绍一下你的项目”或“我们怎样联系你?”。这些是作者自拟的例子,不是经过测试的文案,你完全可以写自己的版本。

最后,把同一份表单的两个版本并排比较:当前顺序和你重新分组后的顺序。像访问者那样把两个版本都朗读一遍,记下你在哪里停顿或往回看。选择需要更少解释性说明的那个版本;如果某一组仍然需要一条长长的脚注,你或许该从这一组里删掉一个字段,而不是为它写解释。

检查反馈与错误处理提示

《Web内容无障碍指南》(W3C)关于标签与说明的指导把清晰提示与错误预防联系起来:提供标签和说明,其中包括标明必填字段,能避免不完整或不正确的提交,让用户不必再回来修改错误。该指南还提醒,信息过多与信息过少同样有害,因此目标是提供足以完成任务、又不显杂乱的细节。在持续性方面,标签或说明需要一直可获取;通常最好的做法是在界面中让它们视觉上保持可见,而冗长的说明可以按需调用。4

挑出一个你正在审查的反馈或错误状态,比较同一提示的两份草稿。假设当前确认信息写的是“消息已发送”。你或许会把它改成“消息已发送——如果你约了时间,预计在两个工作日内收到回复”。第二版给读者一个下一步的预期,同时不描述任何你尚未核实过的系统行为。

你也可以像访客那样,读一读必填字段旁边的错误文字。孤零零的“必填”只告诉人哪里出了问题,却没有说明如何补救。更有用的草稿可能写成“必填——请填写工作邮箱,以便我们安排时间相关问题”。把它与“必填——我们会回复到这个地址”作比较。两者都是作者自拟的例子,你可以选择与团队收到表单后实际做法相符的那一版。

如果你是在审查中做这项准备,记下你想改写的一条提示、你更偏好的草稿措辞,以及它契合你预期后续动作的理由。这条记录给下一位审查者一个具体可查的选择,而不是一句笼统的“提示不清楚”的抱怨。

常见问题

怎样把一份现有联系表单的字段在纸上粗略分成几堆?

拿一份你正在审查的联系表单,把现有字段在纸上粗略分成三堆:对方是谁、对方想问什么、希望怎样联系对方。这个过程不必改动线上表单。

怎样借助这几堆字段判断首次到访者的自然作答顺序?

分好之后,可以按首次到访者自然作答的顺序读一遍。比如把“项目类型”直接挪到自由文本问题之后,让读者先描述问题,再对问题归类。

如果我在审查中准备改写一处提示,应该记录什么?

如果这是审查的一部分,记下你想改写的那一处提示、你倾向的草稿措辞,以及它为何契合你预期的后续处理。