[nvda-addons] more general questions about identifying windows

  • From: Alex Hall <ahall@xxxxxxxxxxxx>
  • To: nvda-addons <nvda-addons@xxxxxxxxxxxxx>
  • Date: Fri, 24 Mar 2017 15:52:49 -0400

Hi list,
Most of you know me from various places, and I was on this list about a
year ago while trying to make an application at work more usable for me. I
failed, but am now trying to script a different one. I consider myself an
expert user of VoiceOver, slightly less of an expert in NVDA, and a good
all-around computer user. I know Python well, among other languages.

All that out of the way, I'll dive right into the questions.

* I'm examining a control with the log viewer. It has a role of
ROLE_EDITABLETEXT, but an IAccessibility role of ROLE_SYSTEM_TEXT. Those
two sound different. Are they? If so, do I need to tell NVDA a different
IAccessibility role for this control?

* I want to allow NVDA to access the text in this control. It should be a
multi-line edit field, like the editor in Word or Notepad, as it's the code
editor for an IDE based on Eclipse (yep, that means Java). Jaws can see the
text, but NVDA does nothing when I arrow around, and reports there are "no
objects inside" when I use object navigation to try to explore.

* The add-on is for a program called RDI, (Rational Developer I). This is
made by IBM to support their iSeries business computers, and is based on
Eclipse. In fact, NVDA reports that the currently loaded module is Eclipse,
or it did until I made my new add-on. The application name, though, is
"javaw", which is far too broad. How do I run my add-on for RDI only, and
not for *any* Java application, if all Java apps run under Javaw?

I'm having some odd problems when reloading this add-on, but that's another
email. Below I've pasted the log for the window I want to access with the
arrow keys. Thanks in advance for any ideas anyone has.


Developer info for navigator object:
name: 'File Contents'
role: ROLE_EDITABLETEXT
states: STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.IAccessible.IAccessible object at 0x04BE1C90>
Python class mro: (<class 'NVDAObjects.IAccessible.IAccessible'>, <class
'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class
'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>,
<type 'object'>)
description: None
location: (500, 142, 1352, 825)
value: u'(code in the editor)'
appModule: <'javaw' (appName u'javaw', process ID 10596) at address 4d26230>
appModule.productName: u'Java(TM) Platform SE 8'
appModule.productVersion: u'8.0.0.0'
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 66972
windowClassName: u'SWT_Window0'
windowControlID: 66972
windowStyle: 1445003264
windowThreadID: 11152
windowText: u''
displayText: '(value of code in the editor)'
IAccessibleObject: <POINTER(IAccessible) ptr=0x74b7e60 at 4dad6c0>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=66972, objectID=-4, childID=0
IAccessible accName: None
IAccessible accRole: ROLE_SYSTEM_TEXT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE,
STATE_SYSTEM_VALID (1048580)
IAccessible accDescription: None
IAccessible accValue: '(value of code in the editor)'


-- 
Alex Hall
Automatic Distributors, IT department
ahall@xxxxxxxxxxxx

Other related posts: