2011-07-26 23 views
5

我們正在開發一個應用程序,幫助閱讀障礙人士。用戶可以通過將鼠標光標懸停在屏幕上來讓應用程序大聲讀出屏幕上的任何文本(菜單,按鈕標籤,窗口標題等)(我知道很多操作系統已經可以做到這一點,但這是一個教學工具,我們正在做一些額外的東西)。我們有一個適用於Windows的工作應用程序,現在我們希望在OS X中做類似的工作。基本上我們想要實現類似於OS X的VoiceOver功能的東西。我的問題是如果有一個我們可以用來訪問UI元素的API在OS X中(例如Windows的Microsoft Active Accessibility)。我一直在閱讀有關Mac OS X輔助功能的內容,但這看起來更像是一個API,用於在您自己的應用程序中啓用輔助功能,而不是從操作系統(或其他應用程序)訪問元素。我錯了嗎?用於訪問Mac OS X中的UI元素的API

回答

7

輔助功能還允許您訪問其他應用的UI元素。查看Apple網站上的UIElementInspector sample code。它非常接近你想要做的事情。

+0

感謝名單,這正是我之後。但是,如果我正確理解這一點,我只能使用此API從Cocoa(和Carbon)應用程序提取數據,因爲信息是由框架提供的,而不是它自己的操作系統。這是否意味着我無法從與Cocoa無關的應用程序(例如Java應用程序)獲取任何信息? – pajevic

+0

@NobleK:我真的不知道。我不會每天與很多GUI Java應用程序進行交互。我懷疑它可能會起作用,因爲Apple創建了自己定製的JVM分支,主要是爲了使其更好地集成到操作系統中。無論如何,系統GUI框架與操作系統非常接近。 Java是我能想到的唯一主要的應用程序*可能*不會通過Cocoa。所有的跨平臺窗口工具包都通過Mac上的Cocoa或Carbon。製作圖形應用程序並沒有真正的低級方法。 – Chuck

+0

在Windows上Swing應用程序基本上顯示爲黑盒子,您無法使用Windows的UIAutomation API檢查組件,該API是Windows的Accessibility API的更新版本。如果您有關於swing應用程序和可訪問性API的任何信息,我很樂意聽到它。 由於使用SWT和JFace後退通常使用本地控件,因此對可訪問性API是可視化的。 –