Mac accessibility comparison to MSAA/ATK

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Mac accessibility comparison to MSAA/ATK

Håkan Waara
Hi all,

I've been busy for a while now, mapping all of the Universal Access  
(UA) APIs to what MSAA and ATK already provide.  I do this to see if  
there are any big gaps, and to get a good "topological" feel of the  
APIs.

I've posted comparison tables on the wiki. The comparison is of the  
roles, the states and the events that each of these accessibility  
toolkits provide.

For each of these technical details of the toolkits, I have added a  
proposed UA solution and color-tagged it according to how  
"compatible" I think it is with MSAA/ATK.

I appreciate all feedback on these rough decisions. They will serve  
as an idea how to make UA compatible with the other APIs.

The comparisons are available here:
http://wiki.mozilla.org/Accessibility/Comparisons

Since there was no good reference for the UA APIs, I have also  
created one, and added to the wiki. For the interested, the reference  
can be found here:
http://wiki.mozilla.org/index.php?title=Mac:Accessibility/ 
UniversalAccess

As always, the starting page for the mac access project is:
http://wiki.mozilla.org/index.php?title=Mac:Accessibility

Thanks!

/Håkan

_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK

Aaron Leventhal

_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK [states]

Aaron Leventhal
In reply to this post by Håkan Waara

_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK

Håkan Waara
In reply to this post by Aaron Leventhal
17 maj 2006 kl. 05.17 skrev Aaron Leventhal:

> My comments in red -- so far just feedback on roles.
>
> Can you add the following custom roles that Firefox uses to the  
> table? We need them in MSAA/ATK to expose document structure.
> , "h1", "h2", "h3", "h4", "h5", "h6", "iframe", "q", "tbody",  
> "tfoot", "thead" HTML tag mirrors the role string
> "bullet" Indirectly created for bullets when <ol> or <ul> used to  
> create an HTML list
> "abbr", "acronym", "blockquote", "form", "frame", "h1", "h2", "h3",  
> "h4", "h5", "h6", "iframe", "q", "tbody", "tfoot", "thead" Created  
> from the identical HTML markup
>
> Those roles and the others are listed here: http://www.mozilla.org/ 
> access/windows/at-apis#roletable
> The table on that page shows what markup (XUL, HTML and DHTML a11y  
> attributes) can be used to create each kind of role, as well as  
> says what states and events are supported by each role.

I added the Firefox specific roles to http://wiki.mozilla.org/ 
Accessibility/Comparisons:Roles#Firefox-specific_Roles

Mainly, this is where UA is lacking; web-specific roles etc. UA was  
designed for the system, and its widgets. I will gather a list of the  
things that we can argue are "crucial" and have no replacement in UA,  
and propose them to Apple/Safari-people.

