2017-08-07 135 views
1

假設我使用setCustomValidity()來爲字段設置自定義有效性消息,以描述表單字段無效的原因。這些內容可供使用輔助技術的用戶使用嗎?如果是的話,用戶通常可以使用它?使用AT的用戶是否可以訪問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

這將取決於您正在使用的屏幕閱讀器和瀏覽器。

例如,使用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描述的屬性作爲有用的添加以提供對錯誤的引用ul應用這種技術,並附帶應用此技術

相關問題