押すと「ヘルパー」ウィンドウが表示されるボタンがあります。
このウィンドウは表示されますが、キーボード フォーカスは与えられません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 でテキスト領域のテキストを読み上げるにはどうすればよいですか?