Closed Bug 1304274 Opened 8 years ago Closed 8 years ago

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

Categories

(Core :: Disability Access APIs, defect)

52 Branch
x86
Windows 10
defect
Not set
major

Tracking

()

RESOLVED INVALID
Tracking Status
firefox52 --- affected

People

(Reporter: MarcoZ, Unassigned)

References

(Blocks 1 open bug)

Details

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
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
This change is now available in NVDA "next" snapshots.
Confirmed fixed in latest NVDA snapshot. Closing as INVALID, since this turned out not to be our bug.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.