2019-05-02 20:40:09

Hey, how can I make my game playable with Jaws? Now the arrow keys are not working with that screenreader

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-05-02 20:59:28

Jaws is naturally vary bad with games, but maybe try a keyhook if there is such a function?

----------
“Yes, sir. I am attempting to fill a silent moment with non-relevant conversation.”
“You don’t tell me how to behave; you’re not my mother!”
“Could you please continue the petty bickering? I find it most intriguing.” – Data (Star Trek: The Next Generation)

2019-05-02 21:58:32

Well you basucly answered your own question.
Use some other keys then the arrow keys, w, a, s and d are common standards to use.

If you like what I do, Feel free to check me out on GitHub, or follow me on Twitter

2019-05-02 22:19:18

Heh, what about the menues? Lol

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-05-02 22:22:12

Monopoly planet used w and s, though I won't tell you that I enjoyed it.
I kept hitting the arrows and wondering why nothing happened!

2019-05-02 22:25:42

Lol I forgot to say very important thing. I am using C# NET

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-05-04 06:43:00

@nuno69 When I wrote BGT about 9 years ago, more or less everyone I knew was using Jaws so I ran into the exact same issue. It took me a while to figure out what to do.

The function you need is from the win32 API and is called SetWindowsHookEx. The type of hook to install is called WH_KEYBOARD_LL (AKA the low level keyboard hook). This allows you to pass a callback that gets invoked whenever a key is pressed, and you simply allow it through. I believe Jaws installs a similar hook, but since the current application seems to take priority, Jaws is no longer able to block the keys from going through.

A few years later a Windows update caused some issues with the keyhook for a few people, but I'm not exactly sure what the state of that is right now. I have never personally experienced any issues with it. I suggest you try it and hopefully it just works.

I'm not exactly sure how this translates to C#, but there should be plenty of information on how to pass a function pointer to a native function.

Good luck!

Kind regards,

Philip Bennefall

2019-05-04 10:24:11

Thank you @Philip
Lol as much as I like Jaws that thing is fucked, why I have to call to Win32 API when the JAWS's API should allow me doing such a trivial thing?

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-05-04 11:34:07

In older games, say around 2004 when Jaws was pretty much the only widely used screen reader, there used to be a note in the game documentation to simply turn off the screen reader all the time. Outputting text directly through the screen reader API was pretty much unheard of, so there was no real reason to keep it running.

Different times.

Kind regards,

Philip Bennefall

2019-05-04 11:42:52

Yeah, but we've moved on, so adding one more call to the JFW API shouldn't be aproblem from Freedom, nevermind, maybe I am stupid.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-05-04 11:55:30

Oh I definitely agree that it would make sense for them to do it. I was just thinking back how it used to be when I first started coding. I started back in 2001, using JavaScript. It was a very different  beast back then compared to now.

Kind regards,

Philip Bennefall

2019-05-04 13:08:28

Your idea worked, however Jaws doesn't stop on new speech events. CTRL does not stop speech and stuff. Oh lol, my game will be in a style of these 2004 ones.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-05-04 21:45:23

Yeah, the keyhook is not perfect. That's why I made it an optional feature in BGT, so that individual developers could choose to install it or not.

Kind regards,

Philip Bennefall

2019-05-04 23:00:14 (edited by Lucas1 2019-05-04 23:00:37)

Hi,
Maybe it's possible to detect the control key within your game, like BGT games sometimes do? If the JAWS api provides a stop speech function or something of the like, you can call that when control is pressed. Otherwise, you can send a blank string to the speak function or a space or something to hopefully stop it from speaking.

2019-05-05 18:44:42

The thing is, imagine I have a main menu. The menu of my game is as follows
New game
Load game
Check for new versions
DLC management
Settings
Exit
When I arrow down quickly Jaws reads everything one by another, and it doesn't stop on key events.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-05-05 20:42:51

BGT is not good for anything, it has the same problem I have.
Sorry Philip, I don't have nothing against you, only against BGT.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-05-05 22:39:24

a sentence which comes out from a rather highly frustrated person.

Paul