Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.4.3, 6.7.0 FF
-
None
-
Windows 10, qtbase self-compiled from dev branch as of commit b3930b03cd6519db068bf0fca45d3e32ff7ce2df, but also happens with Qt Creator 11.0.1 that comes with Qt 6.4.3
-
-
9900a12df649229c9ff9e2115ac90fb7f634da1d, 100eac7a3 (6.5), 3fc198cf3 (6.6)
Description
When the NVDA screen reader is running, hovering with the mouse pointer over a place in a text edit (or the coding area in Qt Creator) where no character is, triggers an exception in the NVDA screen reader because Qt's ITextProvider::RangeFromPoint implementation behaves incorrectly.
Sample steps to reproduce:
- start the NVDA screen reader (tested with 2023.1 and git master as of commit a85afcef63e536583cff077d2348d6541a3889a5)
- run the customtypesending example from qtbase (examples\corelib\tools\customtypesending\customtypesending.exe)
- hover over the text field with the mouse
- check NVDA log
Result:
This exception can be seen in the NVDA log:
ERROR - eventHandler.executeEvent (19:18:09.994) - MainThread (5180): error executing event: mouseMove on <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionUIA object at 0x08251370> with extra args of {'x': 2785, 'y': 390} Traceback (most recent call last): File "eventHandler.pyc", line 300, in executeEvent File "eventHandler.pyc", line 101, in __init__ File "eventHandler.pyc", line 110, in next File "NVDAObjects\__init__.pyc", line 1212, in event_mouseMove File "NVDAObjects\UIA\__init__.pyc", line 904, in expand File "monkeyPatches\comtypesMonkeyPatches.pyc", line 32, in __call__ ValueError: NULL COM pointer access
Further notes:
- This is with the "Enable mouse tracking" option enabled in NVDA (which is the case by default).
- When using an NVDA test version or explicitly enabling the "Play a sound for logged errors" in NVDA, NVDA constantly "beeps" while moving the cursor over the edit, which is how I originally ran into this issue.