diff --git a/core-aam/index.html b/core-aam/index.html index 71c7b8a21..bf383b38a 100644 --- a/core-aam/index.html +++ b/core-aam/index.html @@ -6445,6 +6445,86 @@
+ The computed accessibility properties are a set of platform-independent key/value pairs of strings that represent the states and properties of any accessible object in the accessibility tree. The computed accessibility properties are exposed primarily for the purposes of developer tools, specification conformance, and interoperability testing. +
++ The term accessibility node will be used to refer to a node with the computed accessibility properties defined here. These platform-independent, implementation-defined accessibility nodes are expected to back all of the platform-specific accessible objects that a user agent exposes in supported accessibility APIs. +The tree of accessibility nodes follows the same rules as the accessibility tree and it is an exactly parallel structure to the platform accessibility API trees except where the Core-AAM specifies a difference for a specific accessibility API. +
++ To see if an ARIA state or property should be surfaced, and the name of the key and its expected value, check the "Computed Accessibility Property" row of the tables below. Not all ARIA states and properties will be surfaced in the computed accessibility properties. If a host language feature maps to an ARIA state or property, use the key and value specified here. However, the final value in the accessibility tree can be affected by multiple things, including but not limited to the following: default IDL values for the DOM attribute, default ARIA values when used on specific ARIA roles, and host language features with conflicting semantics, depending on whether the host language overrides the ARIA value. These final computed properties values do not always align with IDL reflection of the ARIA attribute. +
+For both of the following examples, the computed accessibility properties will include `checked: true`.
+ ++ When the ARIA state or property is required on a role but the attribute is missing, undefined, or set to an invalid token, user agents MUST expose the property with the appropriate fallback values for missing required attributes. When an ARIA state or property has a implicit value for role and the attribute is missing, undefined, or set to an invalid token, user agents MUST expose the default value for the role. +
+ ++ When the ARIA state or property does not have a default value other than undefined, is not required on a given role, and is missing, undefined, or set to an invalid token, user agents MUST NOT include it in the computed accessibility properties. When a state or property has a default value other than undefined, is supported but not required on a given role, and is not mapped on any platforms, user agents MUST NOT include it in the computed accessibility properties. If the state or property with the previous conditions is mapped on one or more platforms, user agents MAY include it in the computed accessibility properties. + +
+For the purposes of developer tools, specification conformance, and interoperability testing, the set of Computed Accessibility Properties exposed for an accessible object also includes information about the relationship between accessibility nodes in the accessibility tree. In order to surface this information, the term accessibility node ID is used to refer to an implementation-defined unique ID used as a handle to an accessibility node. (TODO: add something about the stability of this ID? How long it should be available for?) The following keys and values MUST be included in the Computed Accessibility Properties:
++ The accessibility node ID of this accessibility node. +
++ The accessibility node ID of the parent of this accessibility node in the accessibility tree. +
++ A list of accessibility node IDs representing the child nodes of this accessibility node in the accessibility tree. +
+Additionally, other properties besides those derived from ARIA states and properties MUST be exposed in the computed accessibility properties. These include:
++ See computed role. +
+aria-activedescendantaria-activedescendant
+
aria-atomic=truetrue
aria-atomic=falsefalse
aria-autocomplete=inl
>=inline, list, or both
aria-autocomplete=none
>=none
aria-braillelabelaria-braillelabel
aria-brailleroledescriptionaria-brailleroledescription
aria-brailleroledescription
aria-brailleroledescription is undefined or the empty string
aria-busy=truetrue
aria-busy=falsefalse
aria-checked=truetrue
checked: true
+ aria-checked=falsefalse
checked: false
+ aria-checked=mixedmixed
checked: mixed
+ aria-checked is undefinedaria-checked is undefined
checked.
+ aria-colcountaria-colcount
aria-colindexaria-colindex
aria-colindextextaria-colindextext
aria-colspanaria-colspan
aria-controlsaria-controls
aria-current with non-false allow
aria-current with non-false allowed value
aria-current with unrecognize
aria-current with unrecognized value
aria-current is false or
aria-current is false or undefined
aria-describedbyaria-describedby
aria-descriptionaria-description
description: <value> where value is calculated according to the Accessible Name and Description specification
+ aria-detailsaria-details
aria-disabled=truetrue
aria-disabled=falsefalse
copy, move, link, execute, or popup
aria-dropeffect=none (depr
>=none
aria-errormessagearia-errormessage
aria-expanded=truetrue
aria-expanded=falsefalse
aria-expanded is undefinedaria-expanded is undefined
aria-flowtoaria-flowto
aria-grabbed=truetrue
aria-grabbed=falsefalse
aria-grabbed is undefinedaria-grabbed is undefined
aria-haspopup=truetrue
aria-haspopup=falsefalse
aria-haspopup=dialogdialog
aria-haspopup=gridgrid
aria-haspopup=listboxlistbox
aria-haspopup=menumenu
aria-haspopup=treetree
aria-hidden=true on unfocused
>=true on unfocused element
aria-hidden=true
>=true when element is focused or fires an accessibility event
aria-hidden=falsefalse
aria-invalid=truetrue
aria-invalid=falsefalse
aria-invalid=spelling=spelling or grammar
aria-invalid with unrecognize
aria-invalid with unrecognized value
aria-keyshortcutsaria-keyshortcuts
aria-labelaria-label
label: <value>
+ aria-labelledbyaria-labelledby
label: <value> where value is calculated according to the Accessible Name and Description specification.
+ aria-level on non-headingaria-level on non-heading
level: <value>
+ aria-level on headingaria-level on heading
level: <value>
+ aria-live=assertiveassertive
aria-live=politepolite
aria-live=offoff
aria-modal=truetrue
aria-modal=falsefalse
aria-multiline=truetrue
multiline: true
+ aria-multiline=falsefalse
multiline: false
+ aria-multiselectable=true=true
aria-multiselectable=false<
>=false
aria-orientation=horizonta
>=horizontal
orientation: horizontal
+ aria-orientation=vertical=vertical
orientation: vertical
+ aria-orientation is undefinedaria-orientation is undefined
orientation.
+ aria-ownsaria-owns
aria-placeholderaria-placeholder
aria-posinsetaria-posinset
aria-pressed=truetrue
pressed: true
+ aria-pressed=mixedmixed
pressed: mixed
+ aria-pressed=falsefalse
pressed: false
+ aria-pressed is undefinedaria-pressed is undefined
pressed.
+ aria-readonly=truetrue
aria-readonly=falsefalse
aria-readonly is unspeci
aria-readonly is unspecified on gridcell
aria-relevantaria-relevant
aria-required=truetrue
required: true
+ aria-required=falsefalse
required.
+ aria-roledescriptionaria-roledescription
roledescription: <value>
+ aria-roledescription is und
aria-roledescription is undefined or the empty string
roledescription.
+ aria-rowcountaria-rowcount
aria-rowindexaria-rowindex
aria-rowindextextaria-rowindextext
aria-rowspanaria-rowspan
aria-selected=truetrue
selected: true
+ aria-selected=falsefalse
selected: false
+ aria-selected is undefinedaria-selected is undefined
selected.
+ aria-setsizearia-setsize
aria-sort=ascendingascending
aria-sort=descendingdescending
aria-sort=otherother
aria-sort=nonenone
aria-valuemaxaria-valuemax
aria-valueminaria-valuemin
aria-valuenowaria-valuenow
aria-valuetextaria-valuetext