使用占位符代替标签

Using placeholder instead of label

谈到辅助功能时,不使用占位符代替标签是一种常见的做法,因为在字段中输入内容后,占位符就会消失。但是如果我的占位符之后充当视觉标签呢?

在这种情况下仅使用占位符来代替实际的标签仍然可以吗?如果是这样,我还需要用 aria-label 标记它吗?

我不建议使用 placeholder 属性或其他容器来代替 <label> 元素。

这不是您描述的 "visual label" 的问题。 <label> 元素在 data-level.

处以编程方式与 <input> 元素相关联
<label for="middle-initial">Middle Initial</label>
<input id="middle-initial">

placeholder 属性基本上对屏幕阅读器不可见,因此它可以与 <label> 结合使用,但不应替代 <label>

如果您真的不喜欢页面上 <label> 的视觉效果,您可以 position the text off screen using CSS,或者如果您目前正在使用 bootstrap,您可以使用 .sr-only class.