通过orderFrontRegardless显示此窗口,但未给出键盘焦点.
该窗口包含一个带有帮助文本的NSTextVIEw.
对于有视觉障碍的用户,我希望OS X的画外音可以在出现时立即读取该窗口文本视图的内容.
我试图让VoiceOver通过以下方式阅读文本:
NSAccessibilityPostNotification(textVIEw,NSAccessibilityValueChangednotification);
在我的NSTextVIEw子类中,然后覆盖可访问性方法:
- (ID)accessibilityAttributeValue:(Nsstring *)attribute{ //The notification calls this method for attributes: //AXRole: returns AXTextArea //AXSharedCharacterRange: returns range of the text vIEw return [super accessibilityAttributeValue:attribute];}
该通知使其查询AXRole(NSAccessibilityRoleAttribute)和AXSharedCharacterRange(NSAccessibilitySharedCharacterRangeAttribute).
字符范围正确返回文本区域的范围.
但是,AXValue(NSAccessibilityValueAttribute)在任何时候都没有请求.这就是我希望VoiceOver读取文本字段时需要的.
为什么NSAccessibilityValueChangednotification没有请求TextVIEw的NSAccessibilityValueAttribute?如何让VoiceOver读取文本区域的文本?
解决方法 我相信如果不将焦点设置为所需的NSTextVIEw,就无法做到这一点.我找到了一个使用iOS的解决方案,可以在这个OSX应用程序中实现:VoiceOver: force an accessibility element to be selected after a screen transition
In iOS you can pass in an accessibility element when posting a
UIAccessibilityLayoutChangednotification
orUIAccessibilityScreenChangednotification
as the second argument toUIAccessibilityPostNotification
and VoiceOver will focus on that
element.
也许你可以使用NSAccessibility框架和NSAccessibilityPostNotification类似的方法
总结以上是内存溢出为你收集整理的objective-c – 强制NSAccessibility Voiceover读取未聚焦的OS X文本字段?全部内容,希望文章能够帮你解决objective-c – 强制NSAccessibility Voiceover读取未聚焦的OS X文本字段?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)