Skip to content

A generic element (with aria-live) intervening with the parent/descendant relationship. #2423

@giacomo-petri

Description

@giacomo-petri

I was checking one of the Failed examples in the ACT Rules about "ARIA required context role" (Failed example 3). I'm unsure about the expected violation of the acc parent/descendant relationship in the following case:

<div role="list">
	<div aria-live="polite">
		<div role="listitem">List item 1</div>
		<div role="listitem">List item 2</div>
	</div>
</div>

The accessibility parent si defined as:

The accessibility parent of a DOM element is the parent of the corresponding accessible object in the accessibility tree. In terms of the DOM, the accessibility parent is one of the following:

  • The DOM parent of the element.
  • The DOM ancestor of the element with only elements of role generic or none intervening.
  • A DOM element with aria-owns set to the DOM ID of the DOM element in question.
  • A DOM element with aria-owns set to the DOM ID of an ancestor of the DOM element in question, with only elements of role generic or none intervening.

So, it looks like the code above is valid.

On the other hand, the generic role states:

However, unlike elements with role presentation, user agents expose generic elements in accessibility APIs when permitted accessibility attributes have been specified. User agents MAY otherwise ignore generic elements if such permitted attributes have not been specified.

so, the generic element with aria-live="polite" is exposed. I don’t believe this impacts the validity of the code above, but I’d appreciate confirmation.

Last, but not least, in Presentational Roles Conflict Resolution:

If an element has global WAI-ARIA states or properties, user agents MUST ignore the none/presentation role and instead expose the element's implicit role.

we have a generic element with a global property, causing the UA to ignore the none role and expose the implicit role (which is still none). This shouldn’t impact the validity of the code.

Thoughts?

Thanks

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions