Ich habe eine Taste, die beim Drücken zeigt ein "Helfer" -Fenster.NSAccessibility Voiceover erzwingen, um unfokussiertes OS X Textfeld zu lesen?
Dieses Fenster wird über orderFrontRegardless
angezeigt, aber nicht über den Tastaturfokus.
Das Fenster enthält einen NSTextView
mit Hilfstext darin.
Für sehbehinderte Benutzer möchte ich, dass OS X Voiceover sofort den Inhalt der Textansicht dieses Fensters liest, wenn es angezeigt wird.
ich Voiceover bin versucht zu machen, lesen Sie den Text über:
NSAccessibilityPostNotification(textView, NSAccessibilityValueChangedNotification);
In meiner Unterklasse von NSTextView
ich dann die Zugänglichkeit Methode außer Kraft setzen:
- (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];
}
Die Meldung bewirkt, dass es für AXRole
abzufragen (NSAccessibilityRoleAttribute
) und AXSharedCharacterRange
(NSAccessibilitySharedCharacterRangeAttribute
).
Der Zeichenbereich gibt den Bereich des Textbereichs korrekt zurück.
Jedoch wird AXValue
(NSAccessibilityValueAttribute
) an keinem Punkt angefordert. Das ist, was ich erwarte, wenn VoiceOver das Textfeld lesen soll.
Warum fordert die NSAccessibilityValueChangedNotification
nicht die NSAccessibilityValueAttribute
von TextView an? Wie lasse ich VoiceOver den Text des Textbereichs lesen?