Re: Finalizing an Issue-204 CP

On Tue, Apr 24, 2012 at 10:47 PM, Janina Sajka <janina@rednote.net> wrote:
>> Browsers (SHOULD NOT) create accessibile objects in the accessibility API tree.  Browsers (MAY | SHOULD) flatten the text children to create a plain-text string to fill in the name and description properties of the referring object.
>>
> Unfortunately, that makes it sound as though there's a choice to have
> flat string, or semantic rich. We need to keep clarity that the APIs
> constrain what we can, and cannot do.

I agree it's important to set clear conformance requirements for user agents.

It's also important not to repeat conformance requirements, especially
if we're going to misstate them as above ("text children").

The WAI-ARIA section already says: "User agents are required to
implement ARIA semantics on all HTML elements, as defined in the ARIA
specifications" and defines @hidden to have the strong native semantic
of aria-hidden true.

    http://dev.w3.org/html5/spec/wai-aria.html#wai-aria

So I suggest you say something like:

"User agents must not render hidden elements except as required by
ARIA processing, for example when calculating accessible names and
descriptions for other elements."

A fly in the ointment is what do about markup like:

  <div hidden aria-hidden="false">
    <a href="example.com">Link</a>
  </div>

Should the link get exposed as an accessible object or not?

WAI ARIA says: "When WAI-ARIA states and properties correspond to host
language features that have the same implicit WAI-ARIA semantic, it
can be particularly problematic to use the WAI-ARIA feature. If the
WAI-ARIA feature and the host language feature are both provided but
their values are not kept in sync, user agents and assistive
technologies cannot know which value to use. Therefore, to prevent
providing conflicting states and properties to assistive technologies,
host languages MUST explicitly declare where the use of WAI-ARIA
attributes on each host language element conflicts with native
attributes for that element. When a host language declares a WAI-ARIA
attribute to be in direct semantic conflict with a native attribute
for a given element, user agents MUST ignore the WAI-ARIA attribute
and instead use the host language attribute with the same implicit
semantic."

Assuming we *never* want to allow hidden elements to be exposed as
objects in the accessibility tree, I guess we need to add something
like:

"When the hidden attribute is specified on an element, user agents
MUST ignore any aria-hidden property set false on the same element for
the purposes of ARIA processing as they are in direct semantic
conflict."

--
Benjamin Hawkes-Lewis

Received on Wednesday, 25 April 2012 06:23:44 UTC