Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-90899

Windows/Accessibility: NVDA sometimes reads out information twice

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.12.9, 5.15.1
    • Fix Version/s: None
    • Labels:
      None
    • Platform/s:
      Windows

      Description

      Repro steps:

      1. Using any version of Qt that supports UI Automation, create a dialog with at least one button (see below code sample)
      2. Open NVDA (https://github.com/nvaccess/nvda http://nvda.bhvd.de/ )
      3. Show the dialog
      4. Observe

      Expected results:

      • NVDA reads the dialog contents and the focused widget once (e.g. "Critical message dialog, This is a critical message, OK button, Enter")

      Actual results:

      • NVDA reads the dialog contents and the focused widget twice

      Additional info:

      • I am upgrading an application from 5.9.3 (MSAA accessibility backend) to 5.15.1 (UIA accessibility backend).  NVDA behaves as expected in 5.9.3.
      • I only see this issue in Qt applications.  The UIA examples on MSDN do not exhibit this issue.
      • Narrator does not exhibit this issue.  Only NVDA.
      • The same issue can be seen when creating a simple dialog in Qt Designer and previewing it (from the Form menu)
      • This might be related to QTBUG-90897, though the symptoms are slightly different.

      Code sample:

       

      #include <QApplication>
      #include <QHBoxLayout>
      #include <QMessageBox>
      #include <QPushButton>
      
      int main(int argc, char *argv[])
      {
      	QApplication app(argc, argv);
      	QCoreApplication::setApplicationName("Qt NVDA double readout");
      
      	QWidget window;
      	window.resize({ 300, 100 });
      	window.setLayout(new QHBoxLayout());
      
      	QPushButton *button = new QPushButton("Click me!");
      	QObject::connect(button, &QPushButton::clicked, []()
      	{
      		QMessageBox::critical(nullptr,
      			"Critical message",
      			"This is a critical message",
      			QMessageBox::StandardButton::Ok);
      	});
      	window.layout()->addWidget(button);
      
      	window.show();
      
      	return app.exec();
      }
      

       

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              Assignee:
              anrocha André De La Rocha
              Reporter:
              mloftus Mitchell Loftus
              PM Owner:
              Veli-Pekka Heinonen Veli-Pekka Heinonen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:

                  Gerrit Reviews

                  There are no open Gerrit changes