javax.accessibility

定義了用戶界面組件與提供對這些組件進行訪問的輔助技術之間的協定。如果 Java 應用程式完全支持 Java Accessibility API,則它應該與螢幕讀取器、螢幕放大器這樣的輔助技術保持兼容和友好。使用完全支持 Java Accessibility API 的 Java 應用程式,將不再需要離屏模型的螢幕讀取器 ,因為該 API 提供了離屏模型中通常所包含的所有信息。

使用技巧

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

相關搜尋

熱門詞條

聯絡我們