iOS,Android和Windows都会为开发人员公开API,为每个人构建可访问的移动应用。 我们很高兴地宣布,我们在Xamarin.Forms中添加了可用性的新API,以便开发人员更轻松地构建可访问的跨平台移动应用程序。 在这篇文章中,我们将介绍添加到Xamarin.Forms中的新API,从而轻松构建可访问的移动应用程序。
XAMarin.Forms中的AutomationProperties APIs
Xamarin.Forms 2.3.5 provides a base set of hint-related accessibility APIs. They consist of the following:提供了一组提示相关的可访问性API。 它们包括以下内容:
- AutomationProperties.Hint
- AutomationProperties.IsInAccessibleTree
- AutomationProperties.LabeledBy
- AutomationProperties.Name
通过定义这些属性,我们可以利用iOS和Android中的底层辅助功能,例如VoiceOver。
使Xamarin Evolve 2016应用程序可访问
挖掘这些新API如何工作的最简单的方法是与现实世界的例子。 让我们从Xamarin Evolve 2016移动应用程序中登录LoginPage,并使用Xamarin.Forms中的新API进行访问。 在这个布局中,我们有通常的Xamarin.Forms元素,如Entry和Button。 在Xamarin.Forms 2.3.5之前,我们必须使用平台效果或自定义渲染器来利用可访问性API。 使用新的API,我们只需添加一些属性,我们的移动应用就可以访问:
点击(此处)折叠或打开
- toolkit:EntryLine
- Text="{Binding Email}"
- Keyboard="Email"
- HorizontalOptions="FillAndExpand"
- Placeholder="email address"
- x:Name="EntryEmail"
- StyleId="EmailTextField"
- IsEnabled="{Binding IsNotBusy}"
- BorderColor="#ECECEC"
- AutomationProperties.Hint="Enter your email here"
- AutomationProperties.IsInAccessibleTree="true"
- AutomationProperties.Name="Email entry field">
-
- toolkit:EntryLine.HorizontalTextAlignment>
- OnPlatform x:TypeArguments="TextAlignment" iOS="Center"/>
- /toolkit:EntryLine.HorizontalTextAlignment>
- /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, Windows)。