GWT框架的JAWS可访问性问题

时间:2018-07-05 06:51:39

标签: java gwt accessibility jaws-screen-reader

在我的应用程序中,我们使用了各种类型的下拉GWT组件。我使用的是JAWS最新版本。

JAWS为“ Downarrow”具有一些默认的键盘管理器设置,它们执行相应的功能。在我的应用程序中,打开下拉列表时,按下“向下箭头”时,JAWS会一一读取下拉列表中的值列表以及相应的突出显示内容。

但是在“输入”键上,没有选择该特定值。

在关闭JAWS时,向下箭头将执行其各自的功能,即移至下一条记录,并在按Enter键时,在下拉列表中选择该特定值。

JAWS默认设置被应用程序设置覆盖。我尝试了各种属性,例如“ aria-labelledby”,“角色-组合框,菜单项”。但没有运气。有人可以帮忙吗?

1 个答案:

答案 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键。