Accessibility/Comparisons:States: Difference between revisions
(updated per a11y newsgroup discussion) |
|||
Line 24: | Line 24: | ||
<th>Closest UA Attribute(s) (NSAccessibility*Attribute)</th> | <th>Closest UA Attribute(s) (NSAccessibility*Attribute)</th> | ||
<th>Description</th> | <th>Description</th> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 46: | Line 33: | ||
they are in a state of transition. </td> | they are in a state of transition. </td> | ||
</tr> | </tr> | ||
<tr> | <tr class="OK"> | ||
<td | <td>CHECKED</td> | ||
<td | <td>CHECKED</td> | ||
<td | <td>Value attribute is "1"</td> | ||
<td | <td>Checkbox, radio button, or toggle | ||
button is checked.</td> | button is checked.</td> | ||
</tr> | </tr> | ||
<tr> | <tr class="OK"> | ||
<td | <td>COLLAPSED</td> | ||
<td | <td>!EXPANDED, COLLAPSED</td> | ||
<td | <td>Disclosing (for tables/outliners), | ||
ShowMenu action for | ShowMenu action for | ||
popupsbuttons/menus.</td> | popupsbuttons/menus.</td> | ||
<td | <td>Expandable objects that provide | ||
progressive disclosure, | progressive disclosure, | ||
like a tree list or drop-down list is currently not expanded (i.e. the | like a tree list or drop-down list is currently not expanded (i.e. the | ||
children are not showing or visible).</td> | children are not showing or visible).</td> | ||
</tr> | </tr> | ||
<tr> | <tr class="OK"> | ||
<td | <td>DEFAULT</td> | ||
<td | <td>Use a text attribute or add a custom | ||
state?</td> | state?</td> | ||
<td | <td>DefaultButton</td> | ||
<td | <td>Default button or menu item.</td> | ||
</tr> | </tr> | ||
<tr class="OK"> | <tr class="OK"> | ||
Line 78: | Line 65: | ||
progressive disclosure, like trees and drop-down lists are currently | progressive disclosure, like trees and drop-down lists are currently | ||
showing and visible.</td> | showing and visible.</td> | ||
</tr> | </tr> | ||
<tr class="OK"> | <tr class="OK"> | ||
Line 115: | Line 89: | ||
<td>Object has a popup, but in ATK the popup children need | <td>Object has a popup, but in ATK the popup children need | ||
to establish the relationship with the parent. </td> | to establish the relationship with the parent. </td> | ||
</tr> | </tr> | ||
<tr class="maybe"> | <tr class="maybe"> | ||
Line 126: | Line 94: | ||
<td>!VISIBLE</td> | <td>!VISIBLE</td> | ||
<td>Parent can tell if this object is in the | <td>Parent can tell if this object is in the | ||
VisibleChildren attr</td> | VisibleChildren attr. We can also see if the NSView is visible.</td> | ||
<td>The object is hidden, whether on-screen or off-screen. </td> | <td>The object is hidden, whether on-screen or off-screen. </td> | ||
</tr> | </tr> | ||
<tr> | <tr class="OK"> | ||
<td | <td>LINKED</td> | ||
<td | <td >Implement AtkHyperlink and | ||
AtkHypertext</td> | AtkHypertext</td> | ||
<td | <td>LinkedUIElements (objects associated | ||
with each other), TextLink role/attribute for text links | with each other), TextLink role/attribute for text links, and WebKit has a Link extension role</td> | ||
<td | <td>The object links to another object. </td> | ||
</tr> | </tr> | ||
<tr> | <tr class="OK"> | ||
<td | <td>MIXED</td> | ||
<td>INDETERMINATE or | |||
<td | |||
add custom state</td> | add custom state</td> | ||
<td | <td>Checkbox's value attribute is set to | ||
"2"</td> | "2"</td> | ||
<td | <td>A checkbox object is in a state other | ||
than checked or | than checked or | ||
not checked, such as a | not checked, such as a tri-state checkbox might be. </td> | ||
</tr> | </tr> | ||
<tr class=" | <tr class="OK"> | ||
<td>MULTISELECTABLE</td> | <td>MULTISELECTABLE</td> | ||
<td>MULTISELECTABLE</td> | <td>MULTISELECTABLE</td> | ||
<td> | <td>There should be a property of the outliner/table view to see if it supports this.</td> | ||
<td>Object allows more than one of its children to be | <td>Object allows more than one of its children to be | ||
selected at the same time. </td> | selected at the same time. </td> | ||
</tr> | </tr> | ||
<tr class="OK"> | |||
<tr class=" | |||
<td>OFFSCREEN</td> | <td>OFFSCREEN</td> | ||
<td>!SHOWING</td> | <td>!SHOWING</td> | ||
<td> | <td>Same as INVISIBLE above</td> | ||
<td>An object is currently not visible and not on-screen. </td> | <td>An object is currently not visible and not on-screen. </td> | ||
</tr> | </tr> | ||
<tr class=" | <tr class="OK"> | ||
<td>PRESSED</td> | <td>PRESSED</td> | ||
<td>PRESSED</td> | <td>PRESSED</td> | ||
<td> | <td>Use non-UA API to check the value of a Toggle or OnOffButton</td> | ||
<td>Object is currently pressed down. </td> | <td>Object is currently pressed down. </td> | ||
</tr> | </tr> | ||
Line 219: | Line 162: | ||
children to be selected, and this child is selected. </td> | children to be selected, and this child is selected. </td> | ||
</tr> | </tr> | ||
<tr class="OK"> | |||
<tr class=" | |||
<td>SIZEABLE</td> | <td>SIZEABLE</td> | ||
<td>RESIZABLE</td> | <td>RESIZABLE</td> | ||
Line 244: | Line 180: | ||
<td>UNAVAILABLE</td> | <td>UNAVAILABLE</td> | ||
<td>!ENABLED</td> | <td>!ENABLED</td> | ||
<td>Same as | <td>Same as !enabled</td> | ||
<td>Object is grayed out and not available at this time. </td> | <td>Object is grayed out and not available at this time. </td> | ||
</tr> | </tr> | ||
<tr> | |||
<td></td> | |||
<td>DEFUNCT</td> | |||
<td></td> | |||
<td>User interface object corresponding to this object no | |||
longer exists. Important for ATs that may hold on to things in our DOM tree, if it has changed</td> | |||
</tr> | |||
longer exists. </td> | |||
<tr class="OK"> | <tr class="OK"> | ||
<td></td> | <td></td> | ||
Line 281: | Line 207: | ||
<td></td> | <td></td> | ||
<td>EXPANDABLE</td> | <td>EXPANDABLE</td> | ||
<td> | <td>Use Disclosing attribute</td> | ||
<td>The children items of this object that provide | <td>The children items of this object that provide | ||
progressive disclosure, like trees and drop-down lists, can be showing | progressive disclosure, like trees and drop-down lists, can be showing | ||
Line 289: | Line 215: | ||
<td></td> | <td></td> | ||
<td>HAS_TOOLTIP</td> | <td>HAS_TOOLTIP</td> | ||
<td>There's a Help attr | <td>There's a Help attr. Otherwise some other Cocoa API should be able to help us probably.</td> | ||
<td>Object has an associated tooltip.</td> | <td>Object has an associated tooltip.</td> | ||
</tr> | </tr> | ||
Line 305: | Line 231: | ||
<td>Object is minimized and represented only by an icon. </td> | <td>Object is minimized and represented only by an icon. </td> | ||
</tr> | </tr> | ||
<tr | <tr> | ||
<td></td> | <td></td> | ||
<td>INVALID</td> | <td>INVALID</td> | ||
<td> | <td></td> | ||
<td>Object is in an invalid state. </td> | <td>Object is in an invalid state. Important for XForms, for validating values entered.</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td></td> | <td></td> | ||
<td>INVALID_ENTRY (proposed)</td> | <td>INVALID_ENTRY (proposed)</td> | ||
<td> | <td></td> | ||
<td>This object has indicated an error condition due to | <td>This object has indicated an error condition due to | ||
failure of input validation. For instance, a form control may acquire | failure of input validation. For instance, a form control may acquire | ||
this state in response to invalid or malformed user input.</td> | this state in response to invalid or malformed user input.</td> | ||
</tr> | </tr> | ||
<tr> | <tr class="maybe"> | ||
<td></td> | <td></td> | ||
<td>MANAGES_DESCENDANTS</td> | <td>MANAGES_DESCENDANTS</td> | ||
Line 330: | Line 256: | ||
subcomponents directly. </td> | subcomponents directly. </td> | ||
</tr> | </tr> | ||
<tr | <tr> | ||
<td></td> | <td></td> | ||
<td>MODAL</td> | <td>MODAL</td> | ||
<td> | <td></td> | ||
<td>Something must be done with this object before the user | <td>Something must be done with this object before the user | ||
can interact with an object in a different window.</td> | can interact with an object in a different window.</td> | ||
Line 342: | Line 268: | ||
<td>is a TextView role</td> | <td>is a TextView role</td> | ||
<td>Text object can contain multiple lines of text. </td> | <td>Text object can contain multiple lines of text. </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 370: | Line 287: | ||
While similar, text selection and subelement selection are distinct | While similar, text selection and subelement selection are distinct | ||
operations.</td> | operations.</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 395: | Line 299: | ||
<td>textfield role</td> | <td>textfield role</td> | ||
<td>Text object can only contain a single line of text. </td> | <td>Text object can only contain a single line of text. </td> | ||
</tr> | </tr> | ||
<tr class="OK"> | <tr class="OK"> | ||
Line 445: | Line 306: | ||
<td>Orientation of this object is vertical. </td> | <td>Orientation of this object is vertical. </td> | ||
</tr> | </tr> | ||
<tr> | <tr class="maybe"> | ||
<td></td> | <td></td> | ||
<td>VISIBLE</td> | <td>VISIBLE</td> | ||
<td></td> | <td>For widgets, we can check if the NSView is visible.</td> | ||
<td>Object is not hidden but may be off-screen. | <td>Object is not hidden but may be off-screen. | ||
STATE_VISIBLE is no guarantee that the object is actually unobscured on | STATE_VISIBLE is no guarantee that the object is actually unobscured on |
Revision as of 14:39, 18 May 2006
Accessibility States Comparison
This is a comparison between the states available in each architecture.
Mac comparison in process
Please note, the colors represent the level of compatibility UA has with the rest. This is an aid for the ongoing Mac Accessibility effort.
Please leave comments to the newsgroup. Thanks! --HakanW 12:27, 9 May 2006 (PDT)
Color legend
Color legend |
---|
UA seems compatible |
UA probably compatible |
Seems irrelevant? |
Not yet done / Undecided (white). |
Comparison Table
MSAA 1.3 State (STATE_SYSTEM_*) | Closest ATK State(s) (ATK_STATE_*) | Closest UA Attribute(s) (NSAccessibility*Attribute) | Description |
---|---|---|---|
BUSY | BUSY | Control cannot accept input at this time. Usually used
on objects such as progress bars, sliders, or scroll bars to indicate they are in a state of transition. |
|
CHECKED | CHECKED | Value attribute is "1" | Checkbox, radio button, or toggle button is checked. |
COLLAPSED | !EXPANDED, COLLAPSED | Disclosing (for tables/outliners),
ShowMenu action for popupsbuttons/menus. |
Expandable objects that provide
progressive disclosure, like a tree list or drop-down list is currently not expanded (i.e. the children are not showing or visible). |
DEFAULT | Use a text attribute or add a custom state? | DefaultButton | Default button or menu item. |
EXPANDED | EXPANDED | Expanded | The children items of expandable objects that provide
progressive disclosure, like trees and drop-down lists are currently showing and visible. |
FOCUSABLE | FOCUSABLE | Check if the focused attribute is settable | Object can accept keyboard focus, which means all
events resulting from typing on the keyboard will normally be passed to it when it has focus. |
FOCUSED | FOCUSED | Focused | Object currently has the keyboard focus. |
HASPOPUP | Use ATK_RELATION_POPUP_FOR to point to
the parent of the popup. Would ATK_STATE_MANAGES_DESCENDANTS apply? |
The object supports the ShowMenu action | Object has a popup, but in ATK the popup children need to establish the relationship with the parent. |
INVISIBLE | !VISIBLE | Parent can tell if this object is in the VisibleChildren attr. We can also see if the NSView is visible. | The object is hidden, whether on-screen or off-screen. |
LINKED | Implement AtkHyperlink and AtkHypertext | LinkedUIElements (objects associated with each other), TextLink role/attribute for text links, and WebKit has a Link extension role | The object links to another object. |
MIXED | INDETERMINATE or add custom state | Checkbox's value attribute is set to "2" | A checkbox object is in a state other
than checked or not checked, such as a tri-state checkbox might be. |
MULTISELECTABLE | MULTISELECTABLE | There should be a property of the outliner/table view to see if it supports this. | Object allows more than one of its children to be selected at the same time. |
OFFSCREEN | !SHOWING | Same as INVISIBLE above | An object is currently not visible and not on-screen. |
PRESSED | PRESSED | Use non-UA API to check the value of a Toggle or OnOffButton | Object is currently pressed down. |
PROTECTED | Use ATK_PASSWORD_TEXT as the role | See the SecureTextField role | Object is a password field. |
READONLY | !EDITABLE & SENSITIVE | Object is a StaticText role, or TextField not focused, etc. Also, if the value attr is not settable... | Object is interactive (sensitive) but the contents currently cannot be edited (changed) by the user. |
SELECTABLE | SELECTABLE | Has a settable Selected attr | Object is the child of an object that allows its children to be selected, and this child is one that can be selected. |
SELECTED | SELECTED | Selected, and SelectedChildren attr | Object is the child of an object that allows its children to be selected, and this child is selected. |
SIZEABLE | RESIZABLE | For windows, there's a GrowArea role for the part where you can resize it. | The size of the object can be changed (i.e. it is not fixed.) |
TRAVERSED | Use a text attribute or add a custom state? | The link object was traversed (visited). | |
UNAVAILABLE | !ENABLED | Same as !enabled | Object is grayed out and not available at this time. |
DEFUNCT | User interface object corresponding to this object no longer exists. Important for ATs that may hold on to things in our DOM tree, if it has changed | ||
EDITABLE | For text: StaticText role vs Textfield/textarea roles. Also whether the "value" attribute is settable. | The contents of this object can change. | |
ENABLED | Enabled | Object is not grayed out and can be interacted with if sensitive. | |
EXPANDABLE | Use Disclosing attribute | The children items of this object that provide
progressive disclosure, like trees and drop-down lists, can be showing and visible (expanded) versus hidden (collapsed). |
|
HAS_TOOLTIP | There's a Help attr. Otherwise some other Cocoa API should be able to help us probably. | Object has an associated tooltip. | |
HORIZONTAL | Get from Orientation attribute of widget | Orientation of this object is horizontal. | |
ICONIFIED | There's a WindowMiniaturized notification for when a window is minimized. | Object is minimized and represented only by an icon. | |
INVALID | Object is in an invalid state. Important for XForms, for validating values entered. | ||
INVALID_ENTRY (proposed) | This object has indicated an error condition due to
failure of input validation. For instance, a form control may acquire this state in response to invalid or malformed user input. |
||
MANAGES_DESCENDANTS | Indicates that "active-descendant-changed" event is
sent when children become 'active' (i.e. are selected or navigated to onscreen). Typically used for trees and tables that have a large number of subcomponents and where the objects are created only when needed and otherwise remain virtual. The application should not manage the subcomponents directly. |
||
MODAL | Something must be done with this object before the user can interact with an object in a different window. | ||
MULTI_LINE | is a TextView role | Text object can contain multiple lines of text. | |
REQUIRED | Explicit user interaction with this object is required by the user interface. | ||
SELECTABLE_TEXT (proposed) | SelectedText attr exists in textviews and textfields. | Object supports text selection. It should only be
exposed on objects which implement the Text interface, in order to distinguish this state from STATE_SELECTABLE, which infers that the object is a selectable child of an object which implements Selection. While similar, text selection and subelement selection are distinct operations. |
|
SHOWING | same as visible? | Object is visible and on-screen. | |
SINGLE_LINE | textfield role | Text object can only contain a single line of text. | |
VERTICAL | Orientation attr | Orientation of this object is vertical. | |
VISIBLE | For widgets, we can check if the NSView is visible. | Object is not hidden but may be off-screen.
STATE_VISIBLE is no guarantee that the object is actually unobscured on the screen, only that it is 'potentially' visible, barring obstruction, being scrolled or clipped out of the field of view, or having an ancestor container that has not yet made visible. A widget is potentially onscreen if it has both STATE_VISIBLE and STATE_SHOWING. The absence of STATE_VISIBLE and STATE_SHOWING is semantically equivalent to saying that an object is 'hidden'. |