Uli,
As a full screen user interface, is this something where there is a lot of user interaction with controls, or something sort of Front Row-like where users navigate with arrow keys to drill down, select items, etc.? If it is the latter, it should not be overly difficult to implement accessibility. If it is the former, with many custom controls, it will be more difficult.
Usually there are two ways a custom interface view goes:
1. You have an internal object model for the various objects that draw themselves. In this case, you can use the Dicey sample source code on ADC to show how you would make objects that know their own info (value, position, size), and have the outer view report them as children.
1A. A subcase of this is if you are using CoreAnimation. There is sample code from this year's accessibility session at WWDC that implements basic accessibility for things like CATextLayers, and demonstrates how to hook this up to the containing view. I don't think the code has made it to general availability yet - but I could check if that's your case.
2. You have one big view which does all of the drawing In this case, you do need to create a custom 'FauxUIElement' object with the appropriate information. The food pyramid example is the "ImageMap" example, which has an already implemented FauxUIElement superclass you can grab. (Please use the superclass - the -hash and -isEqual function is important to get correct, and that sample class does the right thing already).
Once you have the structure reporting correctly, if the user can navigate around using the keyboard, you will want to use the function NSAccessibilityPostNotification() to send the NSAccessibilityFocusedUIElementChangedNotification when the focus changes from element to element.
On Nov 29, 2007, at 4:02 AM, Uli Kusterer wrote: Hi,
I have a fullscreen user interface in an application and I'm considering making it accessible. The issue here is that it would be a lot of work to create dozens of AXxxx objects for the stuff onscreen there. Is there a way to get "cheap" accessibility support? My initial idea was to just check if VoiceOver is on and ask Speech Synthesis directly to speak a description of the onscreen elements, but obviously this won't work for users relying on braille lines or anything like that.
What do you guys recommend here? Is there a minimal sample out there somewhere showing how to make a fully custom UI (OpenGL, effectively) accessible with a minimum of effort? (Yeah, I'm lazy...)
Cheers, -- M. Uli Kusterer "The Witnesses of TeachText are everywhere..." http://www.zathras.de
-------------------------------------------------- James Dempsey AppKit Engineering Apple
|