我試圖讓屏幕閱讀器讀取已禁用的數字旋鈕/文本框的值,以使它們不可編輯。這些框的值在上下文中很重要,但屏幕閱讀器(本例中爲JAWS)僅將小部件的值讀取爲「不可用」。我試圖設置唱名需求='真',沒有這樣的運氣。有沒有其他方法讓屏幕閱讀器說出這些值?如何讓屏幕閱讀器使用aria讀取禁用的元素?
例:
<input id='exampleInput' disabled='true' aria-required='true'>1</input>
我試圖讓屏幕閱讀器讀取已禁用的數字旋鈕/文本框的值,以使它們不可編輯。這些框的值在上下文中很重要,但屏幕閱讀器(本例中爲JAWS)僅將小部件的值讀取爲「不可用」。我試圖設置唱名需求='真',沒有這樣的運氣。有沒有其他方法讓屏幕閱讀器說出這些值?如何讓屏幕閱讀器使用aria讀取禁用的元素?
例:
<input id='exampleInput' disabled='true' aria-required='true'>1</input>
我最近遇到了類似的問題,我的解決辦法是使用所有殘疾人按鈕一些信息文本,這是隻有通過屏幕閱讀器查看。我使用了一個按鈕元素,所以它仍然保留了Tab鍵順序的位置,所以如果一個屏幕閱讀器用戶在表格中標籤,它將被公佈,你需要實現一些代碼,以便在實際輸入完成後從DOM中移除元素啓用。
隱藏的元素作爲宣佈「數據價值遠遠在這裏禁用元素」時NVDA測試,你可以使用任何你想要的文字,很明顯。
HTML
<input type="text" name="myDisabledElement" disabled="disabled">
<button aria-disabled=」true」 class="sr-only">
data value goes here element disabled
</button>
CSS
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
你可以看到它在抽象的行動在這裏:http://codepen.io/chris-hore/pen/LEKyeM
使用只讀屬性是這裏的正確的選擇。
如果與你這會搞亂JavaScript的話,我建議改變你的JavaScript,這樣它會檢查是否有其他的東西,然後禁用屬性。
這可以通過使用一個CSS類來完成,或者通過增加新的屬性,或者你可以將新字段添加到DOM對象,並使用它。
我認爲你需要將它設置爲只讀。 –
我無法將元素設置爲只讀,因爲這會干擾其他JavaScript。我試過只讀詠歎調,但禁用取代那個。 –
我能想到的唯一的其他選擇是使用javascript取消對輸入的更改。 –