Re: ACTION-1493 Spec text for section 7.6 "State and Property Attribute Processing"

Revising my proposal as I discovered there are definitions of 
"supported" and "required" states and properties that it would be useful 
to reference.

ACTION-1493 relates to ISSUE-646 regarding the default value for 
supported and required states and properties.  See the fourth paragraph, 
repeated below, at:
   http://www.w3.org/TR/wai-aria/#state_property_processing

<change>
When WAI-ARIA roles are used, supported states and properties that are 
not present in the DOM are treated according to their default value, 
unless they are required. For token states and properties, an attribute 
value that is a zero-length string ("") also corresponds to the default 
value. Therefore, user agents SHOULD treat token state and property 
attributes with a value of "" the same as they treat an absent 
attribute. Normally this corresponds to the default value (usually 
"undefined"), but if it is a required attribute, they signal an error 
(because a null value is the same as failing to provide the required 
attribute).
</change>

<to>
WAI-ARIA roles have associated states and properties that are further 
qualified as "supported" or "required".  For example, the combobox role 
<em>supports</em> the aria-autocomplete property: a given combobox might 
or might not implement auto completion.  However, the combobox role 
<em>requires</em> an aria-expanded state since it has a popup listbox as 
one of its children.  The value of aria-expanded indicates whether the 
listbox is currently open.

When WAI-ARIA roles are used, supported states and properties that are 
not present in the DOM are treated according to their default value.  
Authors MAY omit a value if the default value is sufficient -- see the 
section "Supported States and Properties" 
(http://rawgit.com/w3c/aria/master/aria/aria.html#supportedState). For 
example, a combobox with no aria-autocomplete attribute uses the default 
value "none", meaning the combobox does not provide auto completion.

In contrast, required states and properties that are absent are an 
author error -- see "Required States and Properties" 
(http://rawgit.com/w3c/aria/master/aria/aria.html#requiredState). 
Missing required states and properties have an implicit neutral value 
that is not necessarily their default value.  For instance, the default 
value of aria-expanded is undefined, meaning neither expandable nor 
collapsible.  However, its implicit value is "false" when used with the 
combobox role, meaning collapsed.  Using the default value or 
aria-expanded in this case would result in a combobox that is not 
expandable, but that is incoherent .  The characteristics table 
associated with each WAI-ARIA role has an "Implicit Value for Role:" 
entry that specifies the value to use for that role when a required 
state or property is missing.  (Editorial Note:  There are roles whose 
required states/properties do not list an implicit value, e.g., 
slider/aria-valuenow.  Is this a bug?)

Sometimes states and properties are present in the DOM but have a 
zero-length string ("") as their value.  This is equivalent to their 
absence.  User agents SHOULD treat state and property attributes with a 
value of "" the same as they treat an absent attribute.  For supported 
states and properties this corresponds to their default value.  For 
required states and properties, it signals an author error, and the 
implicit value for the role is used.
</to>

-- 
;;;;joseph.

'Array(16).join("wat" - 1) + " Batman!"'
            - G. Bernhardt -

Received on Friday, 17 October 2014 17:03:24 UTC