Forum Xamarin.iOS

How to avoid VoiceOver accessibility announcements being cut short

JohnHardmanJohnHardman GBUniversity admin

Using Xamarin.iOS, I know how to post a queued accessibility announcement, so that it doesn't cut short any VoiceOver stuff being read aloud currently. However, how can I prevent VoiceOver stuff that I don't control from cutting short my announcements?

For example, if I queue an announcement so that VoiceOver speaks the name of each page as it opens, the announcement is often cut short by the accessibility focus appearing on the first control on the page. I don't want to delay the page becoming responsive, but I do want to hear the page name before the AccessibilityName of that first control is read out. Is there any way to make this happen reliably?

Answers

  • ColeXColeX Member, Xamarin Team Xamurai
    edited November 2020

    I think this solution answers your question .

    Code in Xamarin

        if (UIAccessibility.IsVoiceOverRunning)
            {
                Task.Delay(TimeSpan.FromSeconds(0.5));
    
                UIAccessibility.PostNotification(UIView.LayoutChangedNotification, controlName);
            }
    
Sign In or Register to comment.