Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Enable Flag

Remember to set -Djavafx.accessible=true when testing.
Currently only Windows 7, 8 and Mac OSX 10.9 are allowed to enable accessibility.  Use -Djglass.accessible.force=true to force accessibility on earlier versions of Mac.

Get started documentation:

...

https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/Protocols/NSAccessibility_Protocol/Reference/Reference.html
https://developer.apple.com/library/mac/documentation/UserExperience/Reference/Accessibility_RoleAttribute_Ref/Introduction.html
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Accessibility/cocoaAXOverview/cocoaAXOverview.html

 

Windows:

http://msdn.microsoft.com/en-us/library/windows/desktop/ee684009(v=vs.85).aspx
Under 'UI Automation Fundamentals' some useful links are
UI Automation Control Types Overview - http://msdn.microsoft.com/en-us/library/windows/desktop/ee671197(v=vs.85).aspx
UI Automation Control Patterns Overview - http://msdn.microsoft.com/en-us/library/windows/desktop/ee671194(v=vs.85).aspx
UI Automation -> Reference -> UI Automation Providers
http://msdn.microsoft.com/en-us/library/windows/desktop/ee671217(v=vs.85).aspx

...

Accessibility Inspector 
When running it tracks the mouse, use Cmd + F7 to lock, it stop tracking the mouse and now it allows you to interact in treeview in the tool.
In browse objects, inspect attributes, fire actions, etc.
Voice Over, Cmd+F5 to start, Cmd+F5 to stop.

WindowWindows:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd373661(v=vs.85).aspx
my go to app is the Inspect.exe
Narator, Win+Enter to start, caplock+esc to stop.

 

How to get start with the code:

Clone the sandbox repo to Mac and Windows

run some test cases, test the stuff that is working
slider, all the buttons, tabpane, table, list, imageview,

...

Add a new role to javafx.scene.Role, say HYPERLINK
In Hyperlink, override accGetAttribute queryAccessibleAttribute to look something like this:

Code Block
   /* Somewhere in the init code */
   {
        setRole(AccessibleRole.HYPERLINK); 
   }
 
   @Override
   protected Object accGetAttributequeryAccessibleAttribute(Attribute attribute, 
                                    Object... parameters) {
       switch (attribute) {
           case ROLEVISITED: return Role.HYPERLINKisVisited();
           default: return super.accGetAttribute(attribute, parameters);
       }
   }

...