使用“占位符”作为字段标签在语义上是错误的吗?

时间:2013-12-09 17:29:55

标签: html5 forms

现场标签现在非常流行。它们节省空间,看起来很酷。有many, many ways来完成它们。现在使用HTML5占位符参数进行表单输入非常容易。如果你愿意,你甚至可以create backwards compatibility with a bit of jquery

但是,使用placeholder="Name"代替<label>Name</label>在语义上是否正确,或者是否应始终包含标签元素并保留占位符以引导用户:

<label for="name">Name</label><input id="name" type="text" placeholder="Jane Doe">

如果将占位符用作标签或示例通常被认为是正确的,那么这绝对是实现此效果的最简单方法。现代浏览器不需要javascript,没有机会将标签作为输入值提交等。如果有的话,这样做的语义和实际缺点是什么?

2 个答案:

答案 0 :(得分:4)

HTML5规范明确地将其调出。 It says

  

不应将占位符属性用作a的替代   标签。要获得更长的提示或其他咨询文本,请将文本放在下一步   控制。

     

使用占位符属性作为标签的替代品可以   降低控件的可访问性和可用性   用户包括老年用户和具有认知,移动性,精细的用户   运动技能或视力障碍。虽然给出了暗示   控件的标签始终显示,提示中的短提示   占位符属性仅在用户输入值之前显示。   此外,占位符文本可能会被误认为是预填充值,   并且通常实现占位符文本的默认颜色   提供不充分的对比度和缺乏单独的可见   label减小了可用于设置焦点的命中区域的大小   在控制上。

答案 1 :(得分:2)

HTML5规范尽管如此,使用"Float Label Pattern"变得越来越流行。标签以占位符开头,但一旦输入文本,就会在字段上方移动。

这里有一个方便的教程....

http://webdesign.tutsplus.com/tutorials/ux-tutorials/implementing-the-float-label-form-pattern/