Hi, I have written some smartphone applications for the visually impaired people. The Xamarin.Forms Framework greatly reduces my coding cost of my new application for iOS/Android.
The current version of Xamarin.Forms.MasterDetailPage - one of the most useful component - has strange behavior under the VoiceOver of iOS, as you can easily verified by running some samples (for example, here) with your iPhone's VoiceOver turned on.
When you move your finger on the detail page, the (hidden) master page reacts to your touch and the menu items on the master are read out. Let me introduce the workaround against this behavior.
MenuPage menuPage; ContentPage blankPage; public RootPage () { menuPage = new MenuPage (); blankPage = new ContentPage { Icon = menuPage.Icon, Title = menuPage.Title }; menuPage.Menu.ItemSelected += (sender, e) => NavigateTo (e.SelectedItem as MenuItem); Master = blankPage; Detail = new NavigationPage (new ContractsPage ()); IsPresentedChanged += (object sender, EventArgs e) => Master = IsPresented ? menuPage : blankPage; }
I hope the behavior will be fixed in the some point of future Xamarin.Forms releases, however, I also hope this quick fix may help programmers who develop Xamarin.Forms applications and visually impaired people who use your applications.