2014-10-29 31 views
1

我有一個客戶端需要符合ADA。使用ie9和JAWS屏幕閱讀器時發現問題。我們有一個Jquery函數,當你按下一個按鈕並按下回車鍵時,設置爲滾動到頁面上的另一個元素。這裏是功能:JavaScript keypress功能和JAWS

jQuery('#ball_i5nqtjcVVB0CxYBJICklS6w').keypress(function(event) { 
if (event.keyCode == 13) { 
    jQuery("#headofcurve").focus(); 
    scrollTo("form"); 
    liveballTag('Learn More'); 
} 

});

問題是,當JAWS運行時,按ENTER鍵不會執行任何操作。我必須按SHIFT + ENTER才能滾動到正確的部分並開始閱讀。任何幫助或建議非常感謝。

+0

是什麼元素,你選擇並按回車?它是鏈接還是表單控件?如果沒有,它可能無法按預期工作,沒有多餘的標記/腳本。 – AlastairC 2014-10-30 22:08:31

+0

AlastairC它是一個鏈接。點擊按鈕或點擊ENTER時,應將頁面向下滾動到視頻部分或表格 - 取決於您選擇哪個按鈕。 jQuery被用於scrollTo函數。 – user2054724 2014-11-03 15:47:53

回答

4

這是正常行爲。它發生的原因是JAWS(以及大多數其他現代屏幕閱讀器,btw)如何處理網頁和其他類似HTML的內容。
當用戶打開一個網頁時,他/她用一個所謂的虛擬光標觀察它。這意味着所有的鍵盤命令都會改變它們在網頁上的含義。這是爲了快速導航而完成的。例如,如果按h,則移至下一個標題;如果按b,則移至下一個按鈕,依此類推。
爲了輸入內容,您應該處於表單模式。要進入表格模式,您應該按下在表格元素上輸入,例如編輯欄或組合框。
這就是說,你不能指望輸入將被處理,因爲你用它來做沒有JAWS運行。

你這裏有兩種解決方案:

  1. 更改按鍵從滾動到你的元素輸入,比方說,Ctrl + Enter(我建議選擇其他因爲Ctrl + Enter用於在大量的信使和其他軟件中發送消息)。
  2. 指定application將ARIA角色分配到頁面的一部分。如果JAWS遇到application角色,它會將所有鍵盤命令傳遞給網頁本身。但是對於這個模式要非常小心,因爲W3 Consortium建議不要過度使用這個角色。
+0

老兄,你是最棒的! – BradStell 2017-11-29 19:53:40