使您的Xamarin.Forms应用程序可访问

4670阅读 0评论2017-10-18 renxiao2003
分类:Android平台

iOS,Android和Windows都会为开发人员公开API,为每个人构建可访问的移动应用。 我们很高兴地宣布,我们在Xamarin.Forms中添加了可用性的新API,以便开发人员更轻松地构建可访问的跨平台移动应用程序。 在这篇文章中,我们将介绍添加到Xamarin.Forms中的新API,从而轻松构建可访问的移动应用程序。

XAMarin.Forms中的AutomationProperties APIs

provides a base set of hint-related accessibility APIs. They consist of the following:提供了一组提示相关的可访问性API。 它们包括以下内容:

通过定义这些属性,我们可以利用iOS和Android中的底层辅助功能,例如。

使Xamarin Evolve 2016应用程序可访问

挖掘这些新API如何工作的最简单的方法是与现实世界的例子。 让我们从中登录,并使用Xamarin.Forms中的新API进行访问。 在这个布局中,我们有通常的Xamarin.Forms元素,如Entry和Button。 在Xamarin.Forms 2.3.5之前,我们必须使用平台效果或自定义渲染器来利用可访问性API。 使用新的API,我们只需添加一些属性,我们的移动应用就可以访问:

点击(此处)折叠或打开

  1. <toolkit:EntryLine
  2.         Text="{Binding Email}"
  3.         Keyboard="Email"
  4.         HorizontalOptions="FillAndExpand"
  5.         Placeholder="email address"
  6.         x:Name="EntryEmail"
  7.         StyleId="EmailTextField"
  8.         IsEnabled="{Binding IsNotBusy}"
  9.         BorderColor="#ECECEC"
  10.         AutomationProperties.Hint="Enter your email here"
  11.         AutomationProperties.IsInAccessibleTree="true"
  12.         AutomationProperties.Name="Email entry field">
  13.  
  14.         <toolkit:EntryLine.HorizontalTextAlignment>
  15.             <OnPlatform x:TypeArguments="TextAlignment" iOS="Center"/>
  16.         </toolkit:EntryLine.HorizontalTextAlignment>
  17. </toolkit:EntryLine>


在启用辅助功能的物理设备上运行代码,并为用户提供为AutomationProperties.Hint提供的值。 这在iOS上使用VoiceOver 在Android上,一些控件,包括Button,不幸的是,由于与Android本身有关的原因,它们的行为不正确,尽管Slider等元素将读取“提示”和“名称”值的组合。

要在iOS中启用VoiceOver,请导航到设置 - >常规 - >辅助功能 - > VoiceOver。 对于Android,请安装“”,这很可能已经在设备上安装,并且可以在“设置” - >“辅助功能” - >“视觉”下启用。 Windows用户可以在“设置”中的“轻松访问”选项下启用旁白。

记住,您将需要将Xamarin.Forms 2.3.5添加到使用Xamarin.Forms的所有项目中,包括您的iOS和Android项目。 请注意,IntelliSense中的AutomationProperties属性可能不可用,因为它们是附加的属性。

结论

正如您在上面的示例中看到的,在XAML中仅添加了四个属性给我的控件,为我的移动应用程序添加了提示驱动的可访问性。 我们鼓励您在Xamarin.Forms 2.3.5中提供这些新API,并让我们知道您的想法! 您可以在每个平台的网站上阅读有关各种辅助功能的更多信息 (iOS, Android, )。

上一篇:Xamarin.Forms自适应UI
下一篇:预览:将macOS引入Xamarin.Forms