How to make a window element focusable?


Oleksandr Gryshchenko
 

Hi friends,

If you could, please tell me how to make the program window element focusable.
I will demonstrate the situation on my favorite email client, which still has small problems with accessibility.
The window of this email client is divided into areas such as tree of folders, list of messages, and message viewing area.
The user can switch between the specified areas using the Tab key.

When I select a message in the list and press Tab to switch to its viewing area, I first hear the main headers of the message and the focus shifts to viewing message body.
But I can't switch to headers using Tab, they remain out of focus...
Instead, I can read the message headers using the screen view mode (numpad 7 and numpad 9 keys).

When viewing IAccessable objects using the Python console, it was determined that each of the headers (From, To, Subject and Date) is a separate object of type Edit.
And if I move the focus manually to the first header (From) using the setFocus() method in Python console, I can then use Tab to move to other headers:
focus.parent.next.next.next.next.setFocus()
At the end of this letter, I will provide basic information about the first header object (they are all the same type).

Please tell me how to make the headers available for navigation with the Tab key.
I tried to do it in several different ways but to no avail...

Developer info for navigator object:
name: 'From: '
role: ROLE_EDITABLETEXT
roleText: None
states: STATE_READONLY, STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
description: None
location: RectLTWH(left=242, top=384, width=235, height=20)
value: 'User Name <user@...>'
TextInfo: <class 'NVDAObjects.window.edit.EditTextInfo'>
windowClassName: 'Edit'
windowControlID: 1005
windowText: 'User Name <user@...>'
displayText: 'User Name <user@...>'
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=2884470, objectID=-4, childID=0
IAccessible accName: 'From: '
IAccessible accRole: ROLE_SYSTEM_TEXT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_READONLY, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048644)
IAccessible accDescription: None
IAccessible accValue: 'User Name <user@...>'

I will be very grateful for any tips.
Oleksandr

Join nvda-addons@nvda-addons.groups.io to automatically receive all group messages.