开发者社区


C++/C | Java | .Net/Windows | Linux/Unix | 开源 | 其他
首页 - 编程
编程
全文搜索:   

如何使用JAAPI实现更具访问性的Java软件
作者: Builder.com.cn
2006-10-23 09:47:44


Java平台在桌面应用领域越来越流行,但需要考虑到Windows应用软件的工程兼容性标准,确保在软件开发过程中不会为软件的可访问性设置任何障碍。

Java API的早期版本并不具备对可访问性和辅助设备的本地支持,很多有视觉障碍的用户就无法使用Java产品了。为了解决这一问题,Sun公司发布了Java可访问性API(Java Accessibility API (JAAPI)),JAAPI为图形用户界面的信息和辅助技术之间架设了桥梁,用户可以选择使用其他的控制和表示方法来使用Java应用软件。

Java平台的可访问性包含了以下的基本元素:

  • JAAPI:提供了Java应用软件和辅助技术(比如一个屏幕读取器或盲人用的显示设备)之间的合同。
  • Java可访问性应用程序(Java Accessibility Utilities):提供了从应用软件获取信息的能力,并可以进一步处理这些信息,然后使用特殊设备进行显示。它们帮助辅助技术监控组件相关的事件并获取图形用户界面相关的额外信息,比如鼠标的当前位置或者当前的活动窗口。
  • Java访问桥(Java AccessBridge (JAB):这是在Windows操作系统中为Java平台提供可访问功能的重要元素,JAB最初是在J2SE1.3中引入的。
  • Java基础类(Java Foundation Classes (JFC) ):GUI组件的类库,完全实现了JAAPI。

JAAPI

可访问性API包含了一系列界面和类,最主要的界面是访问性界面,所有支持可访问性的组件都必需实现这一界面。可访问性界面定义了一个方法:getAccessibleContext,当调用一个可访问性组件的时候,getAccessibleContext方法将返回一个AccessibleContext 对象。该对象包含了组件中的最基本的可访问性信息,比如组件的可访问性名称、描述、角色、父节点和子节点以及组件的状态等等。比如,如果这个组件是一个窗口,那么AccessibleContext可以说明这个窗口是否是当前活动窗口。

很多Swing组件都实现了可访问性界面,比如JButton和JTextArea,您可以使用setAccessibleName和setAccessibleDescription方法为按钮设定名称和描述信息,列表A提供了简单的例子,这个程序会显示一个按钮的可用性功能。

除了设定和获取基本的可用性信息之外,AccessibleContext还有用于获取具有特殊类型字符组件的方法。例如,一个显示文字的组件可以通过实现AccessibleContext界面来使这些文字更具访问性。AccessibleContext的getAccessibleText方法可以通过AccessibleText界面来返回一个组件的可访问性文字。辅助技术可以使用AccessibleText界面方法对文字执行操作,比如返回选定的文字。

Java可访问性应用程序

Java可访问性应用程序包含了一系列界面和类,EventQueueMonitor提供了辅助技术所需的核心功能。

比如,AccessibleIcon界面将可访问性扩展到了图标上,这给予了您指定图标的可访问性信息的方式,您还可以获取该图标的高度和长度等描述信息,列表B中的代码展示了如何将一个普通的图标变得具备可访问性功能。

getAcessibleContext中有一个新的方法,被称作getAccessibleIcon,它可以返回AccessibleIcon类型的数组。数组的每个元素都代表了一个与对象相关联的可访问性图标,在这种情况下,按钮具备了可访问性的图标。

AccessibleTable界面将可访问性的信息扩展到了表格,例如,它所提供的方法可以用来设定和获取表格的可访问性标题,还可以获取表格的列数和行数。Swing类中的JTable.AccessibleJTable实现了AccessibleTable界面,AccessibleContext 中的getAccessibleTable方法可以返回AccessibleTable类型的对象。这个对象包含了一系列方法可以用来设定和获取表格的可访问性信息,例如,它包含了getAccessibleColumnCount和getAccessibleRowCount方法。

WindwosUNIXLinux平台使用JAB

有很多方法可以将JAAPI应用到不同操作系统的本地平台,比如Windows和UNIX与Linux平台上的GNOME。

对于Windows而言,访问桥(Access Bridge)的支持横跨了Windows和Java环境,访问桥的一部分是Java类,另外一部分是Windows的动态链接库(DLLs)。当基于Windows的辅助技术运行时,它与访问桥的DLL部分进行交互,然后访问桥的类通过Java虚拟机与可访问性API和Java可访问性应用程序进行通信。(为了使用JAB,您需要安装Java可访问性应用程序)

在UNIX和Linux平台上的GNOME桌面具备高度的可定制性,它提供的API和类库可以让开发者快速创建具备可访问性的应用软件和辅助技术。GNOME可访问性架构(GNOME Accessibility Architecture)是Sun公司为GNOME开源项目做出的贡献。

Java可访问性助手

Java可访问性助手(Java Accessibility Helper)可以用来检测抽象窗口工具(Abstract Window Toolkit (AWT))或者基于Swing的应用软件的可访问性;它可以针对应用软件运行多种测试。这个重要的工具可以用来发现Java软件中缺失的对可访问性的支持。

延伸阅读

如果您需要进一步了解JAAPI的信息,可以参见以下的资源:

·         JAAPI文档(JAAPI javadocs

·         Java可访问性工具的文档和相关下载(Java Accessibility Utilities downloads and documentation

责任编辑:德东

查看本文国际来源

声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号