[e10s a11y] NVDA cannot access multi-line text fields in e10s tabs

RESOLVED INVALID

Status

()

Core
Disability Access APIs
--
major
RESOLVED INVALID
a year ago
a year ago

People

(Reporter: MarcoZ, Unassigned)

Tracking

(Blocks: 1 bug)

52 Branch
x86
Windows 10
Points:
---

Firefox Tracking Flags

(firefox52 affected)

Details

(Reporter)

Description

a year ago
STR:
1. With NVDA running and e10s enabled, log into https://irccloud.mozilla.com and join a channel.
2. Press e until you hear NVDA say "New Message Input Edit".
3. Press Enter.

Expected: NVDA should go into focus mode, and you should be able to type.
Actual: NVDA produces its error sound, the descending piano chords, and does not invoke focus mode. Afterwards, navigation in this virtual buffer is pretty much broken.

NVDA produces the following in the logs, accessible by pressing NVDAKey + F1:

ERROR - eventHandler.executeEvent (06:30:54):
error executing event: gainFocus on <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionEditorMozillaIAccessible object at 0x0C984E90> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.pyc", line 143, in executeEvent
  File "eventHandler.pyc", line 91, in __init__
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\easyTableNavigator\globalPlugins\easyTableNavigator.py", line 82, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\remote\globalPlugins\remoteClient\__init__.py", line 341, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\wintenApps\globalPlugins\wintenObjs.py", line 75, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "appModules\firefox.pyc", line 24, in event_stateChange
  File "eventHandler.pyc", line 98, in next
  File "browseMode.pyc", line 1305, in event_gainFocus
  File "treeInterceptorHandler.pyc", line 118, in _set_passThrough
  File "review.pyc", line 117, in setCurrentMode
  File "review.pyc", line 27, in getObjectPosition
  File "NVDAObjects\__init__.pyc", line 958, in makeTextInfo
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 72, in __init__
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 170, in _findContentDescendant
LookupError: Object has no text descendants
ERROR - eventHandler.executeEvent (06:31:03):
error executing event: gainFocus on <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionBrokenFocusedStateEditorMozillaIAccessible object at 0x0C9976D0> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.pyc", line 138, in executeEvent
  File "eventHandler.pyc", line 151, in doPreGainFocus
  File "api.pyc", line 141, in setFocusObject
  File "api.pyc", line 220, in setNavigatorObject
  File "review.pyc", line 117, in setCurrentMode
  File "review.pyc", line 27, in getObjectPosition
  File "NVDAObjects\__init__.pyc", line 958, in makeTextInfo
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 72, in __init__
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 170, in _findContentDescendant
LookupError: Object has no text descendants
ERROR - eventHandler.executeEvent (06:31:10):
error executing event: gainFocus on <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionBrokenFocusedStateEditorMozillaIAccessible object at 0x0CA081D0> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.pyc", line 143, in executeEvent
  File "eventHandler.pyc", line 91, in __init__
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\easyTableNavigator\globalPlugins\easyTableNavigator.py", line 82, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\remote\globalPlugins\remoteClient\__init__.py", line 341, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\wintenApps\globalPlugins\wintenObjs.py", line 75, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "appModules\firefox.pyc", line 24, in event_stateChange
  File "eventHandler.pyc", line 98, in next
  File "browseMode.pyc", line 1305, in event_gainFocus
  File "treeInterceptorHandler.pyc", line 118, in _set_passThrough
  File "review.pyc", line 117, in setCurrentMode
  File "review.pyc", line 27, in getObjectPosition
  File "NVDAObjects\__init__.pyc", line 958, in makeTextInfo
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 72, in __init__
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 170, in _findContentDescendant
LookupError: Object has no text descendants
ERROR - eventHandler.executeEvent (06:31:14):
error executing event: gainFocus on <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionEditorMozillaIAccessible object at 0x0C9AA2D0> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.pyc", line 138, in executeEvent
  File "eventHandler.pyc", line 151, in doPreGainFocus
  File "api.pyc", line 141, in setFocusObject
  File "api.pyc", line 220, in setNavigatorObject
  File "review.pyc", line 117, in setCurrentMode
  File "review.pyc", line 27, in getObjectPosition
  File "NVDAObjects\__init__.pyc", line 958, in makeTextInfo
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 72, in __init__
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 170, in _findContentDescendant
LookupError: Object has no text descendants
ERROR - scriptHandler.executeScript (06:31:51):
error executing script: <bound method Gecko_ia2.script_activatePosition of <virtualBuffers.gecko_ia2.Gecko_ia2 object at 0x05A13350>> with gesture u'Eingabe'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 186, in executeScript
  File "browseMode.pyc", line 375, in script_activatePosition
  File "browseMode.pyc", line 1078, in _activatePosition
  File "browseMode.pyc", line 366, in _activatePosition
  File "treeInterceptorHandler.pyc", line 118, in _set_passThrough
  File "review.pyc", line 117, in setCurrentMode
  File "review.pyc", line 27, in getObjectPosition
  File "NVDAObjects\__init__.pyc", line 958, in makeTextInfo
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 72, in __init__
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 170, in _findContentDescendant
LookupError: Object has no text descendants
ERROR - eventHandler.executeEvent (06:32:41):
error executing event: gainFocus on <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionEditorMozillaIAccessible object at 0x0C9AA950> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.pyc", line 143, in executeEvent
  File "eventHandler.pyc", line 91, in __init__
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\easyTableNavigator\globalPlugins\easyTableNavigator.py", line 82, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\remote\globalPlugins\remoteClient\__init__.py", line 341, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\marco\AppData\Roaming\nvda\addons\wintenApps\globalPlugins\wintenObjs.py", line 75, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "appModules\firefox.pyc", line 24, in event_stateChange
  File "eventHandler.pyc", line 98, in next
  File "browseMode.pyc", line 1324, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "NVDAObjects\behaviors.pyc", line 167, in event_gainFocus
  File "NVDAObjects\__init__.pyc", line 892, in event_gainFocus
  File "NVDAObjects\__init__.pyc", line 804, in reportFocus
  File "speech.pyc", line 368, in speakObject
  File "NVDAObjects\__init__.pyc", line 958, in makeTextInfo
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 76, in __init__
  File "NVDAObjects\IAccessible\ia2TextMozilla.pyc", line 170, in _findContentDescendant
