作为网络辅助功能练习的一部分,我们的网站正在寻找一些缺失的表单标签
文本区域是我们不希望有可见标签的元素(该网站是使用jQuery的ASP.NET MVC / Razor)
@Html.TextAreaFor(x => x.UserInput.FeedbackContent)
这个场景的正确方法是创建相应的LabelFor并将其隐藏吗?
@Html.LabelFor(x => x.UserInput.FeedbackContent, new {@class = 'hidden'})
或者TextAreaFor中有没有办法创建隐藏标签?
非常感谢
答案 0 :(得分:0)
这个场景的正确方法是创建相应的LabelFor并将其隐藏吗?
如果您通过display: none
或visibility: hidden
隐藏它,则不会,因为它们会make screenreaders ignore it as well。
是 CSS技巧,您可以用它们直观地隐藏它,但是,请考虑在文本区域本身使用aria-label
属性。在HTML中,这将是:
<textarea ... aria-label="Label for the text area" ...>
我不使用Asp.Net-MVC,但我相信你是这样做的:
@Html.TextAreaFor(x => x.UserInput.FeedbackContent, new Dictionary<string, object>(){{"aria-label", "Label for the text area"}});