cocoabits / MASShortcut

Modern framework for managing global keyboard shortcuts compatible with Mac App Store. More details:
http://blog.shpakovski.com/2012/07/global-keyboard-shortcuts-in-cocoa.html
BSD 2-Clause "Simplified" License
1.52k stars 220 forks source link

Add Accessibility Support #47

Closed gcox closed 8 years ago

gcox commented 9 years ago

Unfortunately, this control seems to be unusable by voice over users. I'd love to drop ShortcutRecorder (https://github.com/Kentzo/ShortcutRecorder) and switch to MASShortcut but it isn't an option without accessibility support.

shpakovski commented 9 years ago

Thanks a lot for the problem report and sorry for the lack of Accessibility support. I will look into this when I have time.

starkos commented 9 years ago

I've started working on this over on my fork. The control is now identified as a keyboard shortcut, and recording starts when the user begins interacting with it, and stops recording when they stop interacting.

This is just the basics. It still needs to read out the value and provide feedback when a new shortcut is set or editing is canceled. Any help or ideas very appreciated! If you get a chance to test it let me know if you run into any problems.

starkos commented 9 years ago

Ah shoot, never mind, I didn't even realize that @gcox had linked to a version that already had working support. D'oh! I will see what I can learn from that.

aral commented 9 years ago

I love the MASShortcut API but, without accessibility support, I’m going to have to use ShortcutRecorder also. What’s the latest on this? Starkos, have you made any progress? Is there a list of issues outstanding that need to be fixed to enable accessibility support? :)

zoul commented 9 years ago

Could somebody who needs the accessibility features create a list of requirements?

starkos commented 9 years ago

Yes, I've made progress. I've got a small snag I'm trying to workaround, see http://stackoverflow.com/questions/27925611 http://stackoverflow.com/questions/27925611

I will try to commit and push a branch that people can try either later tonight or tomorrow. Some feedback on it would be good.

On Jan 13, 2015, at 3:44 PM, Aral Balkan notifications@github.com wrote:

I love the MASShortcut API but, without accessibility support, I’m going to have to use ShortcutRecorder also. What’s the latest on this? Starkos, have you made any progress? Is there a list of issues outstanding that need to be fixed to enable accessibility support? :)

— Reply to this email directly or view it on GitHub https://github.com/shpakovski/MASShortcut/issues/47#issuecomment-69816264.

aral commented 9 years ago

That's so cool, thank you. Can’t wait to check it out and will take a look at the issue also :)

starkos commented 9 years ago

Okay, here's the work-in-progress branch: https://github.com/starkos/MASShortcut/tree/issue-47-accessibility

You'll need to be on 10.10 for this version, as I've only implemented the new NSAccessibility API so far. Once things are basically working, I'll wrap them with the legacy calls for older systems.

I worked around the issue I mentioned (see above) by removing the shortcut description from the announcement feedback, so now it just says "Shortcut set". Originally I had it saying "(shortcut description) shortcut set", which I thought was more useful. If you want to try it out, look for "Give VO users feedback on the result" and try appending _shortcutValue.description to the message strings.

aral commented 9 years ago

Thank you so much — sorry for the delay in responding; been working on different areas. Will play with this this weekend :) Really appreciate it.

gcox commented 9 years ago

@starkos Should probably override -[NSView acceptsFirstResponder] to return YES so this control can be tabbed to. Perhaps there's more to it than that but my point is that you can't tab to it currently:)

starkos commented 9 years ago

I've enabled first responder on the control—does that help? I'm currently trying to figure out why it doesn't work when placed into an NSTableView.

zoul commented 8 years ago

This has been silent for a long time now. I will close the issue and if there any other accessibility related trouble, we can open another one. Thanks for contributing!