2010-11-02 36 views
2

我有一個單獨的Swing JFrame,其中包含幾個JLabels,幾個只讀的JEditorPanes和一些按鈕。 JAWS用戶正在請求用更少的用戶交互來閱讀應用程序。目前,應用程序首先關注某個元素,用戶必須按Tab鍵移動焦點並繼續下一個元素。例如,對於網頁,JAWS只需瀏覽並閱讀所有內容,無需用戶按Tab。對於我們的JAWS用戶尤其惱人,只讀的JEditorPanes每次只讀取一行文本,要求用戶按上下方向鍵在它們之間移動。改善擺動窗口的可訪問性

如何讓此JFrame可以更流利地讀取到JAWS版本9的用戶?

回答

1

你也許能夠做到這一點,但它需要使用Jaws COM api,這是不真正支持。 Jaws與桌面應用程序的交互方式與網站有很大不同。 Jaws將網頁呈現爲一個虛擬緩衝區,並執行各種魔術使其更易於使用。 Jaws不會爲桌面應用程序執行此操作。我認爲它不這樣做的部分原因是桌面應用程序沒有可用的所有信息來創建HTML提供的替代表示模式。因爲甚至包括大白鯊在內的實用工具也不值得一提,只有只讀的編輯字段。如果你確實需要這樣做,那麼最好的辦法就是在用戶給他們提供焦點的時候,通過jaws API來說出只讀編輯區的內容。這需要在您的Java應用程序中使用COM來訪問api。我知道有一些Java庫可以讓你以某種形式使用COM,但我從來沒有這樣做過。您可以在標準的大白鯊安裝目錄中找到該API的一個副本,在我的情況下,它

c:\program files\Freedom Scientific\jaws\jfwapi.dll 

你必須使用你喜歡的應用看COM庫,以確定什麼方法都可以,因爲沒有官方我可以找到的文檔。您可能還想看看下面的代碼示例,它位於AutoIt中,但給出瞭如何使用多個屏幕閱讀器說出文本的一般概念。 http://www.scribd.com/doc/19371/speak-with-autoit