Early access of Godot-accessibility addon now available

nolannolan Posts: 19Member

Hey folks,

With the release of Godot 3.2, I wanted to promote a project I've been hacking on for a while now. Godot-accessibility and Godot-tts are addons I've created to help improve accessibility in Godot-based games. I have a simple accessible starter showing how these addons can integrate to create an accessible game. Currently only supports screen readers since I myself am blind and can't really test anything else, but I'm happy to accept contributions that improve accessibility for other groups as well. Currently supported platforms include Linux, Windows, HTML 5, and Android. Support for MacOS/iOS should be possible, but I don't have Apple hardware. Also, other accessibility changes are probably beyond what an addon can achieve on its own, but a screen reader helps with CVAA compliance, which is definitely something Godot game developers shouldn't have to re-invent.

Why would you care about game accessibility? Because disabled players are a very under-served demographic, but that's slowly changing. These addons help create experiences like this, this, this, this, and probably others I've missed.

These addons still have a way to go, but I'm a totally blind developer using them to create an entirely audio-based Asteroids-like shooter which I hope to release soon. My hope is that, by making them more generally available, I can encourage other developers to suggest improvements that make them usable in games beyond my own. I'm particularly interested in integrating them into production game UIs so I can determine what needs to be done.

I'm also interested in starting a game accessibility consultancy, but that's pretty much a new field with no real path to entry. If anyone has an audio-heavy or UI-centric Godot game, and are interested in adding accessibility features, I'd love to chat about it so I can get this addon into production use. Games usually need more than a screen reader to be fully accessible, but the screen reader is usually a large part of that work.

Help welcome, and both projects are fairly early in their development, so please don't expect a whole lot from them just yet. :) Thanks for reading!

