Your First NVDA App Module: fix focus problem


蔡宗豪 Victor Cai
 

Hi Joseph and all,
Could we write app modules to fix “caret focus” problem?

case one: LibreOffice Calc

In some cases, when pressing arrows to move across cells, NVDA just braille “cell (skip content)” and speech nothing.

Developer info for navigator object:

name: None
role: ROLE_TABLECELL
states:
isFocusable: False
hasFocus: False
Python object:
Python class mro: (, , , , , , , , , , )
description: None
location: None
value: None
appModule: <’soffice’ (appName u’soffice’, process ID 307208) at address 565d330>
appModule.productName: u’LibreOffice’
appModule.productVersion: u’5.1.3.2’
TextInfo:
windowHandle: 1836756L
windowClassName: u’SALFRAME’
windowControlID: 0
windowStyle: 349110272
windowThreadID: 307212
windowText: u’\u4e09\u91cd\u5340.ods - LibreOffice Calc’
displayText: exception: ‘NoneType’ object is not iterable
IAccessibleObject:
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=1836756, objectID=-4, childID=-792
IAccessible accName: None
IAccessible accRole: None
IAccessible accState: exception: unsupported operand type(s) for &: ‘NoneType’ and ‘int’
IAccessible accDescription: None
IAccessible accValue: None
IAccessible2 windowHandle: 0
IAccessible2 uniqueID: 0
IAccessible2 role: ROLE_SYSTEM_CELL
IAccessible2 states: (0)
IAccessible2 attributes: None

case two: Chrome app line

Steps to reproduce:

  1. Open Google Chrome.
  2. Download and install line
  3. Login account.
  4. Choose a friend to chat.
  5. Press NVDA+space to switch to focus mode and type text string.
  6. Press enter to send message.
  7. Switch to browse mode and press up arrow to leave section editable.
  8. Press down arrow to come back and switch to focus mode.
    expected: User could type text string and send message.
    actual: The focus is not in the same place.
    User need to press NVDA+numpadDivide to Move mouse to current navigator object, and press numpadDivide (Left mouse button click) to come back to section.
Developer info: section has focus true

Developer info for navigator object:
name: None
role: ROLE_SECTION
states: STATE_FOCUSABLE, STATE_EDITABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object:
Python class mro: (, , , , , , , , , , , )
description: None
location: None
value: u’\u8acb\u8f38\u5165\u8a0a\u606f\u3002’
appModule: <’appModuleHandler’ (appName u’chrome’, process ID 251112) at address 575f650>
appModule.productName: u’Google Chrome’
appModule.productVersion: u’52.0.2743.116’
TextInfo:
windowHandle: 1181606L
windowClassName: u’Chrome_RenderWidgetHostHWND’
windowControlID: 186829216
windowStyle: 1445986304
windowThreadID: 246556
windowText: u’Chrome Legacy Window’
displayText: exception: ‘NoneType’ object is not iterable
IAccessibleObject:
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=1181606, objectID=-4, childID=-30983
IAccessible accName: None
IAccessible accRole: u’div’
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)
IAccessible accDescription: None
IAccessible accValue: u’\u8acb\u8f38\u5165\u8a0a\u606f\u3002’
IAccessible2 windowHandle: 1181606
IAccessible2 uniqueID: -30983
IAccessible2 role: IA2_ROLE_SECTION
IAccessible2 states: IA2_STATE_OPAQUE, IA2_STATE_EDITABLE (1032)
IAccessible2 attributes: u’display:block;tag:div;class:mdRGT06Input;id:_chat_room_input;’


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