title: UIAccessibilityAnnouncementNotification VoiceOver Interruption
body: <p>I'm having a great deal of trouble with iOS 7/8 UIAccessibility.  The specific use case I am working with is what I would expect to be a pretty common "progress saved" use case.</p>
  
  <p><strong>EDIT:</strong>
  It has been brought to my attention that the desired outcome was not clear from my original question, so I've added a description here:  The goal is for the "progress saved" message to be spoken via VoiceOver, either in lieu of the NavigationBar title being spoken, or after it has been spoken.  I'm not sure what the <em>typical</em> behaviour is for accessibility in this case, so maybe someone familiar with iOS Accessibility can clarify this as well.</p>
  
  <p>Starting from the simplest solution, and working towards the most complicated, I tried the following approaches.</p>
  
  <pre><code>-(void) showProgressSavedPanel {
  
      ... // present the panel toast
      NSString * message = NSLocalizedString(@"Your progress has been saved.", @"Progress saved message");
      UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, message);
  }
  </code></pre>
  
  <p>Unfortunately, with this approach, the announcement is quickly <em>interrupted</em> by VoiceOver when it automatically speaks the navbar title followed by the title of the back button.  The actual VoiceOver result is something like "Your progress has -- Navbar Title -- Back Button."</p>
  
  <p>Reading on about iOS accessibility, I discovered a new API, which also does not seem to work.  Having added a new IBOutlet pointing directly to the progress saved label, I replaced the code above with the following:</p>
  
  <pre><code>-(void) showProgressSavedPanel {
  
      ... // present the panel toast
      UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, _progressSavedLabel);
  }
  </code></pre>
  
  <p>Using either <code>UIAccessibilityScreenChangedNotification</code> or <code>UIAccessibilityLayoutChangedNotification</code> had the same outcome: the expected message was not spoken whatsoever.  No matter what I do it seems like VoiceOver just wants to speak the navbar title.</p>
  
  <p>I have come up with a solution that makes me a very sad panda, which is to use the first solution except post the announcement notification after an arbitrary delay (1.5 seems to work), causing the announcement to occur <strong>after</strong> the back bar button item has been spoken.</p>
  
  <p>Does anyone know of a better approach?</p>
  
  <p>Thanks in advance :)</p>