Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Core-AAM: Need to verify, expand upon, and/or correct AX API aria-activedescendant exposure #10

Open
jnurthen opened this issue May 21, 2018 · 4 comments

Comments

@jnurthen
Copy link
Member

From @joanmarie on June 29, 2017 15:49

The Core AAM 1.1 and 1.0 both state that the mapping of aria-activedescendant on AX API is:

array AXSelectedRows contains pointer to active descendant node

But the ARIA Spec 1.1 and 1.0 both state that aria-activedescendant is supported on roles which might lack rows (e.g. tablist and toolbar).

Question 1: Is this really the correct mapping?
Question 2: Is it unconditional, or is it only for accessible elements which have rows?

With respect to Question 2, a quick grep through the WebKit accessibility code seems to suggest that not every role which supports aria-activedescendant exposes the active descendant node via AXSelectedRows. So I'm guessing the answer to Question 2 is "no."

Unless the answer to Question 1 is "no," what should implementors do when the active descendant is a descendant of a row? For instance what if the active descendant is a single cell within a grid? Should the user agent point to the parent row (because the property is called AXSelectedRows)? Or to the cell that is the active descendant (so VoiceOver doesn't have to examine the entire row looking for the appropriate cell)?

This mapping strikes me as one in need of clarifying language and/or correction.

James: Assigning this one to you. Please and thank you in advance!

Copied from original issue: w3c/aria#598

@jnurthen
Copy link
Member Author

From @cookiecrook on June 30, 2017 4:12

AXList, AXMenuBar, and AXMenu will expose aria-activedescendant as NSAccessibilitySelectedChildrenAttribute

AXOutline and AXTable expose it as NSAccessibilitySelectedRowsAttribute

@jnurthen
Copy link
Member Author

From @joanmarie on August 1, 2017 12:24

Thanks @cookiecrook! That covers the following ARIA roles:

  • grid
  • listbox
  • menu
  • menubar
  • tree
  • treegrid

But the following ARIA roles (which I've grouped according to your platform's mappings) also support aria-activedescendant:

  • AXComboBox: combobox
  • AXGroup: application, group
  • AXIncrementor: spinbutton
  • AXRadioGroup: radiogroup
  • AXRow: row
  • AXTabGroup: tablist
  • AXTextField: textbox, searchbox
  • AXToolbar: toolbar

Which of the above platform roles have a direct mapping for aria-activedescendant, and what is that mapping?

Thanks again!

@jnurthen
Copy link
Member Author

From @joanmarie on September 13, 2017 22:34

I think we're going to need to postpone this one until ARIA 1.2. There are too many items for which we need the platform mappings. And a quick test case I made to verify that the aria-activedescendant-referenced option within a listbox (AXList) was exposed as NSAccessibilitySelectedChildrenAttribute failed.

In addition, aria-activedescendant is NOT new to ARIA 1.1. If it were, then we'd need the mappings for macOS in order to test/verify implementation on that platform. Because it's not, having the correct per-role mappings is arguably a very-nice-to-have and would improve the technical accuracy of the Core AAM for macOS. But we don't want to hold up the Rec-track process due to its absence. "Living Standard" anyone? 😉

@jnurthen
Copy link
Member Author

From @cookiecrook on September 14, 2017 10:30

You should consider listing some example issues as justification for the "living standard" issue you filed on the Process project. This may be one good example. Particularly the fact that we know we are shipping the Core-AAM CR with incomplete and/or inaccurate information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants