簡體   English   中英

如何讓屏幕閱讀器 NVDA 在 listitem (ARIA) 上按下 ENTER 鍵?

[英]How can I make screen reader NVDA reads ENTER key when press it on listitem (ARIA)?

我從昨天開始就在努力讓它工作,但我做不到。 問題是:我有一個可以選項卡的項目列表,select 其中一個帶有 ENTER 鍵,但是當您按 ENTER 鍵進入所選項目時,ScreenReader 不會讀取任何內容。

我嘗試了很多東西, aria-selected="false" (它只適用於按鈕,但我試圖用<a>來做到這一點,所以它不起作用),javascript,aria-atomic="true"但輸入鍵不讀取 nvda(屏幕閱讀器)

這是我要修復的一段代碼

<div class="SelectedNames"> <ol> <li ng-repeat="name in names" ng-class"isSingleNameSelected(name) == true? 'selected': no-selected'" ng-click="verifySelected(name)"> <a href="%" class="nameTitle> {{ item.name }}</a>

我正在修改零件內部。 因為我猜它可以在不觸及代碼的 rest 的情況下工作

我不介意您是否可以向我展示另一種方式,例如沒有 aria 的 javascript 來執行此操作。 我只需要它在您按 Enter 進入列表項中的某個項目時才能工作,如果有人能發現如何修復它,我會很感激,因為我做不到。 謝謝

你的問題不是很清楚。 但我了解您希望“點擊”功能也可以在點擊“輸入”按鈕時發揮作用。 如果我的理解是正確的,則需要添加(keypress)事件。

好像您正在使用 Angular (因為我可以看到 ng-repeat 和所有)。 因此,您的代碼可以更改為此以支持鍵盤可訪問。

這稱為鍵盤可訪問性:

// Only Mouse click event 

<li (click)="callSomeFunction($event)"> 
   Some LI item
</li>


// Mouse click and Keyboard accessible event
<li (click)="callSomeFunction($event)" (keypress)="callSomeFunction($event)"> 
   Some LI item
</li>

(keypress)會做的是,每當你按下鍵盤上的任何按鈕時,它都會調用 function。

您可以使用另外 2 個事件: (keyup)(keydown) ,您可以在按鍵完成后或按鍵期間控制 function 的調用。 您可以使用任何您想要實現上述功能的東西。

暫無
暫無

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

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