现场标签现在非常流行。它们节省空间,看起来很酷。有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,没有机会将标签作为输入值提交等。如果有的话,这样做的语义和实际缺点是什么?
答案 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/