Yes and no, I've found several snippets but I haven't had a lot of luck testing 
them. So far as I can tell what we're looking for here is the windows first 
responder which by claim should be returned by either subleasing the window or 
just calling [window firstresponder]. Unfortunately that seems to return the 
highest responder (i.e.: the window itself or in one test just now a subclassed 
view) but not the lowest element (which is what we care about) i.e. an 
NSTextField. I'll do some more tinkering and see if I can't get back to you on 
that.


On Jul 20, 2014, at 4:08 PM, Alex Hall <mehg...@icloud.com> wrote:

> Oh, thanks. That's what I get for not reviewing the spelling. :) So, is there 
> a quick way of getting the focused UI element, or does the app need to track 
> it manually?
> On Jul 20, 2014, at 5:51 PM, Tyler Thompson <tktpianostud...@gmail.com> wrote:
> 
>> the value: @"High" is the priority, as in low, medium, high. The second 
>> parameter must be the UI element that currently has keyboard focus, this can 
>> be a NSView object or subclass it can also be a custom object. If you pass 
>> the object as nil you'll get no result. I don't know if it'll result in a 
>> crash or not.
>> 
>> 
>> On Jul 20, 2014, at 3:49 PM, Alex Hall <mehg...@icloud.com> wrote:
>> 
>>> This looks like what I've been searching for for a while now, thanks for 
>>> sharing! What is the second parameter, though? Can it be nil,or does it 
>>> need to be some NSView object or subclass? Also, in your demo, why provide 
>>> the string "Hi" instead of using the string that was passed n? I just want 
>>> to be sure I understand the process. Thanks again.
>>> On Jul 20, 2014, at 5:08 PM, Tyler Thompson <tktpianostud...@gmail.com> 
>>> wrote:
>>> 
>>>> Hello, this is a tidbit for those of you interested in developing for OSX,
>>>> 
>>>>    I have dug through tons of documentation on VoiceOver accessibility and 
>>>> submitted several support tickets to apple for assistance and I finally 
>>>> wrote this function I thought I'd share with everybody:
>>>> 
>>>> -(void)speakString:(NSString *)stringToSpeak 
>>>> fromFocusedUIElement:(id)object
>>>> {
>>>>         NSDictionary *announcementInfo = [[NSDictionary alloc] 
>>>> initWithObjectsAndKeys:stringToSpeak, NSAccessibilityAnnouncementKey, 
>>>> @"High", NSAccessibilityPriorityKey, nil];
>>>>         NSAccessibilityPostNotificationWithUserInfo(object, 
>>>> NSAccessibilityAnnouncementRequestedNotification, announcementInfo);
>>>> }
>>>> 
>>>> This could easily be expanded on, for instance we could include in this 
>>>> function a way to tell the object that currently has keyboard focus to 
>>>> assure that VoiceOver always speaks the string as opposed to you having to 
>>>> figure it out. We could also add a NSAccessibilityLayoutChanged 
>>>> notification to refresh the braille display (Although in some very bizarre 
>>>> cases this causes VoiceOver to speak twice (once with the announcement, 
>>>> once for the layout change). In other cases the announcement interrupts 
>>>> the layout change notification or visa versa, I have yet to figure that 
>>>> bit out. 
>>>> 
>>>> However I felt like this code snippet could do some people good, so there 
>>>> it is.
>>>> 
>>>> -- 
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "MacVisionaries" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>> email to macvisionaries+unsubscr...@googlegroups.com.
>>>> To post to this group, send email to macvisionaries@googlegroups.com.
>>>> Visit this group at http://groups.google.com/group/macvisionaries.
>>>> For more options, visit https://groups.google.com/d/optout.
>>> 
>>> --
>>> Have a great day,
>>> Alex Hall
>>> mehg...@icloud.com
>>> 
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "MacVisionaries" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to macvisionaries+unsubscr...@googlegroups.com.
>>> To post to this group, send email to macvisionaries@googlegroups.com.
>>> Visit this group at http://groups.google.com/group/macvisionaries.
>>> For more options, visit https://groups.google.com/d/optout.
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "MacVisionaries" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to macvisionaries+unsubscr...@googlegroups.com.
>> To post to this group, send email to macvisionaries@googlegroups.com.
>> Visit this group at http://groups.google.com/group/macvisionaries.
>> For more options, visit https://groups.google.com/d/optout.
> 
> --
> Have a great day,
> Alex Hall
> mehg...@icloud.com
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "MacVisionaries" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to macvisionaries+unsubscr...@googlegroups.com.
> To post to this group, send email to macvisionaries@googlegroups.com.
> Visit this group at http://groups.google.com/group/macvisionaries.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"MacVisionaries" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to macvisionaries+unsubscr...@googlegroups.com.
To post to this group, send email to macvisionaries@googlegroups.com.
Visit this group at http://groups.google.com/group/macvisionaries.
For more options, visit https://groups.google.com/d/optout.

Reply via email to