Html 如何以编程方式关闭JAWS的虚拟光标?
当您在我的应用程序中搜索某些内容时,我有一些动态文本“n results found”。我在这个元素上有Html 如何以编程方式关闭JAWS的虚拟光标?,html,accessibility,wai-aria,jaws-screen-reader,web-accessibility,Html,Accessibility,Wai Aria,Jaws Screen Reader,Web Accessibility,当您在我的应用程序中搜索某些内容时,我有一些动态文本“n results found”。我在这个元素上有aria atomic=“true”和aria live=“assertive”,如下所示: <p aria-atomic="true" aria-live="assertive">n results found</p> 找到结果 在Mac的画外音中,信息正确无误地发出。但在装有JAWS软件的Windows上,信息不会被发出。我注意到,如果我使用快捷方式“Inser
aria atomic=“true”
和aria live=“assertive”
,如下所示:
<p aria-atomic="true" aria-live="assertive">n results found</p>
找到结果
在Mac的画外音中,信息正确无误地发出。但在装有JAWS软件的Windows上,信息不会被发出。我注意到,如果我使用快捷方式“Insert+Z”关闭虚拟光标,aria-live
字符串将正确地发出
我不希望用户点击Insert+Z
来实现此功能。有没有办法以编程方式禁用虚拟光标?或者有没有其他办法来解决这个问题
非常感谢您的帮助
PS:我尝试了其他几种组合,比如使用role=“status”
,role=“alert”
和aria live=“little”
,aria atomic=“true”
。所有这些都可以在Mac的voiceover上使用,并且在使用JAWS的windows上禁用虚拟光标时也可以使用。简短回答
简短的回答是“否”,您不能从浏览器中禁用虚拟光标。
对于活动区域,有一些属性组合和代码比其他属性组合和代码工作得更好。搜索一下,你应该能找到他们。许多人已经就这个问题写了文章
尽可能使您的代码标准化:使用ARIA、尊重WCAG等而不是使用复杂或专有的解决方案。
从长远来看,它对大多数用户和您自己的应用程序的维护都有好处
更长的答案
出于纯技术文化的考虑,较长的答案是肯定的,可以从外部程序运行Jaws脚本。有两种解决方案:
BOOL运行脚本(BSTR)
和BOOL运行函数(BSTR)
BOOL运行脚本(BSTR)
和BOOL运行函数(BSTR)
但即使在后面的例子中,我也强烈建议不要这样做,除非您有非常特殊和精确的需求。事实证明,JAWS在这项工作中有一些非常紧张的属性规则。我最终通过以下属性之一实现了这一点:
<p aria-live="assertive">n results found</p>
<p aria-live="polite">n results found</p>
我知道带有aria live=“assertive”
的role=“alert”
是多余的,因为aria live=“assertive”
在使用时会隐式添加角色警报。但我确实尝试过它作为一个实验,因此上面提到了它
所有这些在Mac的画外音上都做得很好 原来JAWS在这项工作中有一些非常紧张的属性规则。我最终通过以下属性之一实现了这一点:
<p aria-live="assertive">n results found</p>
<p aria-live="polite">n results found</p>
我知道带有aria live=“assertive”
的role=“alert”
是多余的,因为aria live=“assertive”
在使用时会隐式添加角色警报。但我确实尝试过它作为一个实验,因此上面提到了它
所有这些在Mac的画外音上都做得很好 您使用的是什么版本的JAWS?还有什么浏览器?这个问题在其他浏览器中仍然存在吗?JAWS 18。是的,我在chrome和Firefox上看到了这个问题,WindowsJaws 18上也有类似的问题,结果是我受到了这个线程中的一个bug的影响,我不确定你是否也遇到了同样的问题,但值得调查。我已经看到这条线了。这对我没有帮助,但非常感谢:)你使用的是什么版本的JAWS?还有什么浏览器?这个问题在其他浏览器中仍然存在吗?JAWS 18。是的,我在chrome和Firefo上看到了这个问题