Alright, solution time; this requires you to pass an NSWindow for mainWindow (I just linked it using an IBOutlet)
-(void)speakString:(NSString *)stringToSpeak { NSDictionary *announcementInfo = [[NSDictionary alloc] initWithObjectsAndKeys:stringToSpeak, NSAccessibilityAnnouncementKey, @"High", NSAccessibilityPriorityKey, nil]; NSAccessibilityPostNotificationWithUserInfo([mainWindow firstResponder].accessibilityFocusedUIElement, NSAccessibilityAnnouncementRequestedNotification, announcementInfo); } 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.