Support aria-keyshortcuts
Categories
(Core :: Disability Access APIs, enhancement, P3)
Tracking
()
People
(Reporter: Jamie, Unassigned)
References
(Blocks 1 open bug)
Details
Comment 1•6 years ago
|
||
Reporter | ||
Comment 2•5 years ago
|
||
Ug. This is really tricky.
- Accessible::AccessKey and Accessible::KeyboardShortcut both return a KeyBinding, not a simple string. So, if we wanted to use one of these, we'd have to convert the object attribute value first.
- ATK maps accesskey to atk_action_get_keybinding, but aria-keyshortcuts to an object attribute.
- UIA maps accesskey to AccessKey, but aria-keyshortcuts to AcceleratorKey.
Joanie, you noted that for ATK, you can't (and thus don't) use atk_action_get_keybinding for aria-keyshortcuts. Can you explain why this is? Just trying to get a full understanding of the mappings before I figure out how to do this for Gecko.
Reporter | ||
Comment 3•5 years ago
|
||
Other notes:
- For MSAA, we first try AccessKey and then KeyboardShortcut. We probably want aria-keyshortcuts to override accesskey. That means we can't expose aria-keyshortcuts as KeyboardShortcut, since accesskey would override it for MSAA.
- Chrome exposes aria-keyshortcuts via MSAA, overriding accesskey if present. It also exposes the keyshortcuts object attribute for both accesskey and aria-keyshortcuts.
Comment 4•5 years ago
|
||
Jamie: The actions exposed via AtkAction are things which an AT should be able to identify and also to invoke via the AtkAction interface such as clicking, pressing, expanding, activating, and -- unique to Gecko -- showing the longdesc.
In the case of aria-keyshortcuts, the spec says the keyshortcut can be to activate or to give focus to the widget. But we don't know which it is. That makes it harder to provide the reliably-identifiable-to-ATs aspect of an accessible action.
Also, unless an implementor is going to cause atk_action_do_action() to simulate/generate the keyboard event so that the author's code gets called, it provides no way for an AT to invoke it.
In addition, we're already getting it for "free" via object attribute, so it's easy enough for Orca to grab it that way -- even when the implementor hasn't added explicit support. So why insist on getting it via AtkAction? <insert shrug here>
That said, if you have solutions for these issues and plan to implement them, I could update Orca's code.
Updated•2 years ago
|
Comment 5•2 years ago
|
||
I'll note here that the AXAPI mapping has been updated to AXKeyShortcutsValue: https://github.com/w3c/core-aam/pull/140/files
Description
•