Improvements for visually impaired users.

Started by arfy, August 20, 2010, 17:34:52

Previous topic - Next topic

arfy

Hi, I've been looking through the forums, and playing with modplug over the last couple days, and I have to say, well done! This is certainly a very nice tracker, and will be made even better for visually impaired users, if the following suggestions could be implemented. I'd gladly work on this myself, but, I'm not much of a c++ coder... yet, :), and, I don't have visual studio 2008 that seems to be needed to compile, *points to mfc*. Anyway, here's my thoughts on what would make this fully accessible, and yes, this will probably get long, sorry about that.

First, my definition of fully accessible. If a user of NVDA, a free and open-source! Screen reader can fully use all the important features, (loading samples/instruments, editing patterns/orders, and getting to all parts of the program), then we're talking. It doesn't necessarily mean that *everything* needs to speak, and, in fact, for things like editing samples, imho, speaking just gets in the way. If you want to look at NVDA, go here. http://www.nvda-project.org.
So, the main points to work on are as follows.

1. getting from one part of a window to another. I've found that, for instance, if you go to the samples tab, you'll end up inside the sample your working on. this is fine, accept now, you can't tab, ctrl-tab, or whatever to the other sample properties. Same applys to, say, the instrument editor, or the pattern editor where there's no quick way, afaik, to get from the pattern/order list to the toolbar buttons. I suggest ctrl-tab be used more, like how it's done to toggle between the pattern editor and the order list.

2. making new/open/save/etc context sensative. For example, if your on the general tab, load/save modules. If the sample tab, load/export samples. etc etc. Currently loading instruments/samples requires some acrobatics with screen review cursors to find and click the toolbar buttons.

3. I noticed in the channel manager, well, you couldn't tab to the list of channels. Perhaps a standard multi-select list view with checkboxes here?

4. And now, the biggy. The pattern editor, as someone already pointed out, is bitmapped. My work around hopefully, is simple. Or, at least, it sounds simple in my head... lol. basically, take the fact that pattern data is internally stored as text, and you can paste this out to notepad or whatever to see it. How about taking that text, putting it in a standard edit control, then intersepting keys to handle the curret functions like moving between channels, etc? If not tab, ctrl-left/right should work, as if your moving from word to word in a text editor/word processor. This could be an interface option that you could toggle in the general tab of setup.

5. Finally, hopefully a small, but very useful tweak. have the pattern editor play notes as you cursor over them. If it can take simple effects like arpeggio, etc, then bonus. but not necessary if that complicates things.

Well, hopefully I've covered everything, and if you've made it this far, i congratulate you. Keep tracking alive!

Saga Musix

Quote from: "arfy"2. making new/open/save/etc context sensative. For example, if your on the general tab, load/save modules. If the sample tab, load/export samples. etc etc. Currently loading instruments/samples requires some acrobatics with screen review cursors to find and click the toolbar buttons.
Have you tried the load/save sample shortcuts in the key config dialog? I don't use them so I'm not sure how well they work, but in theory they should override the default shortcuts.

Concerning the pattern editor, well, basing it on a default text control provided by the operating system would most likely be rather slow and cause flickering. The bitmap code is highly optimized. If there was a different way to pass on the information that's hidden in the bitmap, that would probably be doable.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

LPChip

As far as I know, MODPlug already has support for the native windows speaking system to read out dialogs and windows.

I know Rewbs spoke about this in the past. I don't know all the details, but windows should be able to tell you what you're seeing (from the accessibility controls, read screen function)
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Saga Musix

Quote from: "LPChip"As far as I know, MODPlug already has support for the native windows speaking system to read out dialogs and windows.
MPT dosn't have this support - The operating system has. Did you read what this guy wants?
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

LPChip

Quote from: "Jojo"
Quote from: "LPChip"As far as I know, MODPlug already has support for the native windows speaking system to read out dialogs and windows.
MPT dosn't have this support - The operating system has. Did you read what this guy wants?

Yup, he requests to add something to openmpt that should already be partially possible.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Saga Musix

Quote from: "LPChip"Yup, he requests to add something to openmpt that should already be partially possible.
No. He asks to make those parts which are not accessible yet to be made accessible - for example the pattern editor.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Rakib

