Ho un pulsante, che quando premuto, mostra una finestra "helper".Forza NSAccessibilità Voiceover per leggere il campo di testo OS X sfocato?
Questa finestra viene visualizzata, ma non fornita con lo stato attivo della tastiera, tramite orderFrontRegardless
.
La finestra contiene un NSTextView
con testo di supporto interno.
Per gli utenti con problemi di vista, vorrei che la voce fuori campo di OS X legga immediatamente il contenuto della visualizzazione di testo di questa finestra quando viene visualizzata.
Sto tentando di fare VoiceOver leggere il testo tramite:
NSAccessibilityPostNotification(textView, NSAccessibilityValueChangedNotification);
Nel mio sottoclasse di NSTextView
Ho poi override del metodo di accessibilità:
- (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];
}
La notifica fa sì che una query per AXRole
(NSAccessibilityRoleAttribute
) e AXSharedCharacterRange
(NSAccessibilitySharedCharacterRangeAttribute
).
L'intervallo di caratteri restituisce correttamente l'intervallo dell'area di testo.
Tuttavia, non è richiesto AXValue
(NSAccessibilityValueAttribute
). Quello che mi aspetto è richiesto quando vuoi che VoiceOver legga il campo di testo.
Perché il NSAccessibilityValueChangedNotification
non richiede il TextView NSAccessibilityValueAttribute
? Come faccio a fare in modo che VoiceOver legga il testo dell'area di testo?