使用技巧
Java Accessibility API 包由 8 個 Java 程式語言接口和 6 個 Java 程式語言類組成。以下是對這些接口和類的描述。
Interface Accessible
Interface Accessible 是 Java Accessibility API 的主接口。所有支持 Java Accessibility API 的組件都必須實現此接口。它包含單個方法 getAccessibleContext,此方法返回 AccessibleContext 類的一個實例。Sun 認為,如果 Java 應用程式要與輔助技術兼容,則對於作為該程式用戶界面的一部分的每個對象來說,實現此接口是絕對的最低需求。
Class AccessibleContext
AccessibleContext 表示所有可訪問對象所返回的最少的信息,它是通過調用實現 Accessible 接口的對象上的 getAccessibleContext 方法獲得的。此信息包括對象的可訪問名稱、描述、職責和狀態,以及關於該對象的父對象和子對象的信息。此外,還包括對 JavaBeans TM 屬性更改的支持,從而當可訪問的屬性值發生更改時,輔助技術能夠獲悉。AccessibleContext 還包含用於獲取更多關於組件的特定可訪問信息的方法。如果組件支持它,則這些方法將返回實現以下一個或多個接口的對象。
具體功能
AccessibleAction - 可以執行一個或多個動作的對象。此接口為輔助技術提供了標準機制,以確定這些動作並通知對象執行它們。當調用 AccessibleContext 上的 getAccessibleAction 方法時,任何可以操作的對象都應返回實現此接口的對象。
AccessibleComponent - 具有圖形表示形式的對象。此接口為輔助技術提供了標準機制,以確定和設定對象的圖形表示形式。當調用 AccessibleContext 上的 getAccessibleComponent 方法時,任何在螢幕上呈現的對象都應返回實現此接口的對象。
AccessibleSelection - 允許選擇其子對象的對象。此接口為輔助技術提供了標準機制,以確定當前選定的子對象,並修改選擇設定。當調用 AccessibleContext 上的 getAccessibleSelection 方法時,任何具有可選子對象的對象都應返回實現此接口的對象。
AccessibleText - 在顯示器上顯示可編輯文本信息的對象。此接口為輔助技術提供了標準機制,用於通過文本的內容、屬性和空間位置來訪問該文本。當調用 AccessibleContext 上的 getAccessibleText 方法時,任何包含可編輯文本的對象都應返回實現此接口的對象。
AccessibleHypertext - 在顯示器上顯示超文本信息的對象。此接口為輔助技術提供了標準機制,用於通過超文本的內容、屬性和空間位置來訪問該超文本。當調用 AccessibleContext 上的 getAccessibleText 方法時,任何包含超文本的對象都應返回實現此接口的對象。
AccessibleValue - 支持數字值的對象。此接口為輔助技術提供了標準機制,以確定和設定對象的當前值,以及最小值和最大值。當調用 AccessibleContext 上的 getAccessibleValue 方法時,任何支持數字值的對象都應返回實現此接口的對象。
專業測評
Class AccessibleRole
此類封裝了 Accessible 對象職責,該類通過調用 AccessibleContext 上的 getAccessibleRole 方法獲得。可訪問的職責包括 “複選框”、“選單項”、“面板”等等。這些職責由此類中的常量(如 AccessibleRole.CHECK_BOX、AccessibleRole.MENU_ITEM 和 AccessibleRole.PANEL)來標識。此類中的常量存在一個公共對象職責的強類型的枚舉。我們有意忽略了此類的公共構造方法,應用程式應使用此類的一個常量。雖然此類預定義了一個大的標準職責列表,但它是可擴展的,這樣可以在將來添加其他程式設計師所定義的職責,而無需修改基類。
Class AccessibleState
此類封裝了 Accessible 對象的特殊狀態。可訪問的狀態包括 "Armed"、"Busy"、"Checked"、"Focused"等等。這些職責由此類的常量(如 AccessibleState.ARMED、AccessibleState.BUSY、AccessibleState.CHECKED 和 AccessibleState.FOCUSED)來標識。Accessible 對象的所有狀態的集合稱為 AccessibleStateSet,它可以通過調用 AccessibleContext 上的 getAccessibleStateSet 方法獲得。
主要問題
此類中的常量存在一個公共對象職責的強類型的枚舉。我們有意忽略了此類的公共構造方法,應用程式應使用此類的一個常量。雖然此類預定義了一個大的標準職責列表,但它是可擴展的,這樣可以在將來添加其他程式設計師所定義的職責,而無需修改基類。
Class AccessibleStateSet
此類封裝了 Accessible 對象的狀態集合,此類通過調用 AccessibleContext 上的 getAccessibleStateSet 方法獲得。因為一個對象可能有多個狀態(例如,它可能同時處於 "Checked" 和 "Focused" 狀態),因此此類需要封裝這些狀態的集合。此類中的方法可以在狀態集上檢索單個 AccessibleStates 。
Class AccessibleBundle
此類用於維護強類型枚舉。它是 AccessibleRole 和 AccessibleState 類的超類。程式設計師一般不與此類直接進行互動,而是使用 AccessibleRole 和 AccessibleState 類。
Interface AccessibleAction
任何能夠執行一個或多個動作的對象都應支持 AccessibleAction 接口。此接口為輔助技術提供了標準機制,以確定這些動作並通知對象執行它們。任何可以操作的對象都應支持此接口。
應用程式通過先獲取某個對象的 AccessibleContext(參見 Accessible),然後調用 AccessibleContext 上的 getAccessibleAction 方法,能夠確定該對象是否支持 AccessibleAction 接口。如果返回值不為 null,則該對象支持此接口。
接口
Interface AccessibleComponent
任何在螢幕上呈現的對象都應支持 AccessibleComponent 接口。此接口為輔助技術提供了標準機制,以確定和設定對象的圖形表示形式。
應用程式通過先調用某個對象的 AccessibleContext(參見 Accessible),然後調用 AccessibleContext 上的 getAccessibleComponent 方法,能夠確定該對象是否支持 AccessibleComponent 接口。如果返回值不為 null,則該對象支持此接口。
Interface AccessibleSelection
AccessibleSelection 接口為輔助技術提供了標準機制,以確定當前選定了哪些子對象,並修改選擇設定。任何具有可選子對象的對象都應支持 AccessibleSelection 接口。
應用程式通過先獲取某個對象的 AccessibleContext(參見 Accessible),然後調用 AccessibleContext 上的 getAccessibleSelection 方法,能夠確定該對象是否支持 AccessibleSelection 接口。如果返回值不為 null,則該對象支持此接口。
種類
Interface AccessibleText
AccessibleText 接口是針對生成豐富的、可編輯的文本 Accessible 的協定。並不是螢幕上顯示的所有文本都是富文本和可編輯的(例如對於按鈕、標籤和選單中所包含的文本,用戶就不能對其進行操作)。但是,如果包含可編輯文本的對象要與輔助技術進行互操作,則它們必須實現 AccessibleText 接口。
此接口支持在像素坐標和給定像素坐標處的文本之間進行轉換,以及檢索文本中給定位置處、給定位置前或給定位置後的字母、單詞和句子。此接口支持對文本中給定位置處的字元屬性(字型、字型大小、樣式,等等)進行檢索,以及獲得選中的文本(如果有)、文本長度和文本插入符位置。
應用程式通過先獲取某個對象的 AccessibleContext(參見 Accessible),然後調用 AccessibleContext 的 getAccessibleText 方法,能夠確定該對象是否支持 AccessibleText 接口。如果返回值不為 null,則該對象支持此接口。
Interface AccessibleHypertext
任何在顯示器上顯示超文本信息的對象都應支持 AccessibleHypertext 接口。此接口為輔助技術提供了標準機制,用於通過文本的內容、屬性和空間位置來訪問該文本。它還提供了操作超連結的標準機制。應用程式通過先獲取某個對象的 AccessibleContext(參見 Accessible),然後調用 AccessibleContext 的 AccessibleContext.getAccessibleText() 方法,能夠確定該對象是否支持 AccessibleHypertext 接口。如果返回值是一個擴展了 AccessibleHypertext 的類,則該對象支持 AccessibleHypertext。
Interface AccessibleHyperlink
超連結對象應支持 AccessibleHyperlink 接口。通過調用 AccessibleHypertext 對象上的 getLink 方法將返回實現此接口的對象。
Interface AccessibleValue
任何支持數字值的對象(例如滾動條)都應支持 AccessibleValue 接口。此接口為輔助技術提供了標準機制,以確定和設定數字值,以及獲取最小值和最大值。
應用程式通過先獲取某對象的 AccessibleContext(參見 Accessible),然後調用 AccessibleContext 的 getAccessibleValue 方法,能夠確定該對象是否支持 AccessibleValue 接口。如果返回值不為 null,則該對象支持此接口。
從以下版本開始:
JDK1.2