By visual impaired, I hope you mean and not blind. So a another tip is to change the colors of modplug to get better constrast.
^^

Saga Musix

Oh and...
Quote from: "arfy"3. I noticed in the channel manager, well, you couldn't tab to the list of channels. Perhaps a standard multi-select list view with checkboxes here?
Those are unluckily also bitmapped (as there are coloured status indicators on the buttons). I suppose this could be redone when switching from MFC to Qt, which should also offer more flexible custom controls, which could for example be used for the channel manager. Another problem would be that the channel buttons are draggable.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

arfy

First off,
Quote from: "Rakib"By visual impaired, I hope you mean and not blind. So a another tip is to change the colors of modplug to get better constrast.
Absolutely. I ment both blind and partially sited :).

@jojo @lpChip: Sure, whatever's made accessible through standard windows controls works perfectly, save a few very minor things. For instance, when you tab between channels on the general tab, you'll only here, edit, 64, edit 64. But that's more of a screen reader limitation of NVDA than anything else. Jaws for windows works fine here, seeing the labels above the channel's fields. As for the pattern editor, do you have much experience with programming speech to go to SAPI? Better yet, as I write, I've just remembered a tool that should make this much, easier. Pass in a string, and it automatically detects if a supported software speech package is running, else it falls back to SAPI. I'll take a look. Point is, you could send the highlighted column in the pattern editor to this, proceded by the row and channel number. Something like this. r1, c2. c#-4. This means row one of the pattern, channel two. Just an idea. Oh, while I remember, is there a way from the keyboard to copy/paste instruments/samples from one module to another?

Thanks all for the quick responses.

PS. The sample editor shortcuts did work, but had to assign new and save
sample to a new keystroke. Could similar shortcuts for load/save be done for the instrument editor then too? And mass-export samples?

pps. One more area that's a little hard to get to with just keyboard. the treeview.

Saga Musix

Quote from: "arfy"PS. The sample editor shortcuts did work, but had to assign new and save
sample to a new keystroke. Could similar shortcuts for load/save be done for the instrument editor then too?
I didn't have a look at the code, but IIRC the same shortcuts apply there.
And for mass export, well it's theoretically possible, but apparently the shortcuts don't work anymore if Shift is pressed at the same time (which triggers mass export).[/quote]

QuoteOh, while I remember, is there a way from the keyboard to copy/paste instruments/samples from one module to another?
Not sure if that's what you're looking for, but the default copy/paste shortcuts also work for samples (they copy both the sample itself and the data connected to it) as well for the individual envelopes of each instrument.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

arfy

Perfect. Yes, instrument and sample editor shortcuts are the same, just make sure your on the right page. i also assume that using copy and paste to copy ample/instruments would be the same as drag n dropping samples from the treeview and onto the active sample screen?
Happy hacking :)

arfy

Quote from: "Jojo"Oh and...
Quote from: "arfy"3. I noticed in the channel manager, well, you couldn't tab to the list of channels. Perhaps a standard multi-select list view with checkboxes here?
Those are unluckily also bitmapped (as there are coloured status indicators on the buttons). I suppose this could be redone when switching from MFC to Qt, which should also offer more flexible custom controls, which could for example be used for the channel manager. Another problem would be that the channel buttons are draggable.

If you do switch to qt, let's hope it's a little way of. Currently, blind users especially have a hard time accessing QT apps. But, this seems to be more the fault of access technology in general. From what I've seen, the QT accessibility API is pretty extensive. Speaking of access API's, another way to expose the hiddden info, such as patterns, samples etc, would be through MSAA (Microsoft active accessibility). search for that at MSDn. Unfortunately, not very experience in this area. :(. anyway, hope all this helps.

Saga Musix

Quote from: "arfy"If you do switch to qt, let's hope it's a little way of. Currently, blind users especially have a hard time accessing QT apps
Why's that? I know that previous versions of Qt used custom-drawn controls, but as far as I know it uses native controls these days, so in theory they should be accessible.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

arfy

Hi, yes, I'll admit it's been a while since I looked at qt last. so, giving the open-source edition a look now. I'll report back here on my findings, :)