Open notepad in Kleopatra and start encryption with symmetric passphase.
The pinentry window pops up and NVDA reads (according to speech log)
'pinentry-qt5', 'dialog', 'Enter passphrase\n'```
'Passphrase:', 'edit', 'protected' (not really audible)pinentry-qt5 dialog Enter passphrase
'Passphrase: edit protected blank
pinentry-qt5', ' dialog', ' Enter passphrase\n'
NVDA log:
```
where the second line isn't audible. Maybe it's canceled/skipped in favor of the third line.
```
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLoggINFO - __main__ (17:04:31.564) - MainThread (5092):
Starting (16:38:13.371) - MainThread (5844):NVDA version 2025.1.2 x86
[...]
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (17:05:59.376) - MainThread (5092):
EvtTracker: object: <NVDAObjects.Dynamic_DialogUIAWindowNVDAObject object at 0x09CD3F505DB3E10>
name: pinentry-qt5
role: Role.DIALOG
event: foreground
app module: <'AppModule(appModuleHandler' (, appName ='pinentry', process ID 1332) at address 993fbf0>ID=7840)
window class name: Qt5159QWindowIcon
UIA Automation Id:
class name: PinEntryDialog
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (17:05:59.376) - MainThread (5092):
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (16:38:13.371) - MainThread (5844):
EvtTracker: object: <NVDAObjects.Dynamic_DialogUIAWindowNVDAObject object at 0x0993FE9041AA90>
name: pinentry-qt5
role: Role.DIALOG
event: focusEntered
app module: <'AppModule(appModuleHandler' (, appName ='pinentry', process ID 1332) at address 993fbf0>ID=7840)
window class name: Qt5159QWindowIcon
UIA Automation Id:
class name: PinEntryDialog
IO - speech.speech.speak (16:38:13.4317:05:59.444) - MainThread (5844):092):
Speaking [LangChangeCommand ('en_GB'), 'pinentry-qt5', 'dialog', 'Enter passphrase\n', CancellableSpeech (still valid)]
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (17:05:59.446) - MainThread (5092):
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (16:38:13.436) - MainThread (5844):
EvtTracker: object: <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionUIA object at 0x0993FDF013F81F0>
name: Passphrase:
role: Role.EDITABLETEXT
event: gainFocus
app module: <'AppModule(appModuleHandler' (, appName ='pinentry', process ID 1332) at address 993fbf0>ID=7840)
window class name: Qt5159QWindowIcon
UIA Automation Id:
class name: PinLineEdit
DEBUG - NVDAObjects.NVDAObject._get_placeholder (17:05:59.455) - MainThread (5092):
Potential unimplemented child class: <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionUIA object at 0x013F81F0>
IO - speech.speech.speak (17:05:59.471) - MainThread (5092):
DEBUG - NVDAObjects.NVDAObject._get_placeholder (16:38:13.460) - MainThread (5844Speaking [LangChangeCommand ('en_GB'), 'Passphrase:', 'edit', 'protected', CancellableSpeech (still valid), 'blank']
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (17:05:59.476) - MainThread (5092):
Potential unimplemented child classEvtTracker: object: <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionUIAIAccessible.Button object at 0x0993FDF013F8E50>
IO - speech.speech.speak (16:38:13.464) - MainThread (5844):name: pinentry.exe - 1 running window
Speaking [LangChangeCommand ('en_GB'), 'Passphrase:', 'edit', 'protected', CancellableSpeech (still valid), 'blank']role: BUTTON
event: stateChange
states: 16, 8192, 16777216
app module: AppModule(explorer, appName='explorer', processID=4632)
window class name: MSTaskListWClass
IAccessible accName: 'pinentry.exe - 1 running window'
IAccessibleChildID: 13
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (16:38:13.4667:05:59.478) - MainThread (5844):092):
EvtTracker: object: <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionUIA object at 0x0993FDF013F81F0>
name: Passphrase:
role: Role.EDITABLETEXT
event: loseFocus
app module: <'AppModule(appModuleHandler' (, appName ='pinentry', process ID 1332) at address 993fbf0>ID=7840)
window class name: Qt5159QWindowIcon
UIA Automation Id:
class name: PinLineEdit
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (17:05:59.479) - MainThread (5092):
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (16:38:13.467) - MainThread (5844):
EvtTracker: object: <NVDAObjects.Dynamic_DialogUIAWindowNVDAObject object at 0x0993FD905E3E50>
name: pinentry-qt5
role: Role.DIALOG
event: gainFocus
app module: <'AppModule(appModuleHandler' (, appName ='pinentry', process ID 1332) at address 993fbf0>ID=7840)
window class name: Qt5159QWindowIcon
UIA Automation Id:
class name: PinEntryDialog
IO - speech.speech.speak (16:38:13.5447:05:59.561) - MainThread (5844):092):
Speaking [LangChangeCommand ('en_GB'), 'pinentry-qt5', 'dialog', 'Enter passphrase\n', CancellableSpeech (still valid)]
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (17:05:59.564) - MainThread (5092):
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (16:38:13.548) - MainThread (5844):
EvtTracker: object: <NVDAObjects.IAccessible.Button object at 0x0994E070>
name: Kleopatra - 1 running window
role: Role.BUTTON
event: stateChange
states: State.HASPOPUP, State.FOCUSABLE
app module: <'explorer' (appName 'explorer', process ID 4632) at address 8879530>
window class name: MSTaskListWClass
IAccessible accName: 'Kleopatra - 1 running window'
IAccessibleChildID: 8
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (16:38:13.550) - MainThread (5844):
EvtTracker: object: <NVDAObjects.Dynamic_DialogUIAWindowNVDAObject object at 0x0994E2B013F8350>
name: pinentry-qt5
role: Role.DIALOG
event: UIA_window_windowOpen
app module: <'AppModule(appModuleHandler' (, appName ='pinentry', process ID 1332) at address 993fbf0>ID=7840)
window class name: Qt5159QWindowIcon
UIA Automation Id:
class name: PinEntryDialog
DEBUG - external:globalPlugins.evtTracker.GlobalPlugin.evtDebugLogging (16:38:13.554) - MainThread (5844):
EvtTracker: object: <NVDAObjects.IAccessible.Button object at 0x0994E310>
name: pinentry.exe - 1 running window
role: Role.BUTTON```
We see
event: stateChange* focusEntered for pinentry-qt5 dialog -> NVDA speaks `pinentry-qt5 dialog Enter passphrase`
states: State.PRESSED, State.HASPOPUP, State.FOCUSABLE* gainFocus for Passphrase input field -> NVDA speaks `Passphrase: edit protected blank`
app module: <'explorer' (appName 'explorer', process ID 4632) at address 8879530>* loseFocus for Passphrase input field
window class name: MSTaskListWClass
```* gainFocus for pinentry-qt5 dialog -> NVDA speaks `pinentry-qt5 dialog Enter passphrase`
This could point to a bug in Qt with wrong order of events, e.g. focus event for dialog is sent after focus event for input field.