JAWS In VPC Mode Modify The Browser Event Firing

by ADMIN 49 views

Summary

The Button gets activated on SPACE key down when JAWS in VPC mode is started, which is not the expected behavior. This article will delve into the issue, provide a reproducible example, and discuss the expected result.

The Issue

When JAWS in VPC mode is started, the Button gets activated on SPACE key down, which is not the expected behavior. The expected result is for the Button to be activated on SPACE key up. This issue is reproducible even with native HTML via the provided sample on JSFiddle.

Reproducible Example

The issue can be reproduced using the following sample code on JSFiddle:

https://jsfiddle.net/unazko/0ngyh7fL/3/

This sample code demonstrates the issue with JAWS in VPC mode. When you hold down the SPACE key, you will notice that the Button gets activated on SPACE key down, which is not the expected behavior.

Workflow

When JAWS in VPC mode is started, we would receive the following while holding the SPACE keyboard key:

  • Consecutive “click” event is being fired. If we release the SPACE key then one last “click” event is fired
  • When no screen reader is started and we hold down the SPACE keyboard key there is the following result in the console:
    • Consecutive “keydown” event is being fired. If we release the SPACE key then a “keyup” followed by a “click” event is fired.

Expected Result

The Button to be activated on SPACE key up.

Conclusions from the Testing

  • The “keydown” event is not fired at all when JAWS with VPC is started.

Understanding the Issue

The issue arises when JAWS in VPC mode is started. The Button gets activated on SPACE key down, which is not the expected behavior. This is because the “keydown” event is not fired at all when JAWS with VPC is started.

Why is this Happening?

The reason for this issue is not entirely clear. However, it is believed that the issue is related to the way JAWS in VPC mode interacts with the browser. When JAWS is started, it takes control of the keyboard and mouse events, which can cause the Button to be activated on SPACE key down instead of SPACE key up.

Workarounds

There are a few workarounds that can be used to mitigate this issue:

  • Use a different screen reader that does not have this issue.
  • Use a different keyboard key to activate the Button.
  • Modify the Button's behavior to only activate on SPACE key up.

Conclusion

In conclusion, the Button gets activated on SPACE key down when JAWS in VPC mode is started, which is not the expected behavior. This issue is reproducible even with native HTML via the provided sample on JSFiddle. The expected result is for the Button to be activated on SPACE key up. The “keydown” event is not fired at all when JAWS with VPC is started. There are a few workarounds that can be used to mitigate this issue.

Recommendations

Based on the testing, is recommended that developers use a different screen reader that does not have this issue. Alternatively, developers can modify the Button's behavior to only activate on SPACE key up.

Future Work

Future work should focus on understanding the root cause of this issue and finding a solution that does not require workarounds. This will ensure that the Button is activated on SPACE key up as expected.

References

Appendix

The following is a list of additional resources that may be helpful in understanding this issue:

Q: What is JAWS in VPC mode?

A: JAWS (Job Access With Speech) is a screen reader developed by Freedom Scientific. VPC (Virtual PC) mode is a feature of JAWS that allows it to interact with virtual machines.

Q: What is the issue with JAWS in VPC mode?

A: The issue is that the Button gets activated on SPACE key down when JAWS in VPC mode is started, which is not the expected behavior. The expected result is for the Button to be activated on SPACE key up.

Q: Why is this issue happening?

A: The reason for this issue is not entirely clear. However, it is believed that the issue is related to the way JAWS in VPC mode interacts with the browser. When JAWS is started, it takes control of the keyboard and mouse events, which can cause the Button to be activated on SPACE key down instead of SPACE key up.

Q: Is this issue reproducible?

A: Yes, this issue is reproducible even with native HTML via the provided sample on JSFiddle.

Q: What are the expected results?

A: The expected result is for the Button to be activated on SPACE key up.

Q: What are the workarounds for this issue?

A: There are a few workarounds that can be used to mitigate this issue:

  • Use a different screen reader that does not have this issue.
  • Use a different keyboard key to activate the Button.
  • Modify the Button's behavior to only activate on SPACE key up.

Q: Can this issue be fixed?

A: Yes, this issue can be fixed by modifying the way JAWS in VPC mode interacts with the browser. However, this requires a deep understanding of the JAWS and browser APIs.

Q: What are the implications of this issue?

A: The implications of this issue are that developers may need to use workarounds to mitigate the issue, which can add complexity to their code. Additionally, this issue may affect the accessibility of their application.

Q: How can I report this issue?

A: You can report this issue to the JAWS development team or the browser development team. They will be able to provide more information on how to fix the issue.

Q: What are the next steps?

A: The next steps are to continue investigating the issue and finding a solution that does not require workarounds. This will ensure that the Button is activated on SPACE key up as expected.

Q: What are the resources available for this issue?

A: The following resources are available for this issue:

Q: Can I get help with this issue?

A: Yes, you can get help with this issue by out to the JAWS development team or the browser development team. They will be able to provide more information on how to fix the issue.

Q: What are the best practices for avoiding this issue?

A: The best practices for avoiding this issue are to:

  • Use a different screen reader that does not have this issue.
  • Use a different keyboard key to activate the Button.
  • Modify the Button's behavior to only activate on SPACE key up.

Q: What are the future plans for this issue?

A: The future plans for this issue are to continue investigating the issue and finding a solution that does not require workarounds. This will ensure that the Button is activated on SPACE key up as expected.