5

押すと「ヘルパー」ウィンドウが表示されるボタンがあります。

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

4

2 に答える 2