I just committed the accessibility work for Cocoa. Accessibility is an enormous pain in the behind. There, I’ve said it. :-)
Here’s what I know is working:
-- Properties for all SWT widgets reporting as expected, and matching up with Carbon as best as I could determine.
-- Properties for custom widgets (CTabFolder, CLabel and CCombo) reporting what Carbon reports.
-- Voiceover reporting back correct values for just about everything.
Voiceover is not working for StyledText. Any assistance in figuring out what could be wrong here would be greatly appreciated.
One change of note I made was to os.h. We were re-throwing Objective-C exceptions back out of the JNI methods in OS_NATIVE_EXIT, which is guaranteed to crash the Java VM. Instead, I now use NSLog to dump out the description of the exception so you can actually see what’s going on.
One (potentially controversial) change I made to Display was to put try/catch blocks in readAndDispatch() and sleep() so that an exception doesn’t silently exit the program. The semantics of these methods didn’t change, but dumping a backtrace is more useful than exiting.
A lot of widget implementations changed to add accessibility overrides. There are a lot of places where an NSView is used as a grouping mechanism for subviews, and those require some extra work to note them as ignored, but it’s not that invasive.
One bug fix in Text where some methods didn’t check for SWT.MULTI, which gave a ClassCastException when trying to fetch the values. Also fixed an incorrect check when determining which control is focused.
I’m working at home tomorrow, and I have been asked to look into some things for Thermo before our public alpha, so as soon as I get that out of the way I will start living in the nightly builds.