GUI positioning


Damien Garwood
 

Hi there,
Interesting question.
Wasn’t sure where to post this (It covers software development, though not of NVDA itself so the NVDA development list didn’t seem appropriate. It could possibly cover addons, but again I don’t know, so with this being a general NVDA list I thought I’d post it here and see what became of it).
There are several things I want to learn in my trip down programmer’s lane, one of which is creating GUIs.
Now I am aware that NVDA is made using Python. Of course, due to the nature of Python (indeed, in my opinion, snake-like), building GUI’s with that will probably be a lot different to building GUI’s in other languages.
In my language of choice, I am stuck with either inaccessible GUI builders or manual coding with numeric representations of controls.
Regardless of what API you use (Windows, WX etc), you’ve got to have some idea of what the numeric representations mean. In Windows I believe it refers to pixels, of which I haven’t a clue about.
In any case. Once the numeric system is sorted there’s then the issue of knowing how the window might look. My program will be no good whatsoever if all the gui is read by NVDA, then I find out from a sighted person that it looks like nothing more than a broken down pile of rubble.
I am aware that NVDA comes with an object log, enabling you to see the state, position and other attributes of a highlighted control. Again though, these are only numeric, probably the same values you’ve coded in yourself.
Of course, there are many things to consider as well. You have to know what the minimum and maximum values are. You have to know whether your GUI will fit on a screen. Whether the controls overlap. Whether the controls and text are big enough to see.
Is there a more detailed system that allows you to look at the GUI the way a sighted person might see it? I was originally thinking an accessible GUI builder might be nice, representing controls, their positions and sizes, and gaps in between them represented audibly. But again, the builder would have to be programmed to code the result in several different languages – not exactly the best system. If NVDA itself could somehow give you that information with a GUI that you have already made though, that would be amazing.
Is there such a system available, either internally or as an addon, and if not, would it even be feasible?
Thanks.
Damien.

Join nvda@nvda.groups.io to automatically receive all group messages.