输入是否可以用aria-labelled而不是<label>“标记”?

时间:2015-10-20 23:25:05

标签: accessibility wai-aria

以下每个WCAG 2.0是否有效?

<span id="my-label">Your photo</span>
<input id="my-upload" type="file" aria-labelledby="my-label">

OS X屏幕阅读器理解这一点,例如:在获得焦点时读取输入的标签,但Total Validator会抱怨如下:

Total Validator error

您可以在this page上运行Total Validator来自行尝试。 Total Validator是否正确报告此错误,或者这是Total Validator中的错误?

(显然,在这个特定示例中,我可以使用<label for="my-upload">,而不是依赖aria-labelledby。甚至可以争辩说使用<label>具有更多的语义权重,应该但这不是我要问的问题,因为在我的现实场景中使用<label>无法完成。)

2 个答案:

答案 0 :(得分:1)

可以使用aria-labelledby作为创建可见标签的方法,其中可见标签已存在。最好使用for-id提供标签关联,因为这样可以单击标签文本以将焦点放在输入字段中(或选择复选框或单选按钮)。

您的辅助功能分析器已经过时了。如果您使用aXe accessibility analyzer,您会发现它不会抱怨此问题。

答案 1 :(得分:1)

aria-labelledby用于向屏幕阅读器等辅助功能设备提供信息。如果您不使用这种特定设备,它将不会有任何帮助。

它不会向99%的人提供任何信息。所以是的,Total Validator是正确的,因为WCAG不需要使用特定设备,因此将其报告为错误。话虽如此,您可以在不能使用title标记的情况下使用label属性。

请参阅:H65: Using the title attribute to identify form controls when the label element cannot be used