Android无障碍服务二 辅助功能开发清单

来源:互联网 发布:java判断是否为数字 编辑:程序博客网 时间:2024/04/29 13:58

3.辅助功能开发清单

    为了满足你的用户,获得正确的细节信息,使一个应用程序具有辅助性是对应用可用性的一个重大的承诺。本文档提供了一个辅助性功能需求,建议和注意事项的清单,帮助你的应用拥有辅助功能。下面这个清单并不保证您的应用程序的辅助性,但这是一个很好的开始。
    创建一个辅助性的应用程序不仅仅是开发人员的责任。也要让涉及到你应用的设计和测试人员,让他们也意识到这些开发阶段的规范(链接地址):
  • Android Design: Accessibility
  • Accessibility Testing Checklist
    在大多数情况下,创建一个辅助性的Android应用程序不需要重构大量的代码。相反,它意味着设计一些关于用户如何与应用程序交互的细节,因此可以为他们提供他们可以感知和理解的反馈。这个清单可以帮助你专注于开发获取良好辅助性细节的关键问题。

3.1 辅助性需求

    必须完成以下步骤以确保最低级别的应用程序的辅助性。
  1. 描述用户界面控件:为没有可见文本的用户界面组件提供内容描述,,尤其是ImageButton,ImageView和CheckBox 组件。在XML布局中使用android:contentDescription属性或setContentDescription(CharSequence)方法来提供这些辅助性服务的信息。 (装饰图形除外)
  2. 启用基于焦点的导航:确保用户可以使用基于硬件或软件的方向控制(d垫,跟踪球、键盘和导航的手势)来浏览你的屏幕布局。在一些情况下,您可能需要设置是否获取焦点,改变焦点的切换顺序,让用户界面组件更符合用户操作。
  3. 自定义视图控制:在应用程序中,如果你创建的自定义界面控件,要实现辅助性接口,并提供内容的描述。为了自定义控件兼容Android1.6之前的版本,使用 Support Library库来实现最新的辅助性特征。
  4. 不仅是音频反馈:为了听力障碍的用户,音频反馈必须始终伴随着第二种反馈机制。例如,一个声音提醒即将到来的消息必须附有一个系统通知、触觉反馈(如果可用)或其他视觉警报。
  5. 测试:使用方向控制,启用伴随TalkBack 反馈的eyes-free导航,测试你的应用程序的辅助性,更多信息可访问性测试,参考  Accessibility Testing Checklist.

3.2 辅助性建议

    下面的步骤是推荐为确保您的应用程序的辅助性。如果你不采取这些建议,可能会影响整个应用程序的辅助性和质量。
  1. Android设计的辅助性准则:在建立你的布局时,审查和遵循辅助性指南中提供了设计指导方针。
  2. 框架层控件:只要有可能,就要使用Android的内置的用户界面控件,因为这些组件提供默认情况下支持辅助性功能。
  3. 临时或自我隐藏控件和通知:避免用户界面控件在一段时间后淡化或消失。如果这种行为是很重要的,你的应用程序,为这些功能提供替代的界面。

3.3 特殊情况和注意事项

    下面的列表描述了特定的情况下应该采取措施,以确保应用程序的辅助性。回顾这个列表,看看这些特殊情况和考虑应用到你的应用程序,并采取适当的措施。
  1. 文本字段提示:对于EditText字段,提供了一个android:hint属性而不是content description,当文本字段是空时帮助用户理解期望录入的内容,当填充了内容时,内容可以以声音的方式读出来。
  2. 自定义的带有虚拟上下文的控件:如果您的应用程序包含了一个虚拟上下文自定义控件(比如一个日历控件),默认的辅助性服务处理可能不提供足够的用户描述,您应该考虑使用AccessibilityNodeProvider为你的控件提供一个虚拟视图层。
  3. 自定义控件,点击处理:如果应用程序的一个自定义的控件在用户触摸屏幕交互时执行特定的处理,比如监听MotionEvent onTouchEvent(MotionEvent)的MotionEvent.ACTION_DOWN 和 MotionEvent.ACTION_UP  ,把它当作一个点击事件,你必须触发一个AccessibilityEvent相当于为用户执行单击并提供一个辅助性性服务操作。有关更多信息,请参见Handling custom touch events.
  4. 控件改变功能:如果你的应用程序正常的用户活动中,有按钮或其他控件改变功能(例如,一个按钮,从播放到暂停的改变),确保你也改变android:contentDescription适当的内容。
  5. 提示输入相关的控件:确保几组控件提供一个单一的功能,比如DatePicker,当用户与某个控件交互时,提供有效的音频反馈。
  6. 视频回放和字幕:如果您的应用程序提供了视频回放,它必须为听觉障碍的用户提供字幕。如果字幕是用于一个视频,提供一个清晰的方式使得字幕可用,你的视频播放控件也必须注明。
  7. 补充可访问性音频反馈:只使用Android辅助性性框架给应用程序提供的辅助性音频反馈。辅助性服务,如TalkBack 应该是你的应用程序给用户提供辅助性音频提示的唯一方式。在XML布局使用android:contentDescription 属性或动态调用辅助性框架的api提供反馈信息。例如,如果你想通过声音控制应用程序,如使用announceForAccessibility(CharSequence)方法,获取辅助性服务,当用户说出信息时,实现自动翻转书页功能。
  8. 带复杂的视觉交互的自定义控件:自定义控件,提供复杂的或非标准的视觉交互,使用允许辅助性服务提供一个简化为用户交互模型的AccessibilityNodeProvider对象,为你的控件提供一个虚拟视图层。如果这种方法不可行,考虑提供辅助性的备用视图。
  9. 小控件系列:如果你有控件,小于你应用程序屏幕最低推荐的大小,考虑把这些控件放在一个ViewGroup里,对这个ViewGroup使用一个android:contentDescription属性。
  10. 装饰图像和图形:在应用程序屏幕上纯粹是为了装饰的元素,不提供任何内容或用户行为不应该提供辅助性功能。