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

Raduvay se, raduvay
Raduvay se domaki ne
Kolko liste po gorach
Tolko zdrave na taz kyshcha

2019-05-02 20:59:28

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

yo! so I'm working on programing, it's really hard. But I'll tell you where you can contact me if your stupid enough to do so.
Contact information:email: [email protected]
Skype: Brennan Draves
I'm usually found on online games, chatting, and being warned bye admins for talking to much, f**k you admin!

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.

I'm me. Just me. No one else. Only meeee!

Thumbs up

2019-05-02 22:19:18

Heh, what about the menues? Lol

Raduvay se, raduvay
Raduvay se domaki ne
Kolko liste po gorach
Tolko zdrave na taz kyshcha

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!

My tactical battle scripts: https://www.dropbox.com/s/dzsmqv2pgqvu1 … h.zip?dl=1
Currently, one of my favorite games is Trimps.
So I'm the Trimper Trooper!

Thumbs up

2019-05-02 22:25:42

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

Raduvay se, raduvay
Raduvay se domaki ne
Kolko liste po gorach
Tolko zdrave na taz kyshcha

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?

Raduvay se, raduvay
Raduvay se domaki ne
Kolko liste po gorach
Tolko zdrave na taz kyshcha

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.

Raduvay se, raduvay
Raduvay se domaki ne
Kolko liste po gorach
Tolko zdrave na taz kyshcha

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.

Raduvay se, raduvay
Raduvay se domaki ne
Kolko liste po gorach
Tolko zdrave na taz kyshcha

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 Lucas1853 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.

Sincerely,
Lucas.

Thumbs up

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.

Raduvay se, raduvay
Raduvay se domaki ne
Kolko liste po gorach
Tolko zdrave na taz kyshcha

2019-05-05 20:35:13 (edited by Ty 2019-05-05 20:35:42)

I honestly hate to say that BGT is good for anything anymore, but that's the only real language that has been relyable when using jaws. Especially if you use masonason and NS's dinamic menu pro class. i don't know c#, nor do i plan to learn it. There should, hints, should, be a DLL for jaws support, but i'm not sure.

Blind people were the original humans.
If you needed glasses in the cave man days, how could you hunt?

Thumbs up

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.

Raduvay se, raduvay
Raduvay se domaki ne
Kolko liste po gorach
Tolko zdrave na taz kyshcha

2019-05-05 22:39:24

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

if you wish,  you could give a look at my github profile.
If you want to get in touch with me you can follow me on Twitter
have a nice day.
Paul