Ahh and I forgot to mention that if you want to just test this, use a timer on a 10 second delay because an announcement will not speak over the top of VoiceOver announcing that your build succeeded and application opened.
On Jul 20, 2014, at 5:02 PM, Tyler Thompson <tktpianostud...@gmail.com> wrote: > 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.