Flex 是 Adobe 公司开发的支持 RIA(Rich Internet Applications)开发和部署的技术产品,主要面向企业级的应用。良好的 Accessibility 支持尤其是全键盘支持是一个优秀的 Flex 产品必备的前提,Flex 本身提供了一些基本的 Accessibility 键盘支持如 Tab 键切换控件,Space 键选择等,本教程主要介绍 Flex 对 Accessibility 全键盘的支持以及如何利用已有的 API 进行扩展以更好的实现产品级的 Accessibility 全键盘支持。要学习本教程,您需要有一定的 Flex 编程经验,对 Accessibility 的基本概念有所了解。
Flex 和 Accessibility 简介
Flex 是一个用来创建丰富信息的互联网应用程序的服务器组件。Flex 内置的界面可以由 Macromedia Flash 播放器显示在客户端系统上,Flex 的本质上是一种描述应用程序界面的 XML 语言 (MXML) 以及一个 ECMA 规范的脚本语言(ActionScript),它能处理用户和系统的事件,并构建复杂的数据模型。Flex 作为实现 RIA 应用的一种重要语言,以其丰富的用户界面体验,简单的开发模式得到了广泛的应用。
Accessibility 简称 A11Y,指的是软件产品的可访问性,易用性。Accessibility 的目的是使产品不仅能供普通的用户使用,同时也能满足一些特殊客户群体如视力、听力、肌肉运动(无法使用鼠标)有障碍的用户的使用需求。这就要求软件产品必须尽量满足以下几个方面:
以特殊的样式如白背景黑字或黑背景白字显示用户界面以满足视力有缺陷的用户
所有用户界面的文字、输入框等都能通过某种工具(Screen Reader)以语音的形式展示以方便视力有缺陷的用户
用户界面的每个控件如图片,文字,按钮等,都能通过某种方式用键盘操作(全键盘支持),如使用 Tab 键可以在各个控件之间切换。
很多用户界面开发语言都提供了对 Accessibility 的支持,Flex 也提供了对 Accessibility 的支持,通过使用不同的样样式和主题,Flex 应用能够简单的实现上述第一个要求,通过设置每个控件的 Label 或 tooltip 也能简单的满足第二个要求,Flex 对全键盘的支持要复杂一些。本文主要介绍 Flex 的全键盘支持以及如何利用已有的支持进行扩展以实现产品级的更好的全键盘支持。
Flex Accessibility 全键盘支持
Adobe 提供的官方 Flex 开发文档对于 Accessibility 部分的介绍比较简单,本小节将重点介绍 Flex 中与 Accessibility 全键盘相关的接口,类,方法,变量以及通过实例说明如何使用它们。
配置 Flex 应用的编译属性以支持 Accessibility
Flex 提供了“accessible”参数以配置应用是否支持 Accessibility。在 Flex Builder 中,用户可以通过 Project Properties Flex Compiler Generate accessible SWF file 配置,如图 1 所示:
图 1.Flex Builder 配置