簡體   English   中英

如何停止 NVDA 讀取數組中存在的 HTML 元素的列表編號(第 1 個,共 2 個)

[英]How to stop NVDA reading out list number(1 of 2) for a HTML element present in an array

我正在使用 NVDA 屏幕閱讀器進行輔助功能測試。 同樣,我有 2 個按鈕/鏈接,它們是上下文菜單的一部分,因此存在於數組中,比如“提交”和“刪除”。 現在其中一個按鈕具有 aria-label="提交按鈕"。 NVDA 正在閱讀“提交按鈕 1,共 2 個”。 我只是想確保 NVDA 不會讀取 2 個中的 1 個。請提供幫助。

NVDA 對 arrays 或您用來編寫代碼的語言一無所知。它所知道的是語義 HTML 元素。 因此,如果您的按鈕或鏈接位於列表( <ul><ol> )中,或者按鈕本身是組的一部分,例如單選按鈕組( <input type="radio" name="groupName"> ),那么 NVDA 公布套裝內的物品編號是絕對正確的。

如果您使用aria-setsizearia-posinset等 ARIA 屬性,您也可以獲得“1 of 2”公告,但這些屬性並未被大量使用,所以我猜它不是那樣。

聽到“1 of 2”是屏幕閱讀器的一個很棒的功能,可以讓用戶了解集合有多大以及他們在集合中的哪個項目。 有視力的用戶通過眼睛獲得該信息。 您不想取消該功能,除非您濫用分組功能並且該按鈕實際上不是組的一部分。

獲取群組 position 公布的不同方式示例。

使用列表

<ul style="list-style: none;">
  <li>
    <button>first button</button>
  </li>
  <li>
    <button>second button</button>
  </li>
  <li>
    <button>third button</button>
  </li>
</ul>

我可以不使用真正的<ul> ,而是使用role="list"role="listitem"並獲得相同類型的“1 of 2”消息。

使用單選按鈕

<label>
  <input type="radio" name="groupName">
  first button
</label>
<br>
<label>
  <input type="radio" name="groupName">
  second button
</label>
<br>
<label>
  <input type="radio" name="groupName">
  third button
</label>

使用 ARIA 集

<div aria-setsize="3">
  <button aria-posinset="1">first button</button>
  <button aria-posinset="2">second button</button>
  <button aria-posinset="3">third button</button>
</div>

請注意,不同的屏幕閱讀器可能會以不同的方式宣布事物組。 有些人會說“1 of 2”,有些人可能只是說這是一組(沒有數字)。 它還取決於您如何導航到按鈕,是通過TAB鍵還是通過向上/向下箭頭鍵來遍歷 DOM。

但這里的教訓是,如果你有一組事物並且它被正確編碼,那么你希望屏幕閱讀器宣布組信息。 如果您的按鈕實際上不是組的一部分,但您仍然聽到組信息,那么您的代碼中存在錯誤。 如果您可以發布一些代碼,這可能會有所幫助。

暫無
暫無

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

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