Mam przycisk, który po naciśnięciu pokazuje okno "pomocnika".Wymuszenie głosu w systemie NSAccessibility w celu odczytania nieostrego tekstu OS X?
To okno jest wyświetlane, ale nie podświetlone na klawiaturze, przez orderFrontRegardless
.
Okno zawiera NSTextView
z tekstem pomocnika w środku.
Dla użytkowników z dysfunkcją wzroku chciałbym, aby podkład głosowy OS X natychmiast przeczytał zawartość widoku tekstowego tego okna, gdy się pojawi.
ja próbuje zrobić VoiceOver czytać tekst poprzez:
NSAccessibilityPostNotification(textView, NSAccessibilityValueChangedNotification);
W moim podklasy NSTextView
I wtedy zastąpić metodę Dostępność:
- (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];
}
Powiadomienie powoduje, że zapytania o AXRole
(NSAccessibilityRoleAttribute
) i AXSharedCharacterRange
(NSAccessibilitySharedCharacterRangeAttribute
).
Zakres znaków poprawnie zwraca zakres obszaru tekstu.
Jednak w żadnym momencie nie jest wymagane AXValue
(NSAccessibilityValueAttribute
). Oczekuję, że będzie to wymagane, gdy VoiceOver będzie czytał pole tekstowe.
Dlaczego NSAccessibilityValueChangedNotification
nie wymaga przesłania do obiektu tekstowego NSAccessibilityValueAttribute
? Jak sprawić, aby VoiceOver odczytał tekst obszaru tekstowego?