Cooperative Java Compatibility Effort Table

The Trace Center has been reviewing documentation from the Microsoft and Sun web sites to understand their "current" strategies for making Java accessible. As part of this project, we have created a few tables to directly compare the data and methods sup ported by each company's interface and classes.

We are soliciting further review of the table contents for any and all suggestions, corrections, questions, etc.

We have written an initial set of recommendations that we will be revising and posting here in the near future. The goal is for both Microsoft and Sun to unify the access APIs or at least increase their compatibility for ease of development for developers .

The information from the tables have been gathered from the following web sites:

Microsoft: http://www.microsoft.com/enable/ and http://www.microsoft.com/java/download/dl_sdk2.htm

Sun http://www.sun.com/tech/access/ and http://developer.javasoft.com/developer/earlyAccess/index.html

Sun (mostly from Interface Accessible) Microsoft (mostly from Interface IUIAccessible)
S=Sun, M=Microsoft
1 S.  No entry
1 M.  public static final int DISP_E_MEMBERNOTFOUND; COM error that indicates the specified member was not found.
2 S.  No entry
2 M. static final int E_INVALIDARG; COM error that indicates an invalid argument.
3 S.  No entry
3 M.  public static final int E_NOTIMPL; COM error that indicates no implementation.
4 S.  No entry
4 M.  public static final int S_FALSE; COM error that indicates a false return value.
5 S.  No entry
5 M.  public static final int CHILDID_SELF; The identifier of the object itself.
Title from Interface Layout
6 S.  public static final int POSITION_ABOVE Constant used to locate the object physically above the object passed in.
6 M.  public static final int NAVDIR_UP;
7 S.  public static final int POSITION_BELOW
7 M.  public static final int NAVDIR_DOWN; Specifies that the navigation direction is down.
8 S.  public static final int POSITION_LEFT
8 M.  public static final int NAVDIR_LEFT;
9 S.  public static final int POSITION_RIGHT
9 M.  public static final int NAVDIR_RIGHT;
10 S.  public static final int LOGICAL_NEXT
10 M.  public static final int NAVDIR_NEXT; Navigates to the next object.
11 S.  public static final int LOGICAL_PREVIOUS
11 M.  public static final int NAVDIR_PREVIOUS;
12 S.  public static final int LOGICAL_FIRST Constant used to locate the first logical object in the container.
12 M.  public static final int NAVDIR_FIRST; Navigates to the first object.
13 S.  public static final int LOGICAL_LAST
13 M.  public static final int NAVDIR_LAST;
14 S.  public static final int POSITION_FIRST Constant used to locate the first physical object in the Container
14 M.  No entry
15 S.  public static final int POSITION_LAST
15 M.  No entry
Title from Interface Accessible
16 S.  No entry
16 M.  public static final int SELFLAG_NONE; Indicates no object is selected.
17 S.  public abstract void requestFocus()
17 M.  public static final int SELFLAG_TAKEFOCUS; Indicates focus is transferred to the selected object.
18 S.  No entry
18 M.  public static final int SELFLAG_TAKESELECTION; Indicates the object is the only selected item in the container.
19 S.  No entry
19 M.  public static final int SELFLAG_EXTENDSELECTION; Indicates the object is added to an extended selection.
20 S.  see addAccessibleSelection()
20 M.  public static final int SELFLAG_ADDSELECTION; Indicates the object is added to a multiple selection.
21 S.  see removeAccessibleSelection()
21 M.  public static final int SELFLAG_REMOVESELECTION; Indicates the object is deselected.
22 S.  No entry
22 M.  public static final int SELFLAG_VALID;
Title from AccessibleRole
23 S.  public static final String ALERT
23 M.  public static final int ROLE_SYSTEM_ALERT;
24 S.  No entry
24 M.  public static final int ROLE_SYSTEM_ANIMATION;
25 S.  public static final String APPLICATION
25 M.  public static final int ROLE_SYSTEM_APPLICATION;
26 S.  public static final String BORDER
26 M.  public static final int ROLE_SYSTEM_BORDER;
27 S.  No entry
27 M.  public static final int ROLE_SYSTEM_BUTTONDROPDOWN;
28 S.  No entry
28 M.  public static final int ROLE_SYSTEM_BUTTONDROPDOWNGRID;
29 S.  No entry
29 M.  public static final int ROLE_SYSTEM_BUTTONMENU;
30 S.  No entry
30 M.  public static final int ROLE_SYSTEM_CARET;
31 S.  No entry
31 M.  public static final int ROLE_SYSTEM_CELL;
32 S.  No entry
32 M.  public static final int ROLE_SYSTEM_CHART;
33 S.  public static final String CHECKBOX
33 M.  public static final int ROLE_SYSTEM_CHECKBUTTON;
34 S.  public static final String CHECKBOXMENUITEM.
34 M.  public static final int ROLE_SYSTEM_CHECKBUTTON;
35 S.  public static final String CHOICE.
35 M.  No Entry
36 S.  No entry
36 M.  public static final int ROLE_SYSTEM_CLIENT;
37 S.  No entry
37 M.  public static final int ROLE_SYSTEM_CLOCK;
38 S.  public static final String COLUMN
38 M.  public static final int ROLE_SYSTEM_COLUMN;
39 S.  public static final String COLUMN_HEADER
39 M.  public static final int ROLE_SYSTEM_COLUMNHEADER;
40 S.  public static final String COMBO_BOX
40 M.  public static final int ROLE_SYSTEM_COMBOBOX;
41 S.  public static final String CURSOR
41 M.  public static final int ROLE_SYSTEM_CURSOR;
42 S.  No entry
42 M.  public static final int ROLE_SYSTEM_DIAGRAM;
43 S.  No entry
43 M.  public static final int ROLE_SYSTEM_DIAL;
44 S.  No entry
44 M.  public static final int ROLE_SYSTEM_DIALOG;
45 S.  public static final String DOCUMENT
45 M.  public static final int ROLE_SYSTEM_DOCUMENT;
46 S.  No entry
46 M.  public static final int ROLE_SYSTEM_DROPLIST;
47 S.  No entry
47 M.  public static final int ROLE_SYSTEM_EQUATION;
48 S.  No entry
48 M.  public static final int ROLE_SYSTEM_GRIP;
49 S.  public static final String GROUPING
49 M.  public static final int ROLE_SYSTEM_GROUPING;
50 S.  No entry
50 M.  public static final int ROLE_SYSTEM_HELPBALLOON;
51 S.  No entry
51 M.  public static final int ROLE_SYSTEM_HOTKEYFIELD;
52 S.  public static final String IMAGE
52 M.  public static final int ROLE_SYSTEM_GRAPHIC;???
53 S.  public static final String INDICATOR
53 M.  public static final int ROLE_SYSTEM_INDICATOR;
54 S.  No entry
54 M.  public static final int ROLE_SYSTEM_LINK;
55 S.  public static final String LABEL
55 M.  public static final int ROLE_SYSTEM_STATICTEXT;
56 S.  public static final String LIST
56 M.  public static final int ROLE_SYSTEM_LIST;
57 S.  public static final String LIST_ITEM
57 M.  public static final int ROLE_SYSTEM_LISTITEM;
58 S.  public static final String MENU
58 M.  public static final int ROLE_SYSTEM_MENUBAR; OR  public static final int ROLE_SYSTEM_MENUPOPUP;
59 S.  public static final String MENU_BAR
59 M.  public static final int ROLE_SYSTEM_MENUBAR;
60 S.  public static final String MENU_ITEM
60 M.  public static final int ROLE_SYSTEM_MENUITEM;
61 S.  public static final String POPUP_MENU
61 M.  public static final int ROLE_SYSTEM_MENUPOPUP;
62 S.  No entry
62 M.  public static final int ROLE_SYSTEM_OUTLINE;
63 S.  No entry
63 M.  public static final int ROLE_SYSTEM_OUTLINEITEM;
64 S.  public static final String PAGE_TAB
64 M.  public static final int ROLE_SYSTEM_PAGETAB;
65 S.  public static final String PAGE_TAB_LIST
65 M.  public static final int ROLE_SYSTEM_PAGETABLIST;
66 S.  public static final String PANEL
66 M.  public static final int ROLE_SYSTEM_PANE;
67 S.  public static final String PROGRESS_BAR
67 M.  public static final int ROLE_SYSTEM_PROGRESSBAR;
68 S.  No entry
68 M.  public static final int ROLE_SYSTEM_PROPERTYPAGE;
69 S.  public static final String PUSH_BUTTON
69 M.  public static final int ROLE_SYSTEM_PUSHBUTTON;
70 S.  public static final String RADIO_BUTTON
70 M.  public static final int ROLE_SYSTEM_RADIOBUTTON;
71 S.  public static final String RADIO_BUTTON_MENU_ITEM
71 M.  public static final int ROLE_SYSTEM_RADIOBUTTON;
72 S.  public static final String ROW
72 M.  public static final int ROLE_SYSTEM_ROW;
73 S.  public static final String ROW_HEADER
73 M.  public static final int ROLE_SYSTEM_ROWHEADER;
74 S.  public static final String SCROLL_BAR
74 M.  public static final int ROLE_SYSTEM_SCROLLBAR;
75 S.  public static final String SEPARATOR
75 M.  public static final int ROLE_SYSTEM_SEPARATOR;
76 S.  public static final String SLIDER
76 M.  public static final int ROLE_SYSTEM_SLIDER;
77 S.  No entry
77 M.  public static final int ROLE_SYSTEM_SOUND;
78 S.  No entry
78 M.  public static final int ROLE_SYSTEM_SPINBUTTON;
79 S.  public static final String SPLIT_PANE
79 M.  No Entry
80 S.  No entry
80 M.  public static final int ROLE_SYSTEM_STATUSBAR;
81 S.  public static final String TABLE
81 M.  public static final int ROLE_SYSTEM_TABLE;
82 S.  public static final String TEXT
82 M.  public static final int ROLE_SYSTEM_TEXT;
83 S.  No entry
83 M.  public static final int ROLE_SYSTEM_TITLEBAR;
84 S.  public static final String TOOL_BAR
84 M.  public static final int ROLE_SYSTEM_TOOLBAR;
85 S.  public static final String TOOL_TIP
85 M.  public static final int ROLE_SYSTEM_TOOLTIP;
86 S.  public static final String TREE
86 M.  No Entry
87 S.  public static final String TREE_NODE
87 M.  No Entry
88 S.  public static final String UNKNOWN
88 M.  No entry
89 S.  No entry
89 M.  public static final int ROLE_SYSTEM_WHITESPACE;
90 S.  public static final String WINDOW
90 M.  public static final int ROLE_SYSTEM_WINDOW;
Title from AccessibleState
91 S.  public static final String ARMED
91 M.  No entry
92 S.  No entry
92 M.  public static final int STATE_SYSTEM_ANIMATED;
93 S.  public static final String BUSY
93 M.  public static final int STATE_SYSTEM_BUSY;
94 S.  public static final String CHECKED
94 M.  public static final int STATE_SYSTEM_CHECKED;
95 S.  No entry
95 M.  public static final int STATE_SYSTEM_COLLAPSED;
96 S.  public static final String DEFAULT
96 M.  public static final int STATE_SYSTEM_DEFAULT;
97 S.  public static final String EDITABLE
97 M. "NOT" STATE_SYSTEM_READONLY
98 S.  No entry
98 M.  public static final int STATE_SYSTEM_EXPANDED;
99 S.  No entry
99 M.  public static final int STATE_SYSTEM_EXTSELECTABLE;
100 S.  No entry
100 M.  public static final int STATE_SYSTEM_FLOATING;
101 S.  public static final String FOCUSABLE
101 M.  public static final int STATE_SYSTEM_FOCUSABLE;
102 S.  public static final String FOCUSED
102 M.  public static final int STATE_SYSTEM_FOCUSED;
103 S.  No entry
103 M.  public static final int STATE_SYSTEM_HOTTRACKED;
104 S.  public static final String INVISIBLE
104 M.  public static final int STATE_SYSTEM_INVISIBLE;
105 S.  No entry
105 M.  public static final int STATE_SYSTEM_LINKED;
106 S.  No entry
106 M.  public static final int STATE_SYSTEM_MARQUEED;
107 S.  No entry
107 M.  public static final int STATE_SYSTEM_MIXED;
108 S.  No entry
108 M.  public static final int STATE_SYSTEM_MOVEABLE;
109 S.  public static final String MULTISELECTABLE
109 M.  public static final int STATE_SYSTEM_MULTISELECTABLE;
110 S.  No entry
110 M.  public static final int STATE_SYSTEM_OFFSCREEN;
111 S.  public static final String PRESSED
111 M.  public static final int STATE_SYSTEM_PRESSED;
112 S.  public static final String READONLY
112 M.  public static final int STATE_SYSTEM_READONLY;
113 S.  public static final String SELECTABLE
113 M.  public static final int STATE_SYSTEM_SELECTABLE;
114 S.  public static final String SELECTED
114 M.  public static final int STATE_SYSTEM_SELECTED;
115 S.  No entry
115 M.  public static final int STATE_SYSTEM_SELFVOICING;
116 S.  No entry
116 M.  public static final int STATE_SYSTEM_SIZEABLE;
117 S.  No entry
117 M.  public static final int STATE_SYSTEM_TRAVERSED;
118 S.  public static final String UNAVAILABLE
118 M.  public static final int STATE_SYSTEM_UNAVAILABLE;
Title from Interface Accessible
119 S.  public abstract boolean doAccessibleAction(int i)
119 M.  public void doDefaultAction();
120 S.  public abstract Rectangle getBounds()
120 M.  public Rectangle getBounds(Component comp);
121 S.  public abstract void setBounds(Rectangle r)
121 M. IUIComponent setBounds(Rectangle rect) or (int x, int y, int width, int height)
122 S.  public abstract int getAccessibleActionCount()
122 M.  No entry
123 S.  public abstract String getAccessibleActionDescription(int i) Return a description of the nth action of the object.
123 M.  public String getDefaultAction(); Retrieves the default action for the object.
124 S.  public abstract String getAccessibleDescription() Get the accessible description of this object.
124 M.  public String getDescription();
125 S.  public abstract void setAccessibleDescription(String s)
125 M.  No entry
126 S.  No entry
126 M.  public String getKeyboardShortcut();
127 S.  public abstract AccessibleRole getAccessibleRole()
127 M.  public int getRoleCode();
128 S.  public abstract AccessibleStateSet getAccessibleStateSet()
128 M.  public int getStateCode();
129 S.  public abstract String getAccessibleValue() Get the value of this object as a String.
129 M.  public String getValueText(); Returns a string describing the object's function beyond information provided by getRoleCode, getStateCode and getName
Title from Interface Layout
130 S.  No entry
130 M.  public void setValueText(String value);
131 S.  public abstract Component getFocusTraversable(Component comp, int direction)
131 M.  public Component navigate(Component comp, int direction, boolean keyable);
132 S.  public abstract Component getFocusTraversable(int pos)
132 M.  public Component navigate(Component comp, int direction, boolean keyable);
133 S.  public abstract Component locate(Component comp, int direction)
133 M.  public Component navigate(Component comp, int direction, boolean keyable); Returns component navigated to, or null. comp=from which to navigate, dir= see field vals IUIAccess, keyable=nonkeyable ignored, others not.
134 S.  public abstract Component locate(int pos) Determine the first or last object in the Container.
134 M.  public Component navigate(Component comp, int direction, boolean keyable);
135 S.  public abstract Component locate(Point p, int direction)
135 M.  public Component navigate(Component comp, int direction, boolean keyable);
Title from Interface Accessible
136 S.  public abstract Accessible getNextAccessibleSibling()
136 M.  see navigate and NAVDIR_NEXT
137 S.  public abstract Accessible getPreviousAccessibleSibling()
137 M.  see navigate and NAVDIR_PREVIOUS.
138 S.  public abstract Point getLocationOnScreen() component location on screen
138 M. (from Interface IUIComponent)  public Point getLocation()
139 S.  public abstract Point getLocation() component location with respect to parent
139 M. (from Interface IUIComponent)  public Point getLocation(IUIComponent comp) (if specify null comp give location relative to the desktop)
140 S.  public abstract void setLocation(Point p)
140 M. (from Interface IUIComponent)  public Point setLocation()
141 S.  public abstract boolean contains(Point p)
141 M. (from Interface IUIComponent)  public boolean contains(Point point)
142 S.  public abstract Accessible getAccessibleAt(Point p)
142 M. (from Interface IUIComponent)  public IUIComponent getComponent(int x, int y)
143 S.  public abstract Accessible getAccessibleParent() Get the Accessible parent of this object.
143 M. (from Interface IUIComponent)  public IUIContainer getParent() all parents are accessible since they are all UIContainers which extends UIComponent which implements IUIAccessible
144 S.  public abstract int getAccessibleChildrenCount()
144 M. (from interface IUIContainer)  public int getChildCount()
145 S.  public abstract Accessible getAccessibleChild(int i)
145 M. (from interface IUIContainer)  public IUIComponent getChild(int index)
146 S.  public abstract Locale getLocale() throws IllegalComponentStateException
146 M.  No entry
147 S.  public abstract void setLocale(Locale l)
147 M.  No entry
148 S.  public abstract void addAccessibleSelection(int i) Adds the nth selected item in the object to the object's selection.
148 M.  see setStateCode()
149 S.  public abstract void removeAccessibleSelection(int i)
149 M.  see setStateCode()
150 S.  public abstract void clearAccessibleSelection()
150 M.  see setStateCode()
151 S.  public abstract int getAccessibleSelectionCount()
151 M.  No entry
152 S.  public abstract Accessible getAccessibleSelection(int i)
152 M.  No entry
153 S.  public abstract void selectAllAccessibleSelection()
153 M.  No entry
154 S.  public abstract String getAccessibleName()
154 M.  public String getHelp()
155 S.  public abstract void setAccessibleName(String s)
155 M.  No entry
156 S.  public abstract void addFocusListener(FocusListener l)
156 M.  see IUIComponent
157 S.  public abstract void removeFocusListener(FocusListener l)
157 M.  see IUIComponent
158 S.  PLUS other methods found in component (addFocusListener, getBackground(), getCursor(), getFont())
158 M.  see IUIComponent
159 S.  public abstract AccessibleText getAccessibleText() Gets the AccessibleText interface for the component.
159 M.  No Entry
Title from Interface AccessibleText
160 S.  public static final int CHARACTER
160 M.  No entry
161 S.  public static final int WORD
161 M.  No entry
162 S.  public static final int SENTENCE
162 M.  No entry
163 S.  public abstract AccessibleText getAccessibleText() Gets the AccessibleText interface for the component.
163 M.  No entry
164 S.  public abstract int getIndexAtPoint(Point p)
164 M.  No entry
165 S.  public abstract Rectangle getCharacterBounds(int i)
165 M.  No entry
166 S.  public abstract int getCharCount() Return the number of characters (valid indicies)
166 M.  No entry
167 S.  public abstract int getCaretPosition() Return the zero-based offset of the caret. Note: the to the right of the caret will have the same index value as the offset (the caret is between two characters).
167 M.  No entry
168 S.  public abstract Object getAtIndex(int chunk, int index) Return the object at a given index. Use instanceof() to determine whether this is a String (common), or either an Accessible, or an inaccessible Object.
168 M.  No entry
169 S.  public abstract Object getAfterIndex(int chunk, int Return the object after a given index. Use instanceof() to determine whether this is a String (common), or either an Accessible, or an inaccessible Object.
169 M.  No entry
170 S.  public abstract Object getBeforeIndex(int chunk, int index) Return the object before a given index. Use instanceof() to determine whether this is a String (common), or either an Accessible, or an inaccessible Object.
170 M.  No entry
171 S.  public abstract AttributeSet getCharacterAttribute(int i) Return the AttributeSet for a given character (at a given index)
171 M.  No entry
172 S.  public abstract int getSelectionStart()
172 M.  No entry
173 S.  public abstract int getSelectionEnd()
173 M.  No entry
174 S.  public abstract String getSelectedText()
174 M.  No entry