注意:在Xamarin.Forms 2.3.5-pre3发布版,我们将类名Accessibility变更为AutomationProperties。

iOS、Android和Windows都公开了开发人员为每个人构建可访问的移动应用程序的API。 我们很高兴地宣布,我们已经添加了新的API访问Xamarin.Forms,使它更容易为开发人员构建访问,跨平台移动应用。在这篇文章中,我们将在新的API添加到Xamarin.Forms,使它容易建立访问的移动应用。

Xamarin.Forms中的AutomationProperties APIs

Xamarin.Forms 2.3.5提供与提示相关的可访问性API的基本集。包含以下内容:

  • AutomationProperties.Hint
  • AutomationProperties.IsInAccessibleTree
  • AutomationProperties.LabeledBy
  • AutomationProperties.Name

通过定义这些属性,我们可以利用iOS和Android中的底层可访问性功能,比如 VoiceOver

Making the Xamarin Evolve 2016 App Accessible

挖掘这些新API如何工作的最简单方法是使用真实世界的示例。我们制作一个LoginPage, 它源自 Xamarin Evolve 2016 移动应用 并且使用Xamarin.Forms中的新APIs可访问。在这个布局中,我们有可用的Xamarin.Forms 元素,就像 Entry 和utton。在Xamarin.Forms 2.3.5之前, 我们会利用平台效应或自定义渲染器利用访问API。使用新APIs,我们只需要添加一些属性,我们的移动应用程序就可以访问了:

点击(此处)折叠或打开

  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这样的控件,我们读取获取Hint和Name值的组合。

在iOS中启用VoiceOver,导向到Settings -> General -> Accessibility -> VoiceOver。在Android中,安装 TalkBack 它很可能已经安装在设备上,并且可以在 Settings -> Accessibility -> Vision访问。Windows用户可以在设置选项的方便下启用解说器。

记住,你需要有Xamarin.Forms 2.3.5,并在所有工程中使用Xamarin.Forms,包括你的iOS 和Android项目。注意AutomationProperties属性可能是不可感知的,因为它是附加属性。

结论

正如您已经看到的,上面的例子,仅增加四属性在XAML添加提示我控制我的手机应用程序驱动的可访问性。 我们鼓励您将这些新API添加到Xamarin.Forms 2.3.5来做一个尝试,让我们知道你的想法!您可以在每个平台的网站上阅读更多关于可访问性特性的信息。 (iOS, Android, Windows)。