簡體   English   中英

如何讓 JAWS 更新其 aria-hidden 值緩存

[英]How to get JAWS to update its cache of aria-hidden values

我有一個網絡應用程序,我們在其中動態切換某些元素的 aria-hidden 屬性以響應用戶輸入。 這似乎與 VoiceOver 一起工作正常,但顯然與 JAWS 一起失敗了。 當我將該值設置為 true 然后再設置為 false 時,JAWS 顯然沒有意識到不應再隱藏這些元素,因此拒絕導航到它們。

我整理了一個簡單的 jsbin 示例來展示我在做什么。 是否有更好的方法來執行此操作,或者在清除 aria-hidden 標志以說服 JAWS 重新加載其 state 時我需要做些什么?

這個例子的工作原理如下:

  • 當您開始時,您可以使用 B 鍵在兩個按鈕之間導航,回到頂部。
  • 當您按下標有“切換隱藏狀態”的按鈕時,它會將另一個按鈕上的 aria-hidden 標志更改為 true 和完全不存在。
  • 按一次后,使用 B 鍵報告頁面上現在只有一個按鈕,這是一項功能。
  • 但是,當我第二次按下按鈕時,JAWS 仍然看不到該按鈕。

在我看來(通過使用 Chrome 開發人員工具)DOM 元素已正確更新。 我認為由於 state 通過 Javascript 更改而不是重新加載頁面,這混淆了 JAWS 引擎,但我不確定如何超越這一點。 非常感激任何的幫助。

JSBin 示例

JAWS 為虛擬 cursor 導航生成 DOM 的 XML 表示。 有時,此 XML 表示不會像頁面更新那樣頻繁更新(這取決於本機 JAWS 腳本中的事件掛鈎是否在頁面加載和頁面更新事件時觸發)。

有一種手動更新 JAWS 虛擬 DOM 的方法: Insert + Escape 這會執行屏幕刷新,並應使用最新的aria-hidden屬性值更新虛擬文檔 XML。

另一種方法是編寫一個 JAWS 腳本來監視 DOM 更改,盡管該解決方案將特定於您的 web 應用程序或 web 頁面。

暫無
暫無

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

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