Update: Numeric access keys now work in Firefox 18.104.22.168, which is available through auto-update.
Firefox 2.0 uses Shift+Alt as the keystroke combination to invoke access keys. On the surface, this appears to be a great idea, as it avoids clashing with the shortcut keys used for the browser. Unfortunately, the new behaviour has been poorly implemented and breaks all websites that have implemented access keys using numeric values, as access keys specified with numeric values cannot be accessed in Firefox 2.0.
Author: Gez Lemon
Access keys offer a convenient mechanism for people with motor skill disabilities, such as Cerebral palsy, Parkinson's disease, Alzheimer's disease, etc., to access links or interface elements without having to cycle through all of the other links and interface elements in the content. The access key is specified in the markup using the
<a href="faq.html" accesskey="F">frequently asked questions</a>
Shortcut Key Clashes
The way the access key is triggered depends on the browser and operating system, but access keys are generally considered to be problematic, as some browser manufacturers have implemented them in a way that clashes with the shortcut keys for the browser itself. For example, on a Windows platform, Internet Explorer 6.0 and Firefox 1.5 both use the alt key to trigger the access key. In the example above, that would mean that pressing Alt+F would not open the File menu as expected with those browsers, but instead activate the link; Internet Explorer just gives focus to the link, rather than activating it. There is also the issue of discoverability, as most browsers don't provide a convenient mechanism of revealing which access keys have been provided by the author.
To help get around this problem, the UK government suggest a set of access key assignments, so that at least people visiting UK public sector websites have some consistency in activating them. The following is the list of access key assignments as part of the e-Government Interoperability Framework (e-GIF) recommendations:
- S — Skip navigation
- 1 — Home page
- 2 — What's new
- 3 — Site map
- 4 — Search
- 5 — Frequently Asked Questions (FAQ)
- 6 — Help
- 7 — Complaints procedure
- 8 — Terms and conditions
- 9 — Feedback form
- 0 — Access key details
A Broken Solution
In an effort to avoid access keys colliding with their own browser shortcut keys, Firefox 2.0 introduced a second modifier key. To activate an access key in Firefox 2.0 on a Windows operating system is now Shift+Alt+key. For example, activating an access key with an
accesskey attribute value of
F would be Shift+Alt+F. This is good in that it no longer clashes with the browser's shortcut key — pressing Alt+F will activate the File menu item even if there is an
accesskey attribute value of
F present on the page.
There is a huge problem, though, as numeric access keys do not work at all in Firefox 2.0. That means that the functionality of all websites that have been using numeric values for access keys will no longer work in Firefox 2.0, including all UK public sector websites following e-GIF recommendations. Numeric access keys were always an issue with Firefox, as they didn't distinguish between the number originating from the keyboard or the numeric keypad. The numeric keypad can be used by people wishing to use characters not available on some keyboards. For example, if the keyboard doesn't have an e with acute (é), the user could hold down the Alt key, and type 1 3 0 on the numeric keypad. This meant that when a user was in an edit field, they could suddenly find themselves on another page if they inadvertently typed an extended character on the keypad in Firefox if a digit they typed whilst holding down the Alt key happened to be assigned as an access key. Internet Explorer never suffered from this problem, as they distinguished between the keyboard and the number pad; the keyboard was required to trigger the access key, which makes sense as it's only possible to type extended characters on the numeric keypad.
The problem with numeric access keys and Firefox 2.0 is that the Shift modifier uses the alternate upper characters on the keyboard. For example, pressing Shift+1 on a UK keyboard would yield an exclamation mark (!). An exclamation mark may be used as an access key in Firefox 2, but not the digit
1. The issue was filed as a bug before Firefox 2 was officially released.
The keystroke combination to activate an access key is also cumbersome. It would take someone with considerable dexterity to be able to hold down Shift+Alt+P with one hand, which is particularly problematic when you consider the groups that primarily benefit from access keys, although sticky keys offered by the operating system will help. Another issue to be aware of is that Shift+Alt is used to change the keyboard layout. My fingers have slipped when trying to execute the access key combination, and I later realised that I have toggled the keyboard to a US keyboard, and have had to revert back to the UK layout using Shift+Alt.
A Real Solution
The solution to this problem isn't to revert back to the old model used by Firefox, as that model was also broken. Firefox would be well-advised to follow Opera Software's lead on this issue, as Opera is, without a shadow of doubt, way ahead of their competitors where access keys are concerned. In Opera, pressing shift+Esc lists all access keys used on the page, and can be activated from that point using the single key alone. Opera also allows the keystroke combination to be configured by the user, making it possible to provide a single modifier key to invoke access keys, rather than the default shift+Esc.
Considering Firefox are making a significant contribution to the Roadmap for Accessible Rich Internet Applications, it's disappointing that they will make many websites a lot more difficult to use for people with mobility problems. The problems with access keys are very well-known in the accessibility community, and it's a shame that Firefox didn't come up with something a little better than an implementation that fixed an issue developers have been working around, and broke the web for some of their users.