簡體   English   中英

JavaScript按鍵功能和JAWS

[英]JavaScript keypress function and JAWS

我有一個必須符合ADA要求的客戶端。 使用IE9和JAWS屏幕閱讀器時,我們發現了一個問題。 我們設置了一個jQuery函數,以在用戶Tab向下按一個按鈕並按Enter時滾動到頁面上的另一個元素。 這是函數:

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

問題是在運行JAWS時, 按Enter鍵不會執行任何操作。 我必須按Shift + Enter才能滾動到相應的部分並開始閱讀。

這是正常現象。 發生這種情況的原因是JAWS(以及大多數其他現代屏幕閱讀器,btw)如何處理網頁和其他類似HTML的內容。
當用戶打開網頁時,他/她使用所謂的虛擬光標對其進行觀察。 這意味着所有鍵盤命令都會更改其在網頁上的含義。 這樣做是為了快速導航。 例如,如果按h ,則移至下一個標題。 如果按b ,則移至下一個按鈕,依此類推。
為了輸入內容,您應該處於表單模式。 要進入表單模式,應在表單元素(例如,編輯字段或組合框)上按Enter
這就是說,您不能期望在不運行JAWS的情況下可以像以前那樣處理Enter。

您在這里有兩種解決方案:

  1. 將擊鍵更改為從Enter滾動到元素,例如Ctrl + Enter (我建議選擇另一個,因為Ctrl + Enter用於以大量Messenger和其他軟件發送消息)。
  2. application ARIA角色分配給頁面的一部分。 如果JAWS遇到application角色,它將把所有鍵盤命令傳遞到網頁本身。 但是請謹慎使用此模式,因為W3 Consortium建議不要過度使用此角色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM