WebAIM - Web Accessibility In Mind

E-mail List Archives

Re: "Safe" shortcut keys


From: John Foliot
Date: Feb 10, 2009 3:25PM

Christophe Strobbe wrote:
> John,
> At 20:58 5/02/2009, John Foliot wrote:
> >http://www.wats.ca/show.php?contentid=43
> What is your opinion on Gez Lemon's "User-Defined Access Keys":
> <http://juicystudio.com/article/user-defined-accesskeys.php>; /
> Best regards,
> Christophe

The right idea, and much better - it puts the final control in the hands
of the person most appropriately situated to make a workable decision on
mapping shortcut keys inside the user-interface. When I first compiled
that list however, solutions such as Gez's did not exist, and still today
I see too many instances of accesskey with built in conflicts that need
not exist.

The only on-going issue is that to be able to implement this type of
solution, the end user needs to be instructed on what/how, and if I recall
correctly, custom mapping needs to be implemented on a site-by-site basis
- so it does not address the learning issue associated to accesskeys. (How
many sites are so often visited that having onboard accesskey mappings is
really needed? With built-in keyboard shortcuts that allow for inter-page
navigation [list of headings for example] native to screen reading
technology, I suspect very, very few -

Ideally this type of functionality should be native to the user-agent (in
fact sort of is inside of Opera - I wonder if Opera can now map to ARIA
@role landmarks - hmmmm....), so that end users could map their own
shortcut keys to appropriate functions. I had long ago argued that
instead of mapping to any keys, that the hooks be exposed to the DOM and
the mapping function reside inside the UA. Originally the aria @role
attribute was my suggestion (http://www.wats.ca/show.php?contentid=47),
back when XHTML2 was talking about adding a new element (access) along
with the redundant and IMHO useless/stupid @key attribute. My feelings
are not really that different today, and with ARIA work progressing at a
rapid rate, the functionality should emerge within the browsers natively,
and @accesskey given a proper burial.

(I have also seen a JavaScript type function which allows for remapping as
well, although I prefer the server-side script solution for all of the
reasons why server-side is better than client-side <grin>.)