I therefore interpret the absence of the "required" key to have a third meaning, namely, prohibited; that is, that a UI element with the designated role:subrole should never return a value for the specified attribute. When I look at the list of 29 items (see below), this seems like a reasonable interpretation for only half of them. For example, I can see why Apple would, as a matter of policy, prohibit help tags for common UI elements such as the close button and the zoom button, which everybody should understand without need of an intrusive help tag. In fact, I think Apple's User Interface Guidelines say so.
I have put an asterisk in front of the other half of the items, where I'm not so sure the designated attribute should be prohibited for the designated role:subrole. One of them, item 256, makes no sense at all, because, while indicating that the AXFocused attribute is forbidden for the AXDisclosureTriangle role (which is sensible), the AXFocused attribute is nevertheless marked as settable!!! Other questionable items are items 1215, 1239, 1287, 1311 and 1332, indicating that all AXWindow roles are forbidden to have an AXTitleUIElement attribute. In fact, most windows do have a title UI element attribute, namely, the static text element in the window's title bar. And in the Finder and all other applications I have tested, most windows do in fact have an AXTitleUIElement for their windows. So there is clearly something wrong with the role-attributes array.
Is there a file somewhere that explains how to interpret the current version (schema_version 1) of the AccessibilityDefinitions.plist file? Can somebody explain the items I have asterisked? Or set me straight on the meaning of an omitted "required" key?
The following items in the role-attributes array omit the "required" key, and therefore might be interpreted as prohibiting the attribute for the array:
56 (AXHelp attribute of AXButton:AXCloseButton role),
112 (AXHelp attribute of AXButton:AXMinimizeButton role),
124 (AXHelp attribute of AXButton:AXSortButton role),
137 (AXHelp attribute of AXButton:AXToolbarButton role),
149 (AXHelp attribute of AXButton:AXZoomButton),
*186 (AXChildren attribute of AXColorWell role),
**256 (AXFocused attribute of AXDisclosureTriangle role) (But it's marked settable!?!)
406 (AXTitleUIElement attribute of AXGroup role),
458 (AXHelp attribute of AXImage:AXTextAttachment role),
466 (AXUrl attribute of AXImage:AXTextAttachment role),
614 (AXHelp attribute of AXMatte role),
637 (AXTitle attribute of AXMenuBar role),
*688 (AXLinkedUIElements of AXOutline role),
984 (AXChildren attribute of AXStaticText role),
1052 (AXChildren attribute of the AXTextArea role),
1117 (AXHelp attribute of AXTextField:AXSearchField role),
1118 (AXInsertionPointLineNumber of AXTextField:AXSearchField role),
1143 (AXHelp attribute of AXTextField:AXSecureTextField role),
*1174 (AXFocused attribute of AXToolbar role),
*1212 (AXGrowArea of AXWindow role),
*1215 (AXTitleUIElement of AXWindow role),
*1236 (AXGrowArea of AXWindow:AXDialog role),
*1239 (AXTitleUIElement attribute of AXWindow:AXDialog role),
*1260 (AXGrowArea attribute of AXWindow:AXFloatingWindow role),
*1284 (AXGrowArea attribute of AXWindow:AXStandardWindow role),
*1287 (AXTitleUIElement attribute of AXWindow:AXStandardWindow role),
*1308 (AXGrowArea attribute of AXWindow:AXSystemDialog role),
*1311 (AXTitleUIElement attribute of AXWindow:AXSystemDialog role),
*1332 (AXTitleUIElement attribute of AXWindow:AXSystemFloatingWindow role)
--
Bill Cheeseman -
email@hidden