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

Accessibility features of widgets Not working correctly with NVDA / Jaws

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.11.0
    • 5.2.1
    • QT Library: QT5.2
      Build Options: Static Libraries, Accessibility
      Compiler: Built with MSVC10.00.30319.01
      NVDA and Jaws 14
      Pacmate USB Braille Display
    • 0cf6297c15be45d852be98c862bd0211e6de1aa2

    Description

      I have been doing some serious work, trying to make an accessible application using QT, and have stumbled across a number of bugs / features - I am happy to resubmit these bugs as multiple issues, perhaps by widget, if it helps.

      Quite often, I've read of people having problems getting the accessible features to work, and they have been guided towards making sure the correct DLLS are installed / called up, which is valid advice, however I've also made some other discoveries:

      Building accessible applications for Windows platform, but using MinGW (I cross-compiled from Linux) results in very non-functional applications - very little is spoken, if anything (i.e. the same symptoms as not having the correct DLLs installed / linked).

      Building them natively, using MSVC10, results more success, but again, different results are observed when using NVDA, which uses IAccessible2, and Jaws14, which uses MSAA.

      I have detailed the observations, and what I believe are bugs / features that need to be resolved, but am not clear about where these bugs actually lie - some of them may be in Jaws or NVDA, although a large number of them I suspect lie within the QT libraries, as they are common to both screen-readers.

      I have attached the source for SimpleBox - the application I've been using, and if possible, I'll also attach the win32 executable.

      ------
      
      Program: SimpleBox
      QT Library: QT5.2
      Build Options: Static Libraries, Accessibility
      Compiler: Built with MSVC10.00.30319.01
      
      
      Menus
      -----
      
      NVDA Speaks:
      
      Alt-M, which shows Menu Option One:	"Menu Bar"
      Down arrow, which shows Option Two:	"Menu"
      Up arrow, selecting Option One again:	"Menu Option One"
      	Down arrow, back to Option Two:		"Menu Option Two"
      
      NVDA Pacmate Braille Display Shows:
      "Mnu"
      "Mnu"
      	"Menu Option 1"
      
      Jaws Speaks:
      
      Alt-M, which shows Menu Option One:	"Menu Two Menu, Menu Option One"
      Down arrow, which shows Option Two:	nothing spoken
      Up arrow, selecting Option One again:	"Option Three"
      Down arrow, back to Option Two:		 "Option Two"
      
      Jaws Pacmate Braille Display Shows:
      	"Mnu"
      	"Mnu"
      	"Mnu"
      
      BUG1: NVDA / IAccessible 2 / Jaws / MSAA : It appears that the first two menu options selected when using the keyboard are not spoken / shown correctly.  After that, navigating this menu works OK.  Moving left/right to the next menu item, and the first two menu options are not spoken / shown correctly.  This is consistent with both NVDA and Jaws.
      
      BUG2: NVDA / IAccessible 2 / Jaws / MSAA : The text for the current menu option is not shown correctly on the braille display.
      
      
      Text Edit
      ---------
      
      NVDA Speaks:
      "Accessible Text Edit" 	- This is the accessible name set in creator
      "Edit Multiline" 	- This is a system generated message
      "QTextEdit" 		- This is the accessible description set in creator
      "Contents of Text Edit"	- This is the first line of the text edit
      
      NVDA Pacmate Braille Display Shows:
      "Contents of Text Edit"
      
      Jaws Speaks:
      "Accessible Text Edit"
      "Edit Type of Text"
      
      Jaws Pacmate Braille Display Shows:
      "Accessible Text Edit mlid"
      
      When Shift-Down is used to select a line when the cursor is at the start of a line, the braille display shows the unselected next line.  This is different to other applications such as notepad, where the braille display shows the selected line.  This has no impact to non braille users, but it is very useful to see what you have selected, and consistency of applications is important.
      
      BUG1: With NVDA / IAccessible2: Shift-down should leave the cursor at the end of the current line, rather than the beginning of the next line.  This will make QT applications consistent with other non-QT windows applications, and make the interface more useful with a Braille display.
      
      BUG2: With Jaws / MSAA: No user text displayed on braille display.  Jaws does not speak contents of text edit.  Cursor not shown on Braille display.
      
      
      Line Edit
      ---------
      
      NVDA Speaks:
      	"Accessible Line Edit" 	- This is the accessible name set in creator
      	"Edit Selected Submenu" - This is a system generated message
      	"QLineEdit" 		- This is the accessible description set in creator
      	"Selected"		- This is a system generated message
      	"Contents of Line Edit"	- This is the selected contents of the line edit
      
      NVDA Pacmate Braille Display Shows:
      	nothing			- this appears to be because the contents are selected.  Once deselected, the contents are displayed.
      
      Jaws Speaks:
      	"Accessible Line Edit" 	- This is the accessible name set in creator
      	"Edit" 			- This is a system generated message
      	"Contents of Line Edit"	- This is the selected contents of the line edit
      
      Jaws Pacmate Braille Display Shows:
      	"Accessible Line Edit id graphic XXX"
      
      BUG1: With NVDA / IAccessible2: The system generated Description says "Edit Selected Submenu" - no submenus are involved.
      BUG2: With NVDA / IAccessible2: The Braille display does not initially show the selected text - you have to use the arrow keys, deselecting the text to see it.
      BUG3: With NVDA / IAccessible2: Subsequent Shift-select does not show text as selected in the braille display.
      BUG4: With Jaws / MSAA: Braille display does not show user contents.  After 'graphic id', braille display flashes random garbage.
      
      
      Plaintext Edit
      --------------
      
      NVDA Speaks:
      	"Accessible Plaintext Edit" 	- This is the accessible name set in creator
      	"Edit Multiline" 		- This is a system generated message
      	"QPlainTextEdit" 		- This is the accessible description set in creator
      	"Contents of Plaintext Edit"	- This is the first line of the plaintext edit
      
      NVDA Pacmate Braille Display Shows:
      	"Contents of Plaintext Edit"
      
      Jaws Speaks:
      	"Accessible Plaintext Edit"	- This is the accessible name set in creator
      	"Edit Type of Text"		- This is a system generated message
      
      Jaws Pacmate Braille Display Shows:
      	"Accessible Plaintext Edit mlid"
      
      
      BUG1: With Jaws / MSAA: Braille display does not show user contents.
      
      
      Text Browser
      ------------
      
      NVDA Speaks:
      	"Text Browser" 			- This is the accessible name set in creator
      	"Text" 				- This is a system generated message
      	"This is the text ... italics"	- This is the entire contents of the multiline browser
      	"Multiline" 			- This is a system generated message
      	"This is a Text Browser Box"	- This is the accessible description set in creator
      
      NVDA Pacmate Braille Display Shows:
      	"Text Browser This is the ..."
      
      Jaws Speaks:
      	"Text Browser" 			- This is the accessible name set in creator
      	"Readonly" 			- This is a system generated message
      	"This is the text ... italics"	- This is the entire contents of the multiline browser
      
      Jaws Pacmate Braille Display Shows:
      	nothing
      
      BUG1: With NVDA / IAccessible2: Minor, but this is the only control that has the accessible description after the contents of the contents of the widget.
      BUG2: With Jaws / MSAA: Braille display does not show user contents.
      BUG3: With NVDA / IAccessible2: Shift-select does not show characters as selected on braille display.
      
      
      Tab Control
      -----------
      
      NVDA
      
      Tab to get to the tabbar, and NVDA Speaks:
      	"Option 1"		- This is the title of the Tab
      	"Tab Control"		- This is a system generated message
      
      Press right, or alt-another tab entry NVDA Speaks:
      	"Option 2" 		- This is the title of the Tab
      	"Tab" 			- This is a system generated message
      	"Option 2 Option 2"	- This is the title of the Tab again, and again
      
      Press alt, to select menu bar, and then alt-3 to select tab 3, NVDA Speaks:
      	nothing
      
      NVDA Pacmate Braille Display Shows:
      	"Option 1 Tab Control"
      	"Option 2 Tab Option 2 Option 2"
      
      Jaws
      
      Tab to get to the tabbar, and Jaws Speaks:
      	"Option 1"				- This is the title of the Tab
      	"Tab"					- This is a system generated message
      	"To Switch Pages Press Control-Tab"	- This is a system generated message
      
      Press right, or alt-another tab entry Jaws Speaks:
      	"Option 2" 				- This is the title of the Tab
      	"Tab" 					- This is a system generated message
      	"Insert-F1 Help"			- This is a system generated message
      	"To Switch Pages Press Control-Tab"	- This is a system generated message
      
      Press alt, to select menu bar, and then alt-3 to select tab 3, Jaws Speaks:
      	"Leaving Menus"				- This is a system generated message
      	"Option 3" 				- This is the title of the Tab
      	"Tab" 					- This is a system generated message
      	"Insert-F1 Help"			- This is a system generated message
      	"To Switch Pages Press Control-Tab"	- This is a system generated message
      	
      Jaws Pacmate Braille Display Shows:
      	"Option 1 Tab", "Option 2 Tab", "Option 3 Tab"
      
      BUG1: With NVDA / IAccessible2: Text spoken / shown on braille display is inconsistent, or not at all depending on how Tab bar is accessed, whereas with Jaws, it works consistently.
      
      
      List Widget
      -----------
      
      NVDA
      
      Tab to get to the list widget, and NVDA Speaks:
      	"List Widget Item 1"	- This is the contents of the first entry in the list
      	"List Widget Item 1"	- This is repeated for some reason
      	"Not Selected"		- This is a system generated message
      
      Press down arrow:
      	"List Widget Item 2"	- This is the contents of the second entry in the list
      	"List Widget Item 2"	- This is repeated for some reason
      
      Press tab to go to the next widget, then shift-tab to come back, and NVDA Speaks:	
      	nothing
      
      NVDA Pacmate Braille Display Shows:
      	"List Widget Item 1 List Widget Item 1"
      	"List Widget Item 2 List Widget Item 2"
      	nothing
      
      Jaws:
      
      Tab to get to the list widget, and Jaws Speaks:
      	"Accessible List Widget"- This is the accessible name set in creator
      	"List Box"		- This is a system generated message
      	"List Widget Item 1"	- This is the contents of the first entry in the list
      
      Press down arrow:
      	"List Widget Item 2"	- This is the contents of the second entry in the list
      
      Press tab to go to the next widget, then shift-tab to come back, and NVDA Speaks:	
      	"Accessible List Widget"- This is the accessible name set in creator
      	"List Box"		- This is a system generated message
      	"List Widget Item 2"	- This is the contents of the second entry in the list
      
      Jaws Pacmate Braille Display Shows:
      	"Accessible List Widget lbx list widget item 1"
      
      BUG1: With NVDA / IAccessible2: List Widget accessible name / description not spoken
      BUG2: With NVDA / IAccessible2: When tabbing into a list widget, if the current item is selected, nothing is spoken or displayed on braille display.
      BUG3: With NVDA / IAccessible2: When tabbing to a QLineEdit after the current List Widget Item has not been spoken, and the QLineEdit is also silent.
      
      
      Radio Button / Checkbox
      -----------------------
      
      Radio button shown, but checkbox works exactly the same way.
      
      Tab to get to the radio button, and NVDA Speaks:
      	"Accessible Radio Button"	- This is the accessible name set in creator
      	"Radio Button Not Checked"	- This is a system generated message
      	"QRadioButton"			- This is the accessible description set in creator
      
      Tab to get to the radio button, and Jaws Speaks:
      	"Accessible Radio Button"			- This is the accessible name set in creator
      	"Radio Button Not Checked"			- This is a system generated message
      	"To change the selection press up/down arrow"	- This is a system generated message
      
      Jaws Pacmate Braille Display Shows:
      	"Accessible Radio Button ' ' rbtn" or 	"Accessible Radio Button 'X' rbtn"
      
      
      BUGS: None found
      
      
      
      DateEdit / TimeEdit / DateTimeEdit
      ----------------------------------
      
      NVDA
      
      Tab to get to the date edit and NVDA Speaks:
      	"Accessible Date Edit"		- This is the accessible name set in creator
      	"Spinbutton"			- This is a system generated message
      	"0Q"				- This always says "0Q" irrespective of contents
      	"QDateEdit"			- This is the accessible description set in creator
      
      Up/Down/Left/Right to adjust date, and NVDA Speaks:
      	nothing
      
      NVDA Pacmate Braille Display Shows:
      	"Accessible Date Edit 0 Spin Button"
      
      Jaws
      
      Tab to get to the date edit and Jaws Speaks:
      	"Accessible Date Edit"					- This is the accessible name set in creator
      	"Edit Spinbutton"					- This is a system generated message
      	"0"							- This is the first character of "01"
      	"To set the value use the arrow keys or type the value"	- This is a system generated message
      
      Up/Down to adjust date, and Jaws Speaks:
      	blank
      
      If the contents of the data field are selected, Up/Down to adjust date, and Jaws Speaks:
      	"Graphic 380"
      
      Left/Right, and Jaws Speaks:
      	nothing
      
      Jaws Pacmate Braille Display Shows:
      	"Accessible Date Edit spinbx " - No number or contents.  Braille display also shows garbage output (random flashing pins).
      
      BUG1: With NVDA / IAccessible2: For all three DateEdit, TimeEdit and DateTimeEdit, selecting a different date/time with the keyboard has no spoken output, or change in braille display.
      BUG2: With Jaws / MSAA: For all three DateEdit, TimeEdit and DateTimeEdit, selecting a different date/time with the keyboard has no spoken output, or says "blank".
      BUG3: With Jaws / MSAA: For all three DateEdit, TimeEdit andDateTimeEdit, Braille display fails to show output.
      
      
      
      Combobox
      --------
      
      Tab to get to the combobox, and NVDA Speaks:
      	"Accessible Combobox"	- This is the accessible name set in creator
      	"Combobox"		- This is a system generated message
      	"Combobox First Entry"	- This is the content of the first entry
      	"QCombobox"		- This is the accessible description set in creator
      
      Use the up/down arrows to select a different entry, and NVDA speaks:
      	nothing
      
      Press space, to open the combobox, and use the down key to select the second entry:
      	"Combobox Second Entry"	- This is the content of the second entry
      	"Combobox Second Entry"	- The message is repeated for some reason
      
      NVDA Pacmate Braille Display Shows:
      	"Accessible Combobox Combobox Combobox First Entry"  (even with the up/down arrows when nothing is spoken)
      Jaws
      
      Tab to get to the combobox, and NVDA Speaks:
      	"Accessible Combobox"				- This is the accessible name set in creator
      	"Combobox"					- This is a system generated message
      	"Combobox First Entry"				- This is the content of the first entry
      	"To change the selection use the arrow keys"	- This is a system generated message
      
      Use the up/down arrows to select a different entry, and Jaws speaks:
      	nothing
      
      Press space, to open the combobox, and use the down key to select the second entry:
      	Listbox"
      	"Combobox Second Entry"	- This is the content of the second entry
      
      Jaws Pacmate Braille Display Shows:
      	"cbx Combobox First Entry"
      
      BUG1: With both Jaws/MSAA and NVDA/IAccessible2: Navigating through a combobox without expanding it does not have accessible spoken output, although NVDA does correctly show the contents on the braille display.
      BUG2: With NVDA / IAccessible2: Opening combobox and navigating through the entries, speaks each entry twice
      
      
      Spin Button / QDial / QSlider
      -----------------------------
      
      Tab to the spinbutton, and NVDA speaks:
      	"Accessible Spin Button" 	- This is the accessible name set in creator
      	"Spin Button"			- This is a system generated message
      	"0"				- This is the current value
      	"QSpinbox"			- This is the accessible description set in creator
      
      Use the arrow keys, and the spinbutton reports the new value correctly
      
      For NVDA, the QDial and QSlider work the same as the QSpinbutton
      
      NVDA Pacmate Braille Display Shows:
      	"Accessible Spin Button 0 Spin Button ..Ps .. spin .box"
      
      Tab to the spinbutton, and Jaws speaks:
      	"Accessible Spin Button"	 	- This is the accessible name set in creator
      	"Spin Button"				- This is a system generated message
      	"0"					- This is the current value
      	"To set the value use the arrow keys"	- This is a system generated message
      
      Use the arrow keys,and Jaws Speaks:
      	"blank"
      
      BUG1: With Jaws/MSAA: Spinbox does not speak / show on a braille display, the correct / current value.
      BUG2: With Jaws/MSAA: QDial does not speak / show on a braille display, the correct / current value.
      
      Note: with Jaws/MSAA: QSlider works correctly, and the braille display shows the correct value.
      
      

      Attachments

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

        Activity

          People

            anrocha André De La Rocha (Inactive)
            trumpton Steve Clarke
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes