1. 41
  1. 13

    Godot UI components are great. I hope Godot gets a11y features like support for screen readers.

    1. 12

      The actual title of this article is “Is Making Advanced GUI Applications with Godot the Future?” The question of for whom Godot is “the future” and under what criteria is only illuminated after reading the whole thing.

      The author explains they are interested in building applications for “professional,” “highly technical” people. The essential criterium is that a GUI toolkit should adept at building IDEs and data visualization tools for the oil and gas industry. “Hipsters,” “disabled people” (as if they were a binary class of people), and non-English speakers are not part of this future. Also, anything that uses templates where there isn’t a one-to-one relationship between the source and what shows up in debugging is a disqualifier, so no HTML template languages of any kind. Also, some languages and frameworks are too hard or too strict, although some strictness is nice.

      So, with that rubric established, I’ve frankly lost interest.

      1. 14

        The author may not care about any but their small slice of customers, but I still found the post technical details compelling enough. If it helps developers consider alternatives to the electron app, I’m all for it. There’s nothing to stop the community from improving accessibility if it needs it.

        Perhaps the other projects and posts linked at the bottom will spur your interest?

        1. 2

          The screenshot for the example “advanced GUI” is very convincing to me. What would accessibility for such a thing look like? What would a screen reader, err, read from this? It seems to me that there’s a class of programs where the graphical part of “GUI” is just required to use it (another example would be a chart-heavy application like a trader terminal).

          As for internationalization, well, professionals might be required to use english. When you program, your language and libraries and documentation are all in english, and no one is clamoring for python or java to be able to translate identifiers and keywords on the fly at if you change your settings.

          This is clearly not suitable for the next spotify or excel GUI, but for specialized, professional programs? Seems pretty nice.

        2. 7

          Do not do this. Godot Engine and the applications it creates have no accessibility bus support and the developers don’t see it as a priority. It is immoral to build applications that inherently exclude blind and motion-impaired users, and illegal to sell such software in some jurisdictions. Use native frameworks or a framework with accessibility tooling built in like GTK or Qt.

          https://github.com/godotengine/godot/issues/14011

          1. 8

            It is immoral to build applications that inherently exclude blind and motion-impaired users

            I agree that accessibility is important, but what about applications that are inherently content-driven, e.g. a photo editor, video editor, animation software, etc.? Godot seems to have a great foundation for building UI applications, and may be a valid tool for the job in many of these cases. I wouldn’t say that making an inaccessible photo editing or animation app is “immoral”; no amount of screen reader support can describe image effects, etc. in a way that would make the app legitimately usable for someone with impaired vision.

            1. 5

              This is an obvious exception, yes. Your application is not excluding blind people, since even an accessible application would not make that activity accessible. That said, you still need to make it accessible to people with other disabilities!

            2. 3

              It is immoral to build applications that inherently exclude blind and motion-impaired users

              In reality that’s true for a huge portion of applications build, also ones built with ones that technically use the web, QT, etc.

              https://github.com/godotengine/godot/issues/14011

              There’s a follow up for this issue:

              https://github.com/godotengine/godot-proposals/issues/983

              While I in general agree that accessibility is lacking, it’s also a reality that affects huge amounts of software. Given that we are talking about a game engine that is not backed by a big corporation (like Qt) and given that Godot is certainly not a major player for UI and there is that open issue and I am sure contribution would be welcome I’d at least see better targets for the statement “It is immoral to build applications that inherently exclude blind and motion-impaired users”.

              I don’t agree with the author’s take on accessibility either, but I don’t really see why the blame should be put on the a game engine that is completely open source and so far uses the UI framework mainly for its editor.

              With that said the whole thing also reads more as a “hey, you can do UI with this thing you might not have heard of and it does a lot of stuff right”. At least I don’t think the expectation is that everyone switches away from Qt, SwiftUI and the web which btw. is a target platform.

              1. 5

                I don’t agree with the author’s take on accessibility either, but I don’t really see why the blame should be put on the a game engine that is completely open source and so far uses the UI framework mainly for its editor.

                I agree! I don’t blame Godot at all. I think building desktop apps with a game engine at all is generally a bad idea.

                In reality that’s true for a huge portion of applications build, also ones built with ones that technically use the web, QT, etc.

                That don’t make it right.

            3. 7

              The title is “making advanced GUI applications with Godot”, but frankly they don’t get into the advanced part at all. I wouldn’t be snarky except that the author gets more and more arrogant as the article goes on.

              Their examples of fancy Godot features are trivial. Hot reloading, reusable widgets, and being able to inspect an element tree are table stakes. It’s like arguing that your new niche language should be used because it has a garbage collector and a type checker.

              Speaking of table stakes, they go on to say that they don’t care about accessibility at all. So (1) Godot doesn’t offer more than macOS/the web, (2) the web is too hard for the author to learn, and (3) Godot actually offers strictly less features than competitors.

              This feels a lot like when someone’s been working in a particular corner of the industry, encounters something from the broader industry (in this case, maybe SwiftUI or the web?), and instead of learning from it, decides that the only reason it’s hard to learn must be because it’s bad and has zero upside. Easier to reject something as bad than to keep trying to learn it.

              Then you can take it one step further and decide to head into another corner, like this articles does with Godot. But that’s how you get arguments that feel like they’re written by someone who’s just woken up from a forty year nap.

              1. 4

                What is Godot’s support for accessibility and internationalisation like compared to other gui frameworks? I can see Internationalization Keyboard/Controller Navigation and Focus mentioned in the docs… but I’m not really an expert in this area. I’d imagine you’d need support for readers, and integration with OS APIs, and support for full font shaping?

                Edit: seems like they have been working on complex text rendering which is promising, and seems like there is an issue open regarding screen reader support for the UI components.

                1. 4

                  Internationalization has seen a ton of work, and right now is probably the best you can have in a game engine. You need to work a fair bit to make keyboard navigation good, but after that it works well. Complex text rendering is done well, haven’t seen any problems with it. Screen readers and similar accessibility features haven’t seen a lot of work yet, the latest work on that front is adding support for system’s TTS, but that is not yet integrated with other components and is only usable from code.

                2. 1

                  I feel like this is a case of “I have a hammer, now everything is a nail.” Sure Godot can do all kinds of stuff, but when it comes to GUI applications, I think I will stick with tools like Qt.

                  Let Godot become a great game engine first before you make a GUI app for anything in-prod with it. (Again not stopping anyone from playing around of course but I assume people can read that between the lines.)

                  Like others have said here, Godot needs good a11y features, since I believe also games could benefit a lot from those. Many other game engines could step up in this regard as well.

                  1. 1

                    While I know Godot projects in general can be exported I wonder how well the GUI parts behave on mobile applications. Did anybody here use or try to use it for that? Really wonder how well it works there.

                    Stories with similar links:

                    1. Making Advanced GUI Applications with Godot via faebser 2 years ago | 17 points | 3 comments