技术开发 频道

为可访问性编码

  图 1 中显示的可访问性演示 GUI 并不打算完成任何实际工作(即,在该演示背后并没有功能代码);相反,它的目的是演示大多数 Swing GUI 组件,并向您展示如何将可访问性信息添加到每个组件。图 1 显示了演示应用程序的一个面板,其中包括几种常用组件类型,如输入域、单选按钮、复选框和按钮。

  图 1. AccessibilityDemo1 的第一幅抓屏

       

  注:在这个 GUI 中,所有按钮都使用了助记符(加下划线的字母),因此,它过度使用了助记符。正如我先前提到的,助记符最好仅用于经过精心挑选的组件,以辅助组件组之间的总体导航。此外,尽管有可能通过标准键盘支持选择跳格,但这样做会需要多次击键。要改进跳格窗格的可用性,您可以通过在 javax.swing.JTabbedPane 或其容器上注册 java.awt.event.KeyListener 来添加直接选择跳格的键。

  图 2 是演示应用程序的另一个面板,它包含更复杂的组件类型,如分割窗格、树和显示 HTML 内容的编辑器窗格。图 2 还显示了已定义的组件 ToolTip。

  图 2. AccessibilityDemo1 的第 2 幅抓屏

        

  在不访问 AT 阅读器的情况下,很难看到添加可访问性信息的结果。我将在本文的稍后部分中向您展示如何显示该信息。目前,图 3 展示了将可访问性信息添加到应用程序的结果。它是图 1 中 New Document 工具栏按钮( New 图标图象)的显示所产生的输出的一部分。

  图 3. AccessibilityDemo1 的 HTML 转储的子集输出

级别索引对象
60
javax.swing.JToolBar:17FAFF1D-toolBar0 中的 *javax.swing.JButton:16E7BF1D-button5


组件字段
名称
namebutton5
text 
toolTipTextCreate a new document
value-- 无 --
mnemonic78 = 'N'
AccessibleContext 字段
名称
nameNew
rolepush button
stateSetenabled,focusable,visible,showing,opaque
indexInParent0
descriptionCreate a new document
actionjavax.swing.JButton$AccessibleJButton@1bd8bf1d
valuejavax.swing.JButton$AccessibleJButton@1bd8bf1d
textnull
editableText-- 无 --
tablenull
icon[Ljavax.accessibility.AccessibleIcon;@2ae9ff1e
relationSet-- empty AccessibleRelationSet --
childrenCount0

  文本的颜色表明该项的状态。蓝色文本表明无须担心。黄色文本表明该项可能会引起可访问性问题。红色斜体文本(示例中未显示)表明该项很可能引起可访问性问题。

  不应该将使用颜色和其它格式化增强(如使用 斜体)作为特殊文本的唯一表示。通常 AT 设备都不表示这些增强,因此它们可能不会受到注意。尽管这个示例中未作显示,但我建议您除了使用颜色之外还要使用其它指示符,或使用其它指示符而不使用颜色。例如,您可以用括号或星号括住文本。

0
相关文章