在我的应用程序中,我们使用了各种类型的下拉GWT组件。我使用的是JAWS最新版本。
JAWS为“ Downarrow”具有一些默认的键盘管理器设置,它们执行相应的功能。在我的应用程序中,打开下拉列表时,按下“向下箭头”时,JAWS会一一读取下拉列表中的值列表以及相应的突出显示内容。
但是在“输入”键上,没有选择该特定值。
在关闭JAWS时,向下箭头将执行其各自的功能,即移至下一条记录,并在按Enter键时,在下拉列表中选择该特定值。
JAWS默认设置被应用程序设置覆盖。我尝试了各种属性,例如“ aria-labelledby”,“角色-组合框,菜单项”。但没有运气。有人可以帮忙吗?
答案 0 :(得分:0)
默认情况下,运行JAWS时的向上/向下箭头键会将您移至DOM中的下一个元素。如果该元素是使用向上/向下键进行交互的交互式组件(例如收音机),那么JAWS将自动切换到“表单模式”(类似于迷你应用程序模式),以便可以解释箭头键由组件代替屏幕阅读器。 (用户可以选择是否打开自动表单模式)。要退出表单模式,请按Escape键。
如果您拥有自己的自定义组件,其行为类似于本机组件,则只要您具有适当的ARIA角色和属性(例如Write-unsafe context! Model changes are allowed from write-safe contexts only. Please ensure you're using invokeLater/invokeAndWait with a correct modality state (not "any"). See TransactionGuard documentation for details.
current modality=ModalityState.NON_MODAL
known modalities:
ModalityState:{}, writingAllowed=true;
ModalityState.NON_MODAL, writingAllowed=true
com.intellij.openapi.diagnostic.Logger$EmptyThrowable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:140)
at com.intellij.openapi.application.TransactionGuardImpl.assertWriteActionAllowed(TransactionGuardImpl.java:232)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveDocument(FileDocumentManagerImpl.java:341)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveDocument(FileDocumentManagerImpl.java:336)
at com.crashlytics.tools.ide.app.onboard.IntellijCode$3.run(IntellijCode.java:91)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:822)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
和role="radiogroup"
),JAWS就应该切换到表单模式自动。
有关更多详细信息,请参见https://www.freedomscientific.com/Support/TechnicalSupport/Bulletin/1665。该文章的标题谈论的是role =“ applications”和role =“ document”,但谈论的是表单模式和Enter键。