UA is extendable with custom roles/attributes/actions, so we can add  
custom placeholders but lobby for them to be added in Safari and/or  
UA. WebKit (Safari's web engine) already has a few extensions that we  
should definitely re-use: http://wiki.mozilla.org/Mac:Accessibility/ 
UniversalAccess:Webkit

> Comparison Table
>
> MSAA 1.3 Role (ROLE_SYSTEM_ *) Closest ATK Role(s) (ATK_ROLE_*)
> Closest UA Role (NSAccessibility*Role) Description
> ALERT ALERT Window with SystemDialog subrole? An error, warning, or  
> informational message
> Alerts aren't always a window. For example, the <browsermessage>  
> bar is done as an alert. So are the examples at http://
> www.mozilla.org/access/dhtml/alert
> When the become visible or change, we fire EVENT_ALERT. This tells  
> the screen reader to speak their contents, or tells a screen  
> magnifier to zoom to them.What's the UA equivalent?

Good point, I believe there is none, except for windows.

> ANIMATION ANIMATION Don't need A dynamic or moving image that  
> changes over time.
> APPLICATION APPLICATION Application Toplevel accessible object of  
> an application, which may contain frame objects or other accessible  
> objects.
> BORDER don't use don't use Don't need Window border as an object
> BUTTONDROPDOWN add custom role No such standard widget on mac. (If  
> needed, roll our own.) Don't need Button that drops down a list of  
> items
> BUTTONDROPDOWNGRID add custom role No such standard widget on mac.  
> (If needed, roll our own.) Don't need Button that drops down a grid
> BUTTONMENU add custom role MenuButton Button that drops down a menu
> CARET don't use don't use System caret
> CELL TABLE_CELL  What can  we use for this? Cell in a table

I don't know. Why is it needed? In many cases, table are just used to  
make text flow in the right way in the design.

Safari just says every cell of data (for example some StaticText) is  
the object inside a Group.

> CHARACTER don't use don't use Paperclip character.
> CHART CHART (proposed) Image with a special DescriptionAttribute?
> Graphical depiction of quantitative data
> CHECKBUTTON CHECK_BOX, CHECK_MENU_ITEM, TOGGLE_BUTTON CheckBox
> Choice that can be checked or unchecked. A checkbox and check menu  
> item have a separate indicator for the state. A toggle button is a  
> specialized push button that does not have a separate indicator for  
> the state.
> CLOCK add custom role don't use Clock object.
> COLUMN don't use Column Column of table cells.
> COLUMNHEADER TABLE_COLUMN_HEADER, COLUMN_HEADER Get the  
> NSAccessibilityHeaderAttribute on a Table Header which labels a  
> column of data, or more specifically a column of data in a table.
> COMBOBOX COMBO_BOX ComboBox Edit control with a drop-down list of  
> selections
> CURSOR don't use don't use Mouse pointer.
> DIAGRAM IMAGE, DRAWING_AREA, or add custom role Image
> We'll need something eventually for SVG diagrams which will have  
> child accessible nodes for the items within, and spatial data or  
> relationships between items. Image is a generic graphic. Diagram is  
> a specific type of a drawn graphic. Drawing area is used for  
> creating custom user interface elements.

Ok. When we have something spec-like, we can propose it to Safari/
Apple, and add it to our capabilities in the meantime.

> DIAL DIAL Really useful? Don't need Control with value changes  
> using a rotating visual indicator
> DIALOG DIALOG, COLOR_CHOOSER, FILE_CHOOSER Window with dialog  
> subrole (sometimes Sheet) Top level window with a title bar and  
> border. A file chooser is a specialized dialog that displays files  
> in a directory and allows file selection, directory browsing, and  
> filename specification. A color chooser is a specialized dialog for  
> choosing a color.
> DOCUMENT HTML_CONTAINER or DOCUMENT_FRAME (proposed) Use custom  
> role WebArea like Safari for the actual web browser view? Window  
> for the actual window. Sounds good. For MSAA, a document is a  
> window that corresponds to MDI document. An HTML container or  
> document frame is an HTML document or a frame containing a view of  
> document content.
> DROPLIST add custom role or COMBO_BOX ComboBox?  Sounds good. Drop  
> down list but not a combo box
> EQUATION add custom role Image/StaticText + special  
> DescriptionAttribute probably sufficient.
> We'll need something eventually to show where MathML starts, won't  
> we?  We need to expose the semantics of the equation, such as roots  
> and fractions. Images aren't enough. Math and chemistry equations

Same here.

> GRAPHIC IMAGE, DESKTOP_ICON Image Graphic or an icon
> GRIP add custom role SplitterBar Mouse pointer used for resizing  
> windows.
> GROUPING PANEL, PAGE (proposed), SECTION (proposed) Group Container  
> used to group objects, like a group box or a FIELDSET in HTML. A  
> page is defined for documents. A section is a generic container of  
> content within a document, such as a navigation bar, table of  
> contents, main content section, content between headings, etc.
> HELPBALLOON add custom role Button with DescriptionAttribute="Help"
> Help icon to click on to get tooltip help
> HOTKEYFIELD add custom role Really needed?  Don't need Editable  
> field for assigning keys
> INDICATOR ARROW or add custom role Too vague. Can we really have a  
> role to indicate "something"? Image + RoleDescription/
> DescriptionAttribute? An indicator is a graphic, like an arrow,  
> used to indicate something. Arrow is a 2D directional indicator.
> LINK LINK (proposed) TextLink  What if it's a link with an image?  
> What if it's a link with both text and an image? Hypertext link in  
> a document that can be an image or text

Safari adds a Link role, that we can also support. See http://
wiki.mozilla.org/Mac:Accessibility/UniversalAccess:Webkit#Extra_Roles

> LIST LIST, FONT_CHOOSER List List of objects that allows one or  
> more selections. A font chooser allows selection of a display font.
> LISTITEM LISTITEM Row? Doesn't sound right. We're talking about an  
> <option> Element in a selectable list

Oh, ok! Then we should use the same as PopupButton just below I suppose.

> MENUBAR MENU_BAR MenuBar Object drawn at the top of the primary  
> window or dialog box of an application ((just below the title bar))  
> that contains a list of menus.
> MENUITEM MENU_ITEM, RADIO_MENU_ITEM, CHECK_MENU_ITEM MenuItem,  
> MenuBarItem Element in a menu that presents a selectable action. A  
> radio menu item is both a radio button and a menu item. A check  
> menu item is both a check box and a menu item.
> MENUPOPUP MENU, POPUP_MENU, TEAROFF_MENU_ITEM Menu, MenuButton  
> (button with icon that pops up a menu when clicked) or PopupButton  
> (regular popupmenu showing the current choice) A menu is a list of  
> actions from which the user can choose. A pop-up menu is a  
> temporary window that offers the user a list of choices, then hides  
> itself once the user selects one of those choices. A tearoff menu  
> item is a is a menu that can be removed from the menubar and shown  
> in its own window.
> OUTLINE TREE, TREE_TABLE Outline A tree or an outline is an object  
> used to present hierarchical information to the user, usually with  
> expandable/collapsable elements. A tree table presents both tabular  
> and hierarchical information to the user.
> OUTLINEITEM use custom role Row and subrole OutlineRow A tree item.
> PAGETAB PAGE_TAB Just a Group child inside a TabGroup Does the  
> group contain both the label and the content associated with it? Or  
> just the label? A tab that usually contains a label or title for a  
> page or panel of a notebook container.

Every page is just a page of the TabGroup role. If you mouse over the  
tab button, you get the title of the tab. The content is inside the  
TabGroup currently visible.

> PAGETABLIST PAGE_TAB_LIST TabGroup A tabbed notebook container, or  
> a series of panels presented as tabbed pages.
> PANE FRAME, INTERNAL_FRAME, GLASS_PANE, LAYERED_PANE, OPTION_PANE,  
> SCROLL_PANE, DIRECTORY_PANE, DESKTOP_FRAME, ROOT_PANE, SPLIT_PANE,  
> VIEWPORT Window (subroles StandardWindow), ScrollArea, SplitGroup  
> (two adjacent "views" with a splitter bar), Browser (horizontal  
> tree-like view often used for nagivating in the filesystem) A pane  
> or frame in the current window. A frame is a top level window with  
> a title bar, border, menubar, etc. An internal frame is a frame  
> clipped by a desktop pane. A glass pane is painted on top of all  
> panes beneath it. A layered pane allows its children to be drawn in  
> layers based on a stacking order. An option pane is a pane inside  
> of a dialog. A scroll pane contains scroll bars. A directory pane  
> contains selections (icons, lists, trees) for the content of a  
> directory. A desktop frame is a pane that supports internal frames  
> and icons for those internal frames. A root pane has a glass pane  
> and a layered pane as its children. A split pane is a panel that  
> presents two other panels at the same time. A viewport is a  
> container of content, usually used in a scroll pane, that  
> represents a clipped version of that pane that is onscreen (visible).
> PROGRESSBAR PROGRESS_BAR ProgressIndicator Object that shows the  
> percentage of a task that has completed.
> PROPERTYPAGE PAGE (proposed) or add custom role Group with  
> DescriptionAttribute describing special purpose? I made the mistake  
> of overloading accessible descriptions in MSAA for positional info  
> and now pay the price. The description should be defined as the  
> author, and is useful information provided which describes the  
> current accessible. For example, descriptive text at the top of the  
> property page.
>
> Page showing properties of something. The property page role is  
> used for content associated with a tab.

You're right about not overloading the description...  Is a property  
page really that different from another "page" (tab) ? It's the same  
widget after all, from what I understand.

> PUSHBUTTON PUSH_BUTTON, TOGGLE_BUTTON Button (see also subrole  
> ToolbarButton) A push button tells the application to do something  
> when it is activated. A toggle button is a specialized push button  
> that does not have a separate indicator for the state.
> RADIOBUTTON RADIO_BUTTON, RADIO_MENU_ITEM RadioButton (grouped  
> together using RadioGroup) Usually in a group, only one radio  
> button in a group can be "checked". Check one radio button causes  
> all others in the group to be unchecked. A radio menu item is both  
> a radio button and a menu item.
> ROW add custom control Row (see subroles OutlineRow, TableRow) Row  
> in a table.
> ROWHEADER ROW_HEADER, TABLE_ROW_HEADER Header attribute of a table/
> outliner/browser. Header which labels a row of data, or more  
> specifically a row of data in a table.
> SCROLLBAR SCROLL_BAR ScrollBar, see children ValueIndicator (the  
> draggable thumb), and arrows: IncrementPage, DecrementPage subroles
> Object which allows a user to incrementally view a large amount of  
> data by moving the bounds of a viewport along a one-dimensional axis.
> SEPARATOR SEPARATOR A Splitter that is disabled/static? What does  
> Safari do for an <hr> ? Object that provides a visual separation of  
> contents in a menu or between 2 areas/panes.

Nothing. So let's add this too.

> SLIDER SLIDER Slider Object that allows the user to select or  
> adjust a value in increments from a bounded range of minimum to  
> maximum values.
> SOUND IMAGE, ICON, or add custom control
> System sound object.
> SPINBUTTON SPIN_BUTTON Incrementor ("Stepper"), (Increment/
> Decrement subroles). Object that allows the user to select a value  
> from a set of choices.
> STATICTEXT LABEL, ACCELERATOR_LABEL StaticText A label presents  
> text that provides a short name or description associated with  
> another object, like a text entry field. An accelerator label  
> indicates the keyboard accelerators for its parent, like a menu item.
> STATUSBAR STATUS_BAR We could use BusyIndicator here for  
> indeterminate progress and ProgressIndicator for determinate progress
> There's a lot more in a status bar than those things. We need a  
> role to contain all of it.  I could see why someone would think  
> it's not necessary, but sometimes status bars have useful info --  
> this isn't just for Firefox, but any XUL app. The screen reader  
> needs to be able to read the status bar. Then again, it's likely  
> that Voice Over can't do that if they don't have that role anyway.  
> Would be intresting to find out why they didn't add that role.
> Display non-quantitative status information, in contrast to a  
> progress bar which displays quantitative status.

Whatever is inside the statusbar (the status text, the progress bar  
etc.) will have its own role in UA.

> TABLE TABLE, CALENDAR, TREE_TABLE Table Presents information in  
> terms of rows and columns. A calendar contains one or more dates,  
> usually arranged in a tabular format, but not always. A tree table  
> presents information in both a tabular and hierarchical format.
> TEXT TEXT, DATE_EDITOR, PASSWORD_TEXT, AUTOCOMPLETE, ENTRY  
> (proposed), PARAGRAPH, HEADING (proposed), HEADER, FOOTER, CAPTION  
> (proposed) StaticText, TextField, TextArea are the actual text  
> widgets. See various text attributes for describing text content.  
> There's also SecureTextField for password boxes. Text information  
> in general. A date editor allows entry of a date. A password text  
> entry object shows nothing or an alternative character, like an  
> asterisk, when the password text is typed. Autocomplete is a dialog  
> or list containing items for insertion into an entry widget, such  
> as a list of words or characters for completion of a text entry.  
> Entry is a text entry field which may be editable or read-only  
> depending on the STATE_EDITABLE attribute. A paragraph is a  
> paragraph of text in a document. A heading is the title for a  
> section in a document. A header is a section at the top of a  
> document, or the top of each page in a document. A footer is a  
> section at the bottom of a document, or the bottom of each page of  
> a document. A caption is descriptive information, usually textual,  
> about another user interface element such as a table, chart, or image.
> TITLEBAR add custom role title attribute of Window role Title or  
> caption of a window or dialog.
> TOOLBAR TOOL_BAR Toolbar (see also toolbar button subrole of  
> Button) A bar or palette usually comprised of push buttons or  
> toggle buttons.
> TOOLTIP TOOL_TIP HelpTag (same as "Help Balloon")  We don't use  
> this in Mozilla -- we expose the tooltip in the description, so the  
> user doesn't have to awkwardly try to get a tooltip to come up with  
> a mouseover for that info. That's pretty standard. An object that  
> provides descriptive or helpful information about another object,  
> often when the help key is pressed or the mouse moves over an object.

Makes sense.

> WHITESPACE FILLER Really needed? No, not needed. Object that takes  
> up space in a user interface.
> WINDOW WINDOW Window A top level window with no title or border.
>
> RULER Ruler, RulerMarker Object that describes margins and tab stops.
>
> EMBEDDED Unknown + smart RoleDescription/DescriptionAttribute?
> Object that is an embedded component container in a document.
>
> EDITBAR Basically same as textfield, or similar to whatever we'd do  
> for an inline textfield in a table? Object that is an editable text  
> object in a toolbar.
>
> CANVAS
> Object that can be drawn into and used to trap events.
>
> INVALID
> An error condition, such as an uninitialized role.
>
> UNKNOWN Unknown Object contains accessible information but its role  
> is not known.
>
>
> ColorWell Button for invoking a color inspector, where you can  
> choose colors.
>
>
> SearchField  Will be useful when an author uses  
> xhtml2:role="search" which can be set even in HTML via  
> setAttributeNS().  Also usefor for XUL search bar. Cool. Textfield  
> used for searching
>
>
> Håkan Waara wrote:
>> Hi all,
>>
>> I've been busy for a while now, mapping all of the Universal  
>> Access (UA) APIs to what MSAA and ATK already provide.  I do this  
>> to see if there are any big gaps, and to get a good "topological"  
>> feel of the APIs.
>>
>> I've posted comparison tables on the wiki. The comparison is of  
>> the roles, the states and the events that each of these  
>> accessibility toolkits provide.
>>
>> For each of these technical details of the toolkits, I have added  
>> a proposed UA solution and color-tagged it according to how  
>> "compatible" I think it is with MSAA/ATK.
>>
>> I appreciate all feedback on these rough decisions. They will  
>> serve as an idea how to make UA compatible with the other APIs.
>>
>> The comparisons are available here:
>> http://wiki.mozilla.org/Accessibility/Comparisons
>>
>> Since there was no good reference for the UA APIs, I have also  
>> created one, and added to the wiki. For the interested, the  
>> reference can be found here:
>> http://wiki.mozilla.org/index.php?title=Mac:Accessibility/ 
>> UniversalAccess
>>
>> As always, the starting page for the mac access project is:
>> http://wiki.mozilla.org/index.php?title=Mac:Accessibility
>>
>> Thanks!
>>
>> /Håkan
>>
>> _______________________________________________
>> dev-accessibility mailing list
>> [hidden email]
>> https://lists.mozilla.org/listinfo/dev-accessibility
>>
>

_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK

Håkan Waara
Sorry for the weird markup folks. My mail client sent something else  
than the tidy table I was editing. :-(

/Håkan

17 maj 2006 kl. 16.26 skrev Håkan Waara:

> 17 maj 2006 kl. 05.17 skrev Aaron Leventhal:
>
>> My comments in red -- so far just feedback on roles.
>>
>> Can you add the following custom roles that Firefox uses to the  
>> table? We need them in MSAA/ATK to expose document structure.
>> , "h1", "h2", "h3", "h4", "h5", "h6", "iframe", "q", "tbody",  
>> "tfoot", "thead" HTML tag mirrors the role string
>> "bullet" Indirectly created for bullets when <ol> or <ul> used to  
>> create an HTML list
>> "abbr", "acronym", "blockquote", "form", "frame", "h1", "h2",  
>> "h3", "h4", "h5", "h6", "iframe", "q", "tbody", "tfoot", "thead"
>> Created from the identical HTML markup
>>
>> Those roles and the others are listed here: http://www.mozilla.org/ 
>> access/windows/at-apis#roletable
>> The table on that page shows what markup (XUL, HTML and DHTML a11y  
>> attributes) can be used to create each kind of role, as well as  
>> says what states and events are supported by each role.
>
> I added the Firefox specific roles to http://wiki.mozilla.org/ 
> Accessibility/Comparisons:Roles#Firefox-specific_Roles
>
> Mainly, this is where UA is lacking; web-specific roles etc. UA was  
> designed for the system, and its widgets. I will gather a list of  
> the things that we can argue are "crucial" and have no replacement  
> in UA, and propose them to Apple/Safari-people.
>
> UA is extendable with custom roles/attributes/actions, so we can  
> add custom placeholders but lobby for them to be added in Safari  
> and/or UA. WebKit (Safari's web engine) already has a few  
> extensions that we should definitely re-use: http://
> wiki.mozilla.org/Mac:Accessibility/UniversalAccess:Webkit
>> Comparison Table
>>
>> MSAA 1.3 Role (ROLE_SYSTEM_ *) Closest ATK Role(s) (ATK_ROLE_*)
>> Closest UA Role (NSAccessibility*Role) Description
>> ALERT ALERT Window with SystemDialog subrole? An error, warning,  
>> or informational message
>> Alerts aren't always a window. For example, the <browsermessage>  
>> bar is done as an alert. So are the examples at http://
>> www.mozilla.org/access/dhtml/alert
>> When the become visible or change, we fire EVENT_ALERT. This tells  
>> the screen reader to speak their contents, or tells a screen  
>> magnifier to zoom to them.What's the UA equivalent?
>
> Good point, I believe there is none, except for windows.
>
>> ANIMATION ANIMATION Don't need A dynamic or moving image that  
>> changes over time.
>> APPLICATION APPLICATION Application Toplevel accessible object of  
>> an application, which may contain frame objects or other  
>> accessible objects.
>> BORDER don't use don't use Don't need Window border as an object
>> BUTTONDROPDOWN add custom role No such standard widget on mac. (If  
>> needed, roll our own.) Don't need Button that drops down a list of  
>> items
>> BUTTONDROPDOWNGRID add custom role No such standard widget on mac.  
>> (If needed, roll our own.) Don't need Button that drops down a grid
>> BUTTONMENU add custom role MenuButton Button that drops down a menu
>> CARET don't use don't use System caret
>> CELL TABLE_CELL  What can  we use for this? Cell in a table
>
> I don't know. Why is it needed? In many cases, table are just used  
> to make text flow in the right way in the design.
>
> Safari just says every cell of data (for example some StaticText)  
> is the object inside a Group.
>
>> CHARACTER don't use don't use Paperclip character.
>> CHART CHART (proposed) Image with a special DescriptionAttribute?
>> Graphical depiction of quantitative data
>> CHECKBUTTON CHECK_BOX, CHECK_MENU_ITEM, TOGGLE_BUTTON CheckBox
>> Choice that can be checked or unchecked. A checkbox and check menu  
>> item have a separate indicator for the state. A toggle button is a  
>> specialized push button that does not have a separate indicator  
>> for the state.
>> CLOCK add custom role don't use Clock object.
>> COLUMN don't use Column Column of table cells.
>> COLUMNHEADER TABLE_COLUMN_HEADER, COLUMN_HEADER Get the  
>> NSAccessibilityHeaderAttribute on a Table Header which labels a  
>> column of data, or more specifically a column of data in a table.
>> COMBOBOX COMBO_BOX ComboBox Edit control with a drop-down list of  
>> selections
>> CURSOR don't use don't use Mouse pointer.
>> DIAGRAM IMAGE, DRAWING_AREA, or add custom role Image
>> We'll need something eventually for SVG diagrams which will have  
>> child accessible nodes for the items within, and spatial data or  
>> relationships between items. Image is a generic graphic. Diagram  
>> is a specific type of a drawn graphic. Drawing area is used for  
>> creating custom user interface elements.
>
> Ok. When we have something spec-like, we can propose it to Safari/
> Apple, and add it to our capabilities in the meantime.
>
>> DIAL DIAL Really useful? Don't need Control with value changes  
>> using a rotating visual indicator
>> DIALOG DIALOG, COLOR_CHOOSER, FILE_CHOOSER Window with dialog  
>> subrole (sometimes Sheet) Top level window with a title bar and  
>> border. A file chooser is a specialized dialog that displays files  
>> in a directory and allows file selection, directory browsing, and  
>> filename specification. A color chooser is a specialized dialog  
>> for choosing a color.
>> DOCUMENT HTML_CONTAINER or DOCUMENT_FRAME (proposed) Use custom  
>> role WebArea like Safari for the actual web browser view? Window  
>> for the actual window. Sounds good. For MSAA, a document is a  
>> window that corresponds to MDI document. An HTML container or  
>> document frame is an HTML document or a frame containing a view of  
>> document content.
>> DROPLIST add custom role or COMBO_BOX ComboBox?  Sounds good. Drop  
>> down list but not a combo box
>> EQUATION add custom role Image/StaticText + special  
>> DescriptionAttribute probably sufficient.
>> We'll need something eventually to show where MathML starts, won't  
>> we?  We need to expose the semantics of the equation, such as  
>> roots and fractions. Images aren't enough. Math and chemistry  
>> equations
>
> Same here.
>
>> GRAPHIC IMAGE, DESKTOP_ICON Image Graphic or an icon
>> GRIP add custom role SplitterBar Mouse pointer used for resizing  
>> windows.
>> GROUPING PANEL, PAGE (proposed), SECTION (proposed) Group
>> Container used to group objects, like a group box or a FIELDSET in  
>> HTML. A page is defined for documents. A section is a generic  
>> container of content within a document, such as a navigation bar,  
>> table of contents, main content section, content between headings,  
>> etc.
>> HELPBALLOON add custom role Button with  
>> DescriptionAttribute="Help" Help icon to click on to get tooltip help
>> HOTKEYFIELD add custom role Really needed?  Don't need Editable  
>> field for assigning keys
>> INDICATOR ARROW or add custom role Too vague. Can we really have a  
>> role to indicate "something"? Image + RoleDescription/
>> DescriptionAttribute? An indicator is a graphic, like an arrow,  
>> used to indicate something. Arrow is a 2D directional indicator.
>> LINK LINK (proposed) TextLink  What if it's a link with an image?  
>> What if it's a link with both text and an image? Hypertext link in  
>> a document that can be an image or text
>
> Safari adds a Link role, that we can also support. See http://
> wiki.mozilla.org/Mac:Accessibility/UniversalAccess:Webkit#Extra_Roles
>
>> LIST LIST, FONT_CHOOSER List List of objects that allows one or  
>> more selections. A font chooser allows selection of a display font.
>> LISTITEM LISTITEM Row? Doesn't sound right. We're talking about an  
>> <option> Element in a selectable list
>
> Oh, ok! Then we should use the same as PopupButton just below I  
> suppose.
>
>> MENUBAR MENU_BAR MenuBar Object drawn at the top of the primary  
>> window or dialog box of an application ((just below the title  
>> bar)) that contains a list of menus.
>> MENUITEM MENU_ITEM, RADIO_MENU_ITEM, CHECK_MENU_ITEM MenuItem,  
>> MenuBarItem Element in a menu that presents a selectable action. A  
>> radio menu item is both a radio button and a menu item. A check  
>> menu item is both a check box and a menu item.
>> MENUPOPUP MENU, POPUP_MENU, TEAROFF_MENU_ITEM Menu, MenuButton  
>> (button with icon that pops up a menu when clicked) or PopupButton  
>> (regular popupmenu showing the current choice) A menu is a list of  
>> actions from which the user can choose. A pop-up menu is a  
>> temporary window that offers the user a list of choices, then  
>> hides itself once the user selects one of those choices. A tearoff  
>> menu item is a is a menu that can be removed from the menubar and  
>> shown in its own window.
>> OUTLINE TREE, TREE_TABLE Outline A tree or an outline is an object  
>> used to present hierarchical information to the user, usually with  
>> expandable/collapsable elements. A tree table presents both  
>> tabular and hierarchical information to the user.
>> OUTLINEITEM use custom role Row and subrole OutlineRow A tree item.
>> PAGETAB PAGE_TAB Just a Group child inside a TabGroup Does the  
>> group contain both the label and the content associated with it?  
>> Or just the label? A tab that usually contains a label or title  
>> for a page or panel of a notebook container.
>
> Every page is just a page of the TabGroup role. If you mouse over  
> the tab button, you get the title of the tab. The content is inside  
> the TabGroup currently visible.
>
>> PAGETABLIST PAGE_TAB_LIST TabGroup A tabbed notebook container, or  
>> a series of panels presented as tabbed pages.
>> PANE FRAME, INTERNAL_FRAME, GLASS_PANE, LAYERED_PANE, OPTION_PANE,  
>> SCROLL_PANE, DIRECTORY_PANE, DESKTOP_FRAME, ROOT_PANE, SPLIT_PANE,  
>> VIEWPORT Window (subroles StandardWindow), ScrollArea, SplitGroup  
>> (two adjacent "views" with a splitter bar), Browser (horizontal  
>> tree-like view often used for nagivating in the filesystem) A pane  
>> or frame in the current window. A frame is a top level window with  
>> a title bar, border, menubar, etc. An internal frame is a frame  
>> clipped by a desktop pane. A glass pane is painted on top of all  
>> panes beneath it. A layered pane allows its children to be drawn  
>> in layers based on a stacking order. An option pane is a pane  
>> inside of a dialog. A scroll pane contains scroll bars. A  
>> directory pane contains selections (icons, lists, trees) for the  
>> content of a directory. A desktop frame is a pane that supports  
>> internal frames and icons for those internal frames. A root pane  
>> has a glass pane and a layered pane as its children. A split pane  
>> is a panel that presents two other panels at the same time. A  
>> viewport is a container of content, usually used in a scroll pane,  
>> that represents a clipped version of that pane that is onscreen  
>> (visible).
>> PROGRESSBAR PROGRESS_BAR ProgressIndicator Object that shows the  
>> percentage of a task that has completed.
>> PROPERTYPAGE PAGE (proposed) or add custom role Group with  
>> DescriptionAttribute describing special purpose? I made the  
>> mistake of overloading accessible descriptions in MSAA for  
>> positional info and now pay the price. The description should be  
>> defined as the author, and is useful information provided which  
>> describes the current accessible. For example, descriptive text at  
>> the top of the property page.
>>
>> Page showing properties of something. The property page role is  
>> used for content associated with a tab.
>
> You're right about not overloading the description...  Is a  
> property page really that different from another "page" (tab) ?  
> It's the same widget after all, from what I understand.
>
>> PUSHBUTTON PUSH_BUTTON, TOGGLE_BUTTON Button (see also subrole  
>> ToolbarButton) A push button tells the application to do something  
>> when it is activated. A toggle button is a specialized push button  
>> that does not have a separate indicator for the state.
>> RADIOBUTTON RADIO_BUTTON, RADIO_MENU_ITEM RadioButton (grouped  
>> together using RadioGroup) Usually in a group, only one radio  
>> button in a group can be "checked". Check one radio button causes  
>> all others in the group to be unchecked. A radio menu item is both  
>> a radio button and a menu item.
>> ROW add custom control Row (see subroles OutlineRow, TableRow) Row  
>> in a table.
>> ROWHEADER ROW_HEADER, TABLE_ROW_HEADER Header attribute of a table/
>> outliner/browser. Header which labels a row of data, or more  
>> specifically a row of data in a table.
>> SCROLLBAR SCROLL_BAR ScrollBar, see children ValueIndicator (the  
>> draggable thumb), and arrows: IncrementPage, DecrementPage  
>> subroles Object which allows a user to incrementally view a large  
>> amount of data by moving the bounds of a viewport along a one-
>> dimensional axis.
>> SEPARATOR SEPARATOR A Splitter that is disabled/static? What does  
>> Safari do for an <hr> ? Object that provides a visual separation  
>> of contents in a menu or between 2 areas/panes.
>
> Nothing. So let's add this too.
>
>> SLIDER SLIDER Slider Object that allows the user to select or  
>> adjust a value in increments from a bounded range of minimum to  
>> maximum values.
>> SOUND IMAGE, ICON, or add custom control
>> System sound object.
>> SPINBUTTON SPIN_BUTTON Incrementor ("Stepper"), (Increment/
>> Decrement subroles). Object that allows the user to select a value  
>> from a set of choices.
>> STATICTEXT LABEL, ACCELERATOR_LABEL StaticText A label presents  
>> text that provides a short name or description associated with  
>> another object, like a text entry field. An accelerator label  
>> indicates the keyboard accelerators for its parent, like a menu item.
>> STATUSBAR STATUS_BAR We could use BusyIndicator here for  
>> indeterminate progress and ProgressIndicator for determinate progress
>> There's a lot more in a status bar than those things. We need a  
>> role to contain all of it.  I could see why someone would think  
>> it's not necessary, but sometimes status bars have useful info --  
>> this isn't just for Firefox, but any XUL app. The screen reader  
>> needs to be able to read the status bar. Then again, it's likely  
>> that Voice Over can't do that if they don't have that role anyway.  
>> Would be intresting to find out why they didn't add that role.
>> Display non-quantitative status information, in contrast to a  
>> progress bar which displays quantitative status.
>
> Whatever is inside the statusbar (the status text, the progress bar  
> etc.) will have its own role in UA.
>
>> TABLE TABLE, CALENDAR, TREE_TABLE Table Presents information in  
>> terms of rows and columns. A calendar contains one or more dates,  
>> usually arranged in a tabular format, but not always. A tree table  
>> presents information in both a tabular and hierarchical format.
>> TEXT TEXT, DATE_EDITOR, PASSWORD_TEXT, AUTOCOMPLETE, ENTRY  
>> (proposed), PARAGRAPH, HEADING (proposed), HEADER, FOOTER, CAPTION  
>> (proposed) StaticText, TextField, TextArea are the actual text  
>> widgets. See various text attributes for describing text content.  
>> There's also SecureTextField for password boxes. Text information  
>> in general. A date editor allows entry of a date. A password text  
>> entry object shows nothing or an alternative character, like an  
>> asterisk, when the password text is typed. Autocomplete is a  
>> dialog or list containing items for insertion into an entry  
>> widget, such as a list of words or characters for completion of a  
>> text entry. Entry is a text entry field which may be editable or  
>> read-only depending on the STATE_EDITABLE attribute. A paragraph  
>> is a paragraph of text in a document. A heading is the title for a  
>> section in a document. A header is a section at the top of a  
>> document, or the top of each page in a document. A footer is a  
>> section at the bottom of a document, or the bottom of each page of  
>> a document. A caption is descriptive information, usually textual,  
>> about another user interface element such as a table, chart, or  
>> image.
>> TITLEBAR add custom role title attribute of Window role Title or  
>> caption of a window or dialog.
>> TOOLBAR TOOL_BAR Toolbar (see also toolbar button subrole of  
>> Button) A bar or palette usually comprised of push buttons or  
>> toggle buttons.
>> TOOLTIP TOOL_TIP HelpTag (same as "Help Balloon")  We don't use  
>> this in Mozilla -- we expose the tooltip in the description, so  
>> the user doesn't have to awkwardly try to get a tooltip to come up  
>> with a mouseover for that info. That's pretty standard. An object  
>> that provides descriptive or helpful information about another  
>> object, often when the help key is pressed or the mouse moves over  
>> an object.
>
> Makes sense.
>
>> WHITESPACE FILLER Really needed? No, not needed. Object that  
>> takes up space in a user interface.
>> WINDOW WINDOW Window A top level window with no title or border.
>>
>> RULER Ruler, RulerMarker Object that describes margins and tab stops.
>>
>> EMBEDDED Unknown + smart RoleDescription/DescriptionAttribute?
>> Object that is an embedded component container in a document.
>>
>> EDITBAR Basically same as textfield, or similar to whatever we'd  
>> do for an inline textfield in a table? Object that is an editable  
>> text object in a toolbar.
>>
>> CANVAS
>> Object that can be drawn into and used to trap events.
>>
>> INVALID
>> An error condition, such as an uninitialized role.
>>
>> UNKNOWN Unknown Object contains accessible information but its  
>> role is not known.
>>
>>
>> ColorWell Button for invoking a color inspector, where you can  
>> choose colors.
>>
>>
>> SearchField  Will be useful when an author uses  
>> xhtml2:role="search" which can be set even in HTML via  
>> setAttributeNS().  Also usefor for XUL search bar. Cool. Textfield  
>> used for searching
>>
>>
>> Håkan Waara wrote:
>>> Hi all,
>>>
>>> I've been busy for a while now, mapping all of the Universal  
>>> Access (UA) APIs to what MSAA and ATK already provide.  I do this  
>>> to see if there are any big gaps, and to get a good "topological"  
>>> feel of the APIs.
>>>
>>> I've posted comparison tables on the wiki. The comparison is of  
>>> the roles, the states and the events that each of these  
>>> accessibility toolkits provide.
>>>
>>> For each of these technical details of the toolkits, I have added  
>>> a proposed UA solution and color-tagged it according to how  
>>> "compatible" I think it is with MSAA/ATK.
>>>
>>> I appreciate all feedback on these rough decisions. They will  
>>> serve as an idea how to make UA compatible with the other APIs.
>>>
>>> The comparisons are available here:
>>> http://wiki.mozilla.org/Accessibility/Comparisons
>>>
>>> Since there was no good reference for the UA APIs, I have also  
>>> created one, and added to the wiki. For the interested, the  
>>> reference can be found here:
>>> http://wiki.mozilla.org/index.php?title=Mac:Accessibility/ 
>>> UniversalAccess
>>>
>>> As always, the starting page for the mac access project is:
>>> http://wiki.mozilla.org/index.php?title=Mac:Accessibility
>>>
>>> Thanks!
>>>
>>> /Håkan
>>>
>>> _______________________________________________
>>> dev-accessibility mailing list
>>> [hidden email]
>>> https://lists.mozilla.org/listinfo/dev-accessibility
>>>
>>
>
> _______________________________________________
> dev-accessibility mailing list
> [hidden email]
> https://lists.mozilla.org/listinfo/dev-accessibility

_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK [states]

Håkan Waara
In reply to this post by Aaron Leventhal
My responses in green.

17 maj 2006 kl. 05.52 skrev Aaron Leventhal:

>
> My comments in red.
>
> Comparison Table
>
> MSAA 1.3 State (STATE_SYSTEM_*) Closest ATK State(s) (ATK_STATE_*)
> Closest UA Attribute(s) (NSAccessibility*Attribute) Description
> ANIMATED ANIMATED (proposed) or add custom state Image + custom  
> description? Not really needed. Object's visual representation is  
> changing or moving
> rapidly; it is dynamic not static. This state may be applied to an  
> object during an animated 'effect' and be removed from the object  
> once its visual representation becomes static. Note: Some  
> applications, notably content viewers, may not be able to detect  
> all kinds of animated content. Therefore the absence of this state  
> should not be taken as definitive evidence that the object's visual
>
> representation is static; this state is advisory.
> BUSY BUSY How does the screen reader deal with wait states, e.g.  
> the hourglass icon? No idea, will check this. 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" Makes sense. Checkbox, radio  
> button, or toggle button is checked.
> COLLAPSED !EXPANDED, COLLAPSED Disclosing (for tables/outliners),
> ShowMenu action for
>
> popupsbuttons/menus.
>
> What's Disclosing? How do you say whether a tree item is  
> collapsed?  When it's not expanded? You still need to know if it's  
> expandable in that case,  I'd think. Or I suppose it could see if  
> the tree item was a leaf  or not.  NSAccessibilityDisclosing is an  
> attribute that is true on a row if it's collapsed, and false  
> otherwise. 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  
> Cool. 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.
> EXTSELECTABLE add custom state Needed? Not really needed. -- same  
> as multiselectable in all known cases. Object can extend its  
> selection.
> FLOATING add custom state Not really needed. Object is not clipped  
> to the boundary of the parent (i.e. it does not auto-move with the  
> parent).
> FOCUSABLE FOCUSABLE Check if the focused attribute is settable Can  
> you check that without actually setting it? Yes, there's a nice UA  
> API "accessibilityIsAttributeSettable", that returns true if the  
> attribute is changable. 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.
> HOTTRACKED add custom state Really needed? Not really needed.
> Object's appearance has changed for a mouseover.
> INVISIBLE !VISIBLE Parent can tell if this object is in the  
> VisibleChildren attr 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. The object links to another object.
> MARQUEED ANIMATED (proposed) Same as animated The object is  
> constantly changing and fleeting across the screen.
> 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 tr-state checkbox might be.
> MOVEABLE add custom state
> Object can be moved or dragged around the screen.
> MULTISELECTABLE MULTISELECTABLE has a selectedchildren attr? Will  
> that be present if the container supports multiselection but no  
> children are currently selected? Will that be present if it's a  
> single select container? Hm. There is an API (not specific for UA),  
> that you can use on an outliner/table to see if it supports  
> multiple selections. That way we can find out. Object allows more  
> than one of its children to be selected at the same time.
> NORMAL
>
> Remove this line of the table -- NORMAL is not really a state it is  
> defined as 0, the absence of any other states. Confusing to keep  
> this in. ACTIVE Same as focused? A window is currently the active  
> window, or is an
> active sub-element within a container or table. Includes windows,  
> dialogs, frames, etc. In addition, this state is used to indicate  
> the currently active child of a component such as a list, table, or  
> tree. For example, the active child of a list is the child that is  
> drawn with
>
> a rectangle around it.
> OFFSCREEN !SHOWING Check if we're part of the parent's  
> VisibleChildren attr?
>
> This probably won't work, see explanation to the right. We can be  
> smart with non-UA APIs here, checking if the widget is not visible  
> in the current view. An object is currently not visible and not on-
> screen
> Correction, it's laid out but currently scrolled off. Would be  
> visible if not scrolled off.
> PRESSED PRESSED Really needed? Useful for buttons in a toolbar that  
> show state, such as bold, italic, underline (B I U) buttons.  
> Probably can use value attribute of 0 or 1. Ah. For toggle buttons  
> we should definitely be able to check this with a non-UA API.
> 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...  Can you determine if value attr is settable without  
> trying to set it? Readonly objects can be things like checkboxes or  
> spreadsheet cells (like a sum). We'll use isAttributeSettable on  
> the value. Object is interactive (sensitive) but the contents  
> currently cannot be edited (changed) by the user.
> SELECTABLE SELECTABLE Has a settable Selected attr
> Can you determine if value attr is settable without trying to  
> select  it? 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.
> SELFVOICING add custom state Not needed. Object is self-voiced by  
> the application, so an AT should not speak this object.
> 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? Need this.  
> Important for screen readers to be able to  provide a list of  
> visited or unvisited links in a list. Ok, let's add this. The link  
> object was traversed (visited).
> UNAVAILABLE !ENABLED Same as unfocused or !enabled
>
> Same as unfocused? That means most objects would be greayed out.  
> This is the equivalent of the disabled attribute in HTML.
>
> !Enabled makes sense. Object is grayed out and not available at  
> this time.
>
> ARMED What's the difference from pressed?
> There's an UA action "press" that will execute the action; does not
>
> actually push down the button until the user says "stop". :-)
>
> We're still not clear on what this is, either. The object is armed.  
> Usually used on buttons that have
> been pressed but not yet released, and the mouse pointer is still over
>
> the button.
>
> DEFUNCT Really needed?
>
> Not if you can return errors back. The idea is that the assistive  
> technology may be holding a reference to an object that is no  
> longer active in the application. This happens a lot, as objects  
> are removed from the DOM dynamically or an old page or dialog goes  
> away. For MSAA we just return errors for all calls to it. In ATK  
> this state indicates the object is dead. How is that handled in UA?  
> Interesting... I'll have to investigate this. User interface object  
> corresponding to this object no longer exists.
>
> EDITABLE For text: StaticText role vs Textfield/textarea roles.  
> Also whether the "value" attribute is settable.
>
> How do you find out if it is settable? Do you have to try to set  
> it? The contents of this object can change.
>
> ENABLED Enabled Object is not grayed out and can be interacted with  
> if sensitive.
>
> EXPANDABLE Same as collapsed, and that is has children?  Right idea  
> basically, except that it could be expandable and expanded, so it  
> might not be collapsed. Correction: there's the Disclosing  
> attribute, which means this row is disclosing other rows. 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, or Description attr? 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 Really needed? Yes, needed for XForms and DHTML a11y  
> invalid property. Very useful to tell screen reader users which  
> fields had invalid entry after they've submitted an HTML form. Ok,  
> let's add it. Object is in an invalid state.
>
> INVALID_ENTRY (proposed) There's a "AllowedValues" attribute array...
>
> What about password fields? 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 Just a convenience -- but we should talk about  
> it. 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 Modal (for windows) 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.
>
> OPAQUE
> Object paints every pixel within its rectangular
> region. A non-opaque component paints only some of its pixels,  
> allowing the pixels underneath it to "show through". A component  
> that does not
>
> fully paint its pixels therefore provides a degree of transparency.
>
> REQUIRED We need this one for XForms and DHTML a11y. Very important  
> screen reader usability enhancement. Typically there is a star next  
> to required fields and screen reader user has no idea about them.  
> Let's add it. 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.
>
> SENSITIVE
> Object can be interactive, although it may currently be
> read-only or not enabled (grayed out). STATE_SENSITIVE usually  
> accompanies STATE_ENABLED for user-actionable controls, but may be  
> found in the absence of STATE_ENABLED if the current visible state  
> of the control is "disconnected" from the application state. In  
> such cases, direct user interaction can often result in the object  
> gaining STATE_SENSITIVE, for instance if a user makes an explicit  
> selection
>
> using an object whose current state is ambiguous or undefined.
>
> SHOWING same as visible? Object is visible and on-screen.
>
> SINGLE_LINE textfield role Text object can only contain a single  
> line of text.
>
> STALE
> Index associated with this object has changed since the
> user accessed the object. The information returned for this object may
>
> no longer be synchronized with the application state.
>
> SUPPORTS_TYPEAHEAD (proposed)
> Object implements some form of
> ¨typeahead¨ or pre-selection behavior whereby entering the first  
> character of one or more sub-elements causes those elements to  
> scroll into view or become selected. Subsequent character input may  
> narrow the selection further as long as one or more sub-elements  
> match the string. This state is normally only useful and  
> encountered on objects that implement Selection. In some cases the  
> typeahead behavior may result in full or partial ¨completion¨ of  
> the data in the input field, in which
>
> case these input events may trigger text-changed events from the  
> source.
>
> TRANSIENT
> Object is changing or moving rapidly. An assistive
> technology should not add a property change listener to an object  
> with transient state, as that object will never generate any  
> events. Transient objects are typically created to answer ATK  
> accessibility method queries, but otherwise do not remain linked to  
> the underlying object (for example, those objects underneath lists,  
> tables, and trees, where only one actual UI component does shared  
> rendering duty for all
>
> of the data objects underneath the actual list/table/tree elements).
>
> TRUNCATED
> Object is truncated, such as a numerical value in a spreadsheet cell.
>
> VERTICAL Orientation attr Orientation of this object is vertical.
>
> 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'.
> Retrieved from "http://wiki.mozilla.org/Accessibility/ 
> Comparisons:States"
>

_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK [states]

Håkan Waara
Sorry for flooding the list. HTML mail doesn't seem to work very well.

I attach here my responses to Aaron as a HTML document for anyone  
interested.
_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility

Re_ Mac accessibility comparison to MSAA_ATK [states].html Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK [states]

Aaron Leventhal
And I apologize for using color to indicate my comments. Next time I'll
use a marker like [Aaron: ]
Not too good for an accessibility guy!

- Aaron

Håkan Waara wrote:

> Sorry for flooding the list. HTML mail doesn't seem to work very well.
>
> I attach here my responses to Aaron as a HTML document for anyone
> interested.
> ------------------------------------------------------------------------
>
> _______________________________________________
> dev-accessibility mailing list
> [hidden email]
> https://lists.mozilla.org/listinfo/dev-accessibility
>  
_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK [states]

David hilbert Poehlman
In reply to this post by Håkan Waara
Nice colors.
D
_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility
Reply | Threaded
Open this post in threaded view
|

Re: Mac accessibility comparison to MSAA/ATK [states]

Hans Hillen
In reply to this post by Håkan Waara
Guideline 2. Don't rely on color alone.
Ensure that text and graphics are understandable
when viewed without color.

2.1 Ensure that all information conveyed with color is
also available without color, for example from context or markup.
[Priority 1]

: )


_______________________________________________
dev-accessibility mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-accessibility