2014-03-05 39 views
2

我試圖讓屏幕閱讀器讀取已禁用的數字旋鈕/文本框的值,以使它們不可編輯。這些框的值在上下文中很重要,但屏幕閱讀器(本例中爲JAWS)僅將小部件的值讀取爲「不可用」。我試圖設置唱名需求='真',沒有這樣的運氣。有沒有其他方法讓屏幕閱讀器說出這些值?如何讓屏幕閱讀器使用aria讀取禁用的元素?

例:

<input id='exampleInput' disabled='true' aria-required='true'>1</input> 
+2

我認爲你需要將它設置爲只讀。 –

+0

我無法將元素設置爲只讀,因爲這會干擾其他JavaScript。我試過只讀詠歎調,但禁用取代那個。 –

+0

我能想到的唯一的其他選擇是使用javascript取消對輸入的更改。 –

回答

1

我最近遇到了類似的問題,我的解決辦法是使用所有殘疾人按鈕一些信息文本,這是隻有通過屏幕閱讀器查看。我使用了一個按鈕元素,所以它仍然保留了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

2

使用只讀屬性是這裏的正確的選擇。

如果與你這會搞亂JavaScript的話,我建議改變你的JavaScript,這樣它會檢查是否有其他的東西,然後禁用屬性。

這可以通過使用一個CSS類來完成,或者通過增加新的屬性,或者你可以將新字段添加到DOM對象,並使用它。

相關問題