使用AT的用户可以访问setCustomValidity()的值吗?

时间:2017-08-07 13:10:35

标签: accessibility wai-aria wcag

假设我使用setCustomValidity()为字段设置自定义有效性消息,以描述表单字段无效的原因。使用辅助技术的用户可以使用此内容吗?如果是,通常如何为用户提供?

例如,

my_element.setCustomValidity("This email address already exists")

如果我想确保有屏幕阅读器的用户会看到此消息,我应该避免使用setCustomValidity()而是依赖aria-invalidaria-describedby吗?

<input name="email" aria-invalid="true" aria-described="error">
<p id="error">This email address already exists</p>

1 个答案:

答案 0 :(得分:1)

它将根据您正在使用的屏幕阅读器和浏览器而有效。

例如,使用NVDA和Firefox,它会正确地宣布错误消息,而使用Chrome时,它只会宣布错误。

最佳选择是继续使用setCustomValidity()并且只要所有屏幕阅读器 - 浏览器组合未正确宣布错误,使用Success Criterion 3.3.1 - Error Identification

中提供的某种技术

例如,Using ARIA role of alert for Error Feedback in Forms

<input name="email" aria-invalid="true" aria-describedby="alert_email" />
<p role="alert" id="alert_email">This email address already exists</p>
  

注意:如果用户希望再次传达错误消息,则可以提供属性描述的ARIA作为有用的补充,以提供对错误的引用,但对于成功应用此技术并非严格必要,并且是附带的应用这种技术