LookupError: Object has no text descendants
ERROR - queueHandler.flushQueue (06:39:12):
Error in func _handleUpdate from eventQueue
Traceback (most recent call last):
  File "queueHandler.pyc", line 50, in flushQueue
  File "virtualBuffers\__init__.pyc", line 674, in _handleUpdate
  File "braille.pyc", line 1679, in handleUpdate
  File "braille.pyc", line 915, in update
  File "textInfos\offsets.pyc", line 348, in expand
  File "virtualBuffers\__init__.pyc", line 314, in _getUnitOffsets
  File "textInfos\offsets.pyc", line 330, in _getUnitOffsets
  File "virtualBuffers\__init__.pyc", line 250, in _getLineOffsets

Comment 1

a year ago
Confirmed. It's easiest to reproduce with a simple textarea. For example, just open this URL:
data:text/html,<textarea>foo</textarea>

NVDA has some other in-process code related to Mozilla editable text that was still using SendMessage. I've updated this to use PostMessage now and this now works for me. This is still pending review, but here's a try build:
https://ci.appveyor.com/api/buildjobs/6v9e0q12ifwbj2ih/artifacts/output%2Fnvda_snapshot_try-vbufPostMessage-13597%2C1692ac78.exe

For reference, here's the NVDA pull request:
https://github.com/nvaccess/nvda/pull/6380

Comment 2

a year ago
This change is now available in NVDA "next" snapshots.
(Reporter)

Comment 3

a year ago
Confirmed fixed in latest NVDA snapshot. Closing as INVALID, since this turned out not to be our bug.
Status: NEW → RESOLVED
Last Resolved: a year ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.