2011-07-26 14 views
5

Estamos desarrollando una aplicación que ayuda a personas con problemas de lectura. El usuario puede dejar que la aplicación lea en voz alta cualquier texto de la pantalla (menús, etiquetas de botones, títulos de ventanas, etc.) colocando el cursor del mouse sobre él (sé que muchos SO ya pueden hacerlo, pero esta es una herramienta pedagógica y estamos haciendo algunas cosas adicionales). Tenemos una aplicación que funciona para Windows y ahora nos gustaría hacer algo similar en OS X. Básicamente queremos implementar algo similar a la función VoiceOver de OS X. Mi pregunta es si hay una API que podamos usar para acceder a los elementos de la interfaz de usuario. en OS X (como Microsoft Active Accessibility para Windows). He estado leyendo acerca de la Accesibilidad para Mac OS X, pero parece más una API para habilitar la accesibilidad en su propia aplicación, no para acceder a elementos del sistema operativo (u otras aplicaciones). ¿Me equivoco aquí?API para acceder a los elementos de la interfaz de usuario en Mac OS X

Respuesta

7

La accesibilidad también le permitirá acceder a los elementos de la IU de otras aplicaciones. Consulte el UIElementInspector sample code en el sitio de Apple. Está muy cerca de lo que quieres hacer.

+0

Gracias, esto es exactamente lo que estaba buscando. Pero si entiendo esto correctamente, solo puedo usar esta API para extraer datos de las aplicaciones Cocoa (y Carbon) porque la información la proporciona el marco, no el sistema operativo en sí mismo. ¿Significa que no puedo obtener información de aplicaciones que no tienen nada que ver con Cocoa (por ejemplo, aplicaciones Java)? – pajevic

+0

@NobleK: Honestamente, no lo sé. No interactúo con muchas aplicaciones de GUI Java a diario. Sospecho que podría funcionar, ya que Apple creó su propia horquilla JVM personalizada principalmente para integrarla mejor en el sistema operativo. En cualquier caso, los marcos de la GUI del sistema son muy similares a * ser * el sistema operativo. Java es el único tipo de aplicación que puedo pensar que * podría * no pasar por Cocoa. Todos los kits de herramientas de ventana multiplataforma que hay a través de Cocoa o Carbon en la Mac. Realmente no hay una forma práctica de bajo nivel para hacer una aplicación gráfica. – Chuck

+0

En Windows Swing, las aplicaciones parecen básicamente cuadros negros, no se pueden inspeccionar los componentes mediante la API UIAutomation de Windows, que es la versión actualizada de la API de accesibilidad para Windows. Si tiene información sobre la aplicación swing y la API de accesibilidad, me encantaría escucharla. Como un retroceso usando SWT y JFace usualmente usa controles nativos y por lo tanto es visual para API de accesibilidad. –