Comments

  • cyberealitycybereality Posts: 561Member

    This is great work. I've had this idea for an audio game for a while. The concept is sort of like the early radio mystery detective dramas. But it would be totally audio, no graphics. Maybe one day I'll make it, I have a few other ideas I'm exploring now.

  • nolannolan Posts: 19Member

    I could really use some help with this addon from anyone with decent Godot skills. Being blind myself, I'm a bit limited in my ability to fix some of the issues I'm encountering.

    In particular, I've had a persistent issue with TreeItem selection and can't tell if it is a Godot bug. Selecting items in a tree via the keyboard, and attempting to act on them, either acts on the wrong item or doesn't do anything at all. To duplicate:

    1. git clone --recursive https://gitlab.com/lightsoutgames/godot-accessible-starter.
    2. Load the project in the editor.
    3. Tab or arrow to the node tree.
    4. Arrow around the tree and attempt to use keyboard commands--Delete to remove a node, for instance.

    The problem is more noticeable in larger trees, but sometimes the commands do nothing. Sometimes they act on the wrong node. Very rarely do they actually do what they're supposed to. I don't know whether Godot's tree handling is broken, if my selection logic in the addon is wrong, or what. Right now I'd say this is my biggest issue in trying to use Godot accessibly, as I'm having to hand-edit .tscn files more than I'd like. I can't see how tree selection interacts with my arrow presses, if there-s an off-by-one in what is selected vs. what is presented, etc.

    Anyhow, not sure how else to get help with this, but any assistance would be very much appreciated. Thanks!

  • cyberealitycybereality Posts: 561Member

    Okay, let me see if I have some time later today to check it out.

  • cyberealitycybereality Posts: 561Member

    When I open the project it says: "invalid path. file does not exist." Is there anything I have to do besides git clone to get it to work? What version of Godot are you using?

  • nolannolan Posts: 19Member

    Sweet, thanks. Sorry, just today noticed your first reply, didn't have notification preferences set up correctly. Anyhow, would love to learn more about your audio game idea, and to help out if that's how you roll. :) I've played a few games of that type and they've been a blast--I just don't have the story chops to create one myself.

  • nolannolan Posts: 19Member

    Oh, sorry, you may also have to grab the latest release of my godot-tts addon and unarchive it in the addons/ directory. Sorry, instructions are in the README but I forgot to include them here.

  • cyberealitycybereality Posts: 561Member

    I was able to add and delete nodes, rename new nodes, etc. and that seems to work okay.

    My main probably was getting into the scene list itself. I pressed tab a bunch of times, but was not able to get focus into the scene list. The only way I found to get there was the press control-a to create a new node, then I would have focus.

    Not sure if that was your issue but it made it really difficult to control Godot with the keyboard. I don't think it's a bug with your code, I tried my own project and it was similarly difficult to navigate with the keyboard.

    Please let me know how else I can help. If you give me specific instructions I can definitely spend more time on it, I'm just not sure what I'm supposed to be doing. Thanks.

  • nolannolan Posts: 19Member

    That's odd that you can't tab to the node tree. I, quite literally, wouldn't be able to use Godot if it wasn't focusable. :) For me, the sequence is something like:

    1. After launching the editor, tab until I hear "Filter nodes: editable text:" If TTS doesn't work for you, that should print to the console.
    2. Tab once more. Generally I hear "Tree" meaning I'm focused on a tree with nothing selected.

    At that point, I can arrow through the nodes, but whenever I take action on one, it's generally the wrong node. I'm wondering if we're thinking about different widgets?

    Happy to continue this here, but could I pester you via email instead? :) I'm having a hard time working on this without the help of folks experienced with Godot. I'm sure I could find folks interested in helping, but I'd have to teach them Godot first, and I know more folks interested in hacking on accessibility projects, than I do folks who build games with Godot. :) My email is nolan@thewordnerd.info.

    Thanks!

  • cyberealitycybereality Posts: 561Member

    Okay, I was able to get into the node tree but I had to press tab like 20 times. After I was in there, I was able to add, delete and rename nodes without any issues. I'm using Godot 3.2, what version are you using?

    TTS is working for me, but it's the most basic voice. Not sure if that is cause I'm on Linux.

    Also, is it possible to create custom hotkeys? It would be pretty useful to get to the tree with one or two button presses. Having to tab that many times takes so long.

  • cyberealitycybereality Posts: 561Member

    I see, you are correct. It does delete the wrong items. I think it might have something to do with the class type. If I was testing with all Node2D nodes it seems to work.

    But then I created a CanvasLayer node and that didn't work. If I deleted the nodes and just had CanvasLayer (aside from the TTS nodes) and I tried to delete it, nothing would happen. No confirm box and the item was not deleted.

    If I created some Node2D nodes and tried to delete them, that was fine. But then trying to delete the CanvasLayer again, it would delete one of the Node2D nodes instead.

    I'm not sure if that helps you or not but I can at least reproduce your issue.

  • nolannolan Posts: 19Member

    Interesting. Does the visual tree selection line up with what I'm presenting accessibly? It's been suggested to me that there may be a Godot bug with tree selection. Wondering if keyboard-driven tree navigation is broken.

    Thanks for helping me look into this!

  • cyberealitycybereality Posts: 561Member

    Okay, so it is definitely a bug in Godot. I can reproduce in a new project, so it does not have to do with your code. I've went ahead and uploaded that project to Github with a new bug submission. Feel free to comment on there and hopefully one of the developers can fix it.
    https://github.com/godotengine/godot/issues/36291

  • cyberealitycybereality Posts: 561Member

    To answer your question, it does not visually work either. Normally, when you click or select a node, the background turns a different color to denote it is selected. With the bug, if you select over a node of a different base class (I think that is the problem) it only changes the border around the node in the other color, but the previous node is still shown as selected. Some things change (for example, in the Inspector, the correctly selected node's properties are shown) but in terms of deleting objects, it is still on the wrong node.

  • nolannolan Posts: 19Member

    Wow, thanks! You have no idea how long I've been banging my head against this, and since I can't use Godot without my own addon, I couldn't rule it out as a cause.

    I'll chime in on the issue.

Sign In or Register to comment.