注意:在Xamarin.Forms 2.3.5-pre3发布版,我们将类名Accessibility变更为AutomationProperties。
iOS、Android和Windows都公开了开发人员为每个人构建可访问的移动应用程序的API。 我们很高兴地宣布,我们已经添加了新的API访问Xamarin.Forms,使它更容易为开发人员构建访问,跨平台移动应用。在这篇文章中,我们将在新的API添加到Xamarin.Forms,使它容易建立访问的移动应用。
Xamarin.Forms中的AutomationProperties APIs
提供与提示相关的可访问性API的基本集。包含以下内容:
- AutomationProperties.Hint
- AutomationProperties.IsInAccessibleTree
- AutomationProperties.LabeledBy
- AutomationProperties.Name
通过定义这些属性,我们可以利用iOS和Android中的底层可访问性功能,比如 。
Making the Xamarin Evolve 2016 App Accessible
挖掘这些新API如何工作的最简单方法是使用真实世界的示例。我们制作一个, 它源自 并且使用Xamarin.Forms中的新APIs可访问。在这个布局中,我们有可用的Xamarin.Forms 元素,就像 Entry 和utton。在Xamarin.Forms 2.3.5之前, 我们会利用平台效应或自定义渲染器利用访问API。使用新APIs,我们只需要添加一些属性,我们的移动应用程序就可以访问了:
点击(此处)折叠或打开
-
<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这样的控件,我们读取获取Hint和Name值的组合。
在iOS中启用VoiceOver,导向到Settings -> General -> Accessibility -> VoiceOver。在Android中,安装 它很可能已经安装在设备上,并且可以在 Settings -> Accessibility -> Vision访问。Windows用户可以在设置选项的方便下启用解说器。
记住,你需要有Xamarin.Forms 2.3.5,并在所有工程中使用Xamarin.Forms,包括你的iOS 和Android项目。注意AutomationProperties属性可能是不可感知的,因为它是附加属性。
结论
正如您已经看到的,上面的例子,仅增加四属性在XAML添加提示我控制我的手机应用程序驱动的可访问性。 我们鼓励您将这些新API添加到Xamarin.Forms 2.3.5来做一个尝试,让我们知道你的想法!您可以在每个平台的网站上阅读更多关于可访问性特性的信息。 (iOS, Android, )。