Re: Making VoiceOver see changes
Re: Making VoiceOver see changes
- Subject: Re: Making VoiceOver see changes
- From: Michael Ash <email@hidden>
- Date: Wed, 8 Nov 2006 20:10:36 -0500
On Nov 8, 2006, at 7:24 PM, Mike Engber wrote:
My guess is that NSSlider (and others?) are using some private API
to do their work. I will at least be filing enhancements soon to
ensure developers are given the proper hooks.
There's also other things that VoiceOver does that I've found no
mechanism to tap into for my custom controls. I'll file
enhancements on that as well.
Nope NSAccessibilityPostNotification is what everyone uses.
What is the role of your custom control? I'm guessing it's not
AXSlider?
I've tried both Unknown and Slider.
If it was AXSlider (and assuming you implemented all the other
slider attributes/actions properly) I'd expect it to work as well
with VoiceOver as a "real" slider.
I tried this, implementing everything the documentation specifies as
listed here:
http://developer.apple.com/documentation/Accessibility/Conceptual/
AccessibilityMacOSX/OSXAXRoleReference/chapter_7_section_24.html
There was no visible change in the behavior of my application.
I even went further and attempted to defocus and refocus my element
every time it moved, and send out notifications to that effect. No joy.
In case I'm doing something dumb, I've posted my accessibility code
for this UI element here:
http://www.mikeash.com/tmp/accessibility.m
These methods are in a category on the class which implements the
element. The setup/teardown methods get invoked at init and dealloc,
respectively. The _accessibilityNoteMovement: method is invoked
whenever my element is moved, as tested with the NSLog. No actions
are ever performed, also as tested with the NSLog.
What else can I try to match the behavior of NSSlider? Is there a way
to examine which notifications it sends out when it's modified?
My guess is that VoiceOver is selective about what roles it
registers for notifications on. Having your custom controls stick
to the standard roles is your best bet.
I do agree that documenting (with caveats that it will change in
the future) how/when VoiceOver uses notifications would take a lot
of the mystery out of this.
That would be a good bug/feature-request.
The bug would appear to be with VO, not with the documentation. If I
send a notification saying that my position or size has changed, VO
ought to update its focus ring to match no matter what my role is or
what other attributes I have.
Mike Ash
Rogue Amoeba Software
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Accessibility-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden