FreedomScientific / standards-support

Contains documentation for Vispero software support of Web standards
https://freedomscientific.github.io/standards-support/
GNU General Public License v3.0
105 stars 11 forks source link

JAWS requires two enter key presses to activate a button #825

Closed kloots closed 1 month ago

kloots commented 2 months ago

Summary

JAWS requires two enter key presses to activate a button.

Example:

  1. Go to https://kloots.github.io/jaws-application-mode-bug-6.html
  2. Use tab to navigate to the button labeled "Forward message"
  3. Observe JAWS instructs you: "...to activate press enter"
  4. Press enter
  5. Observe JAWS switches to forms mode
  6. Press enter again
  7. Observe focus is moved within an ARIA dialog
  8. Use tab to navigate to the close button within the dialog
  9. Observe JAWS instructs you: "...to activate press enter"
  10. Press enter
  11. Observe JAWS switches to forms mode
  12. Press enter
  13. Observe the dialog is closed

Expected result

JAWS shouldn't require two enter key presses to click/activate a button

Actual result

JAWS requires two enter key presses to click/activate a button

Additional Information

JAWS version and build number

JAWS 2024.2403.3

Operating System and version

Windows 11

Browser and version:

Chrome 124.0.6367.61

kloots commented 2 months ago

Here is a demo of this bug https://github.com/FreedomScientific/standards-support/assets/40818/866360a1-172e-4489-bdce-0ec84e91302a

kloots commented 2 months ago

Here's a demo of how the same example works in NVDA: only a single enter key press is require to click a button https://github.com/FreedomScientific/standards-support/assets/40818/5a98a41e-178e-43ea-a6ed-f2bca5b8a9b1

stevefaulkner commented 2 months ago

Thanks @kloots, can reproduce with JAWS 2024.2403.3 and Chrome 124.0.6367.61

BrettLewisVispero commented 2 months ago

Imported into ADO as bug 80493

kloots commented 2 months ago

@BrettLewisVispero in case it helps you in debugging, here's two variations of the example I provided where this bug does not manifest.

Example 1

  1. Go to https://kloots.github.io/jaws-application-mode-bug-7.html
  2. Use tab to navigate to the button labeled "Forward message"
  3. Observe JAWS instructs you: "...to activate press enter"
  4. Press enter
  5. Observe the alert opens on the first enter key press

The difference with this example is the "Forward message" button is not inside a list.

Example 2

  1. Go to https://kloots.github.io/jaws-application-mode-bug-8.html
  2. Use tab to navigate to the button labeled "Forward message"
  3. Observe JAWS instructs you: "...to activate press enter"
  4. Press enter
  5. Observe JAWS switches to forms mode
  6. Press enter again
  7. Observe focus is moved within a dialog built with the HTML <dialog> element
  8. Use tab to navigate to the close button within the dialog
  9. Observe JAWS instructs you: "...to activate press enter"
  10. Press enter
  11. Observe the dialog is closed

The difference with this example is the dialog is built using the <dialog> element vs a <div> with role="dialog" button is not inside a list.

kloots commented 2 months ago

And here's a screen recording demonstrating how these subtle variations get JAWS working as expected:

https://github.com/FreedomScientific/standards-support/assets/40818/bccaea0a-1bf6-498b-87bf-46c3f19620f6

JAWS-test commented 2 months ago

The problem seems to be that despite role=application, JAWS switches to VPC mode when the focus is on button, which should not happen

BrettLewisVispero commented 1 month ago

This will be fixed in the July JAWS release.

BrettLewisVispero commented 1 month ago

Fixed in July JAWS release.

kloots commented 1 month ago

Thank you @BrettLewisVispero!