[英]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.