我有一个按钮,按下时会显示一个“帮助”窗口。
通过 显示此窗口,但未指定键盘焦点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 朗读文本区域的文本?