Re: GUI positioning

Jacob Kruger

Damien, while I primarily work in web dev, where I can either use inline layout, or, at times, use CSS to hard-code, or let elements hover, in the past I did also work with VS.Net versions, where you could sort of handle layout using arrow keys, etc., but, if working with GUI's at moment, I primary work with layout by code, using wx under python - named after Monty Python, FWIW - but, yes, I was sighted before, so I still visualise layout a lot.

However, for a simplistic rendition of pixel coordinates, I tell people to consider something like a chess board, for X and Y layout visualisation, and, under wxPython, you can also query layout coordinates, widths, etc., or, while it's been a little while, I used layout grids to make sure elements lined up next to each other, and didn't hover over each other, but anyway.

Also, if you install the golden cursor add-on for NVDA, you can query mouse coordinate positions easily enough, but, it really comes down to finding something that you yourself are comfortable with, and, yes, with python I just work with text editors, etc., and, no form of IDE as such, but anyway.

Stay well

Jacob Kruger
Blind Biker
Skype: BlindZA
"Resistance is futile, but, acceptance is versatile..."
On 2016-12-24 12:01, Damien Sykes-Lindley wrote:

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?

Join to automatically receive all group messages.