[英]How to get JAWS to update its cache of aria-hidden values
我有一個網絡應用程序,我們在其中動態切換某些元素的 aria-hidden 屬性以響應用戶輸入。 這似乎與 VoiceOver 一起工作正常,但顯然與 JAWS 一起失敗了。 當我將該值設置為 true 然后再設置為 false 時,JAWS 顯然沒有意識到不應再隱藏這些元素,因此拒絕導航到它們。
我整理了一個簡單的 jsbin 示例來展示我在做什么。 是否有更好的方法來執行此操作,或者在清除 aria-hidden 標志以說服 JAWS 重新加載其 state 時我需要做些什么?
這個例子的工作原理如下:
在我看來(通過使用 Chrome 開發人員工具)DOM 元素已正確更新。 我認為由於 state 通過 Javascript 更改而不是重新加載頁面,這混淆了 JAWS 引擎,但我不確定如何超越這一點。 非常感激任何的幫助。
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.