- From: Birkir Gunnarsson <birkir.gunnarsson@deque.com>
- Date: Thu, 11 Jun 2015 08:36:53 -0400
- To: <chaals@yandex-team.ru>, "'Dominic Mazzoni'" <dmazzoni@google.com>, "'John Foliot'" <john.foliot@deque.com>, "'HTML Accessibility Task Force'" <public-html-a11y@w3.org>
- Cc: <public-pfwg@w3.org>
- Message-ID: <002401d0a443$4d57fb00$e807f100$@deque.com>
A few thoughts: 1. aria-kbdshortcuts = aria-keys (the other is just too long and spelling is too obscure). 2. Why do we restrict ourselves to only one non-modifier key? I am thinking of Voiceovers right/left arrow pressed simultamiously to to switch modes, I like the idea of being able to use arrow keys, easy operation (as opposed to trying to execute say, ctrl-alt-shift-q which causes hand cramping). 3. (probably premature), what about custom touch gestures (keyboard equivalent on touch-screen devices)? Anything we can do about that as part of this attribute? Also +1 to Charles for the following: " .authors are notoriously bad at getting this right. If there were browser-defined behaviour as there is for accesskey (although most browsers made dumb decisions about exactly what to define) the browser would be able to provide discoverability in a standard way to all users. That seems a vastly superior approach. " Discoverability for keyboard only users is "key" to successful keyboard operability. Adding an ARIA attribute primarily aimed at assistive technologies does not really address that issue. If we think the accesskey attribute is not usable because different browsers have slightly differing keyboard behavior implementation, imagine how that compares to every author defining keyboard operation for his/her own website (sometimes without full testing). This does not address the fundamental problem, which is discoverability, not only by assistive technologies but also by keyboard only users. I can totally see the use case for this in navigating within complex widgets such as with roles menu, listbox, radiogroup, slider, spinbutton and toolbar, but I think revisiting the accesskey attribute through user implementation guidelines, making sure it is discoverable for keyboard only users as well as users of assistive technologies is a more beneficial avenue for simpler roles such as links, buttons and a way to make non-focusable simple controls operable via keyboard. Cheers From: chaals@yandex-team.ru [mailto:chaals@yandex-team.ru] Sent: Thursday, June 11, 2015 7:13 AM To: Dominic Mazzoni; John Foliot; HTML Accessibility Task Force Cc: public-pfwg@w3.org Subject: Re: ACTION-1642: New aria-kbdshortcuts property (for Issue 711) Some thoughts on this: 10.06.2015, 18:09, "Dominic Mazzoni" <dmazzoni@google.com <mailto:dmazzoni@google.com> >: Answers to questions raised by both Joseph and Stefan: * The specified keyboard shortcut would activate a control, not focus it. If it's a button, it implies that pressing that shortcut clicks on the button. What if it is an input element - date picker, search boox, etc? In some cases, being able to focus is entirely reasonable. * Adding this attribute to an element does not change any browser behavior. Adding role=button to an element doesn't make it a button, it just informs AT that it acts like a button. Similarly, adding aria-kbdshortcuts to an element doesn't make those keyboard shortcuts function, it just informs AT that those keyboard shortcuts are available. It's up to the author to implement it. * Discoverability: AT such as screen readers could now announce the shortcut for a button or menu item upon focusing it, just like when a user explores a native menu item in a desktop app. It is still totally up to the author how to expose this keyboard shortcut to non-AT users. This is a problem, since authors are notoriously bad at getting this right. If there were browser-defined behaviour as there is for accesskey (although most browsers made dumb decisions about exactly what to define) the browser would be able to provide discoverability in a standard way to all users. That seems a vastly superior approach. * Remember, lots of web sites *already* have keyboard shortcuts that activate controls and menu items. This spec simply provides a consistent way to provide this information to AT. Otherwise, authors have to include this information in a control's label or description. Agreed. * Providing the keyboard shortcut in a standard format allows the AT to not only expose it to the user, it allows the AT to parse it, transform it, or act on it. For example, a screen reader could discover that a key conflicts with a built-in key and *automatically* suggest using the passthrough key. Or, other AT could let the user press one modifier key and then highlight all commands that can be activated using that modifier. These are not *primary* use cases, they are simply arguments in favor of making this a standardized, parseable attribute as opposed to just free text. Agreed. For what it is worth, any accesskey implementation that doesn't do this isn't particularly good. * How does this differ from accesskey? So many ways: - Accesskeys have different modifiers in every browser. See the Wikipedia page to get an idea of how confusing it is for web developers and users: http://en.wikipedia.org/wiki/Access_key - Accesskeys don't even have the same *behavior* in all browsers - some just focus, others activate. Both of those things are features. Different browsers work in different ways and serve different users. Insisting that all interfaces are the same is an anti-pattern. Consistency is indeed helpful, but there are different things to be consistent with - the same browser on a different device? A different browser on the same device? Native applications on windows desktops? - Accesskeys don't let you choose the modifier keys. Setting accesskey='h' means to press Alt+H in IE, there's no way to make a shortcut like Ctrl+H, Alt+Shift+H, or just 'H' with no modifier keys. This is a bug in HTML5, and in browser implementations. (As far as I know, Presto-based Opera was the only browser that got this right in a native implementation ;( ). - Web developers already have lots of other ways to support keyboard shortcuts in their web apps. Accesskeys are the only ones that are currently exposed to screen readers, but they're very limited, so web developers don't actually use them much. The fundamental problem is that they are limited by poor browser implementation. This proposal allows web developers to *implement* keyboard access however they choose, and simply *expose* the information about those shortcuts to AT in a consistent way. But makes it hard to expose the same features to most users, who don't connect via the accessibility API - including probably most users who rely on keyboard access. It is also a bad idea to have every developer try to write their own interface - it makes building consistency a nightmare. So if there is a way that *reduces* the desire of authors to specify the details of the UI they are adding, knowing that browsers will make it work, that would provide a big improvement in accessibility of the platform. * If a control has both accesskey and aria-kbdshortcuts, I think aria-kbdshortcuts should be the only one exposed to AT, just like aria-label overrides alt. * I agree about the concern about invisible controls, but I don't see a good alternative. If a control is invisible, it's not exposed to AT at all. If a web author wants a keyboard shortcut to be available even when its associated control is hidden, like a menu item, they should use CSS to hide the item in such a way that leaves it accessible to AT, such as by moving it offscreen or changing its z-index. It should be possible to assign accelerated access to e.g. a javascript function. While this may have a visual representation, in the mainstream use cases that are likely to power real uptake it quite possible doesn't. I worry that this proposal risks re-inventing accesskey, with some of the same mistakes and some special new ones. I think we could more readily fix accesskey to solve both sets of problems, but in any event I think it is a very bad idea to simply start down the path as if we had no knowledge or experience. -- Charles McCathie Nevile - web standards - CTO Office, Yandex chaals@yandex-team.ru <mailto:chaals@yandex-team.ru> - - - Find more at http://yandex.com
Received on Thursday, 11 June 2015 12:37:25 UTC