首页 安卓& Kotlin Books 通过教程的Android可访问性

8
可操作 - 运动& Timing 由Victoria Gonda撰写

有些人可以消费时间内容可能是不可能的。例如,考虑那些比您所期望或使用需要时间遍历屏幕的辅助技术的人。

确保您认为超越身体限制:当我们被朋友或孩子分心时,有人会错过您的定时内容。最重要的是,有些人发现压力很大。这些只是您需要解决的可操作性问题的一些示例。

在本章中,您将了解运动和时间如何影响应用程序的可操作性。更重要的是,您将学习如何提高各种用户的可操作性。

以下WCAG指南将是本章的重点:

指南2.2足够的时间:为用户提供足够的时间才能阅读和使用内容。

它听起来很简单 - 阅读,了解如何实际实施它。

考虑可调时机

在构建应用程序时,WCAG希望您为用户提供多个选项来控制定时,并为用户控制时间限制:

成功标准2.2.1定时可调:对于所内容设置的每个时间限制,以下至少其中一项是真的:

:允许用户在遇到之前关闭时限;或者

调整:允许用户在遇到宽度范围内遇到默认设置的长度的宽范围之前调整时间限制;或者

延长:用户在时间到期之前经过发变,并且至少20秒延长了一个简单动作的时间限制,例如“按空格栏”,并且用户允许至少十次扩展时间限制; inate或

实时异常:时间限制是实时事件的所需部分,例如,拍卖,并且无法替代时间限制;或者

基本例外:时间限制至关重要并扩展它会使活动无效;或者

20小时例外:时间限制超过20小时。

级别A.

此标准提供了六种选择,以考虑时间限制。总结两个有用的点:

  1. 允许用户关闭或控制时间限制。
  2. 确定限制不适用,因为这是对功能的要求或超过二十小时。

审查Taco星期二的时机

现在,如果您不决定在前15秒内尝试食谱,Taco Tuesday将自动切换到下一个配方。此行为不符合成功标准2.2.1。

提供自动更新控件

对于Taco Tuesday,您将解决上面讨论的问题,同时也将其修复以符合相关标准:

实现自动提前控制

打开 root_preferences.xml.xml.,保存在设置屏幕上看到的所有首选项的文件。

<PreferenceCategory app:title="@ string / display_header">

</PreferenceCategory>
<SwitchPreferenceCompat
  app:defaultValue="false"
  app:key="auto_advance"
  app:title="@ string / preference_auto_advance_title" />
private val sharedPreferences: SharedPreferences
fetchTacoJob = viewModelScope.launch(Dispatchers.IO) {
 delay(15000) // 15 seconds
 fetchRandomTaco()
}
if (sharedPreferences.getBoolean("auto_advance", false)) {
 // ...
}
自动提前配方在设置中切换。
IAGO Embobqa Zasubaw Qjuksz OC Kucxatyy。

管理中断

中断是定时问题的事件的另一个例子。您可能需要进行调整以确保您的应用程序可访问。考虑以下标准:

对话框弹出。
voeyor fur-联合国。

替换对话框

您将首先添加一个视图来保存横幅。

<TextView
  android:id="@+id/main_banner"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="@color/colorPrimary"
  android:padding="@dimen/space_normal"
  android:textColor="?colorOnPrimary"
  app:layout_constraintEnd_toEndOf="parent"
  app:layout_constraintStart_toStartOf="parent"
  app:layout_constraintTop_toTopOf="parent"
  tools:text="@tools:sample/lorem" />
app:layout_constraintTop_toBottomOf="@id/main_banner"
app:layout_constraintTop_toTopOf="parent"
binding.mainBanner.text = randomMessage
if (dialog?.isShowing != true) {
 dialog = AlertDialog.Builder([email protected])
   .setMessage(randomMessage)
   .setPositiveButton("Close", null)
   .show()
}
private var dialog: AlertDialog? = null
消息横幅。
Wopmeje Yusjat。

修复测试

测试仍将查找刚刚删除的对话框,因此您需要修改测试的逻辑。

Espresso.onView(ViewMatchers.withText("Close"))
  .perform(ViewActions.click())

识别您应用中的时间限制

一定的时间限制比其他时间更公开。当您为用户设置显式延迟或计时器时,您需要确保您遵守WCAG指南,使其更加突出。

减轻不良反应的风险

对于某些用户,屏幕运动会导致不良反应。闪光可以触发癫痫发作,突然变化会引起惊吓,有些运动会导致头晕,头痛或恶心。

消除闪光

如果您的应用包含闪存或图像快速更改的图像,则可能需要遵守此标准:

了解富有同情心的运动

有了这个标准,你会发现用动画,更少真的更多。

删除动画辅助功能设置。
zayixo awexamaepp ayrajpacuxw yuldottf。

关键点

  • 为用户提供超过足够的时间来完成任务。
  • 在任何时间限制您的应用程序施加的任何时间都会控制用户。
  • 确保用户可以暂停或返回到任何自动更新的内容。
  • 避免使用含义对话框,弹出窗口,消息或动画中断您的用户。
  • 避免或仔细设计,包括自动解雇计时器或动画控制的定时的功能。
  • 确保用户可以轻松控制所有速度并扩展任何定时器。
  • 避免添加到应用程序闪烁的任何东西。
  • 了解已知有什么动画导致不良反应。
  • 避免或允许用户关闭可能导致不利影响的动画。

然后去哪儿?

这是关于使应用程序可操作的最终章节。你已经学到了很多 - 从键盘和导航到运动和时间!拍住自己。

有一个技术问题?想报告一个错误吗? 您可以向官方书籍论坛中的书籍作者提出问题和报告错误 这里.

有反馈分享在线阅读体验吗? 如果您有关于UI,UX,突出显示或我们在线阅读器的其他功能的反馈,您可以将其发送到设计团队,其中表格如下所示:

© 2021 Razeware LLC

您可以免费读取,本章的部分显示为 混淆了 文本。解锁这本书,以及我们整个书籍和视频目录,带有Raywenderlich.com的专业订阅。

现在解锁

要突出或记笔记,您需要在订阅中拥有这本书或自行购买。