Prior to IE8, Alt + Access Key focused on the element, but required ↵ Enter to be pressed in order to activate the element. This is still the case for hyperlinks in version 9.
Alt+D cannot be used as an access key in IE 7 or above.[3]
The modifier keys are released before the regular key is pressed. Once the modifier key is released, the browser displays the full list of access keys and their actions, and the user can hit the desired key.
If multiple identical accesskeys are assigned within the same document, IE will tab through them on each keypress (IE will tab backwards if ⇧ Shift is pressed as well). This way, elements can be logically grouped in various accesskey rings for easier navigation. IE 4.0 only supported letters of the English alphabet as accesskeys. Firefox 2.0 will activate the last of a group of elements assigned the same accesskey.
Specifying access keys
Access keys are specified in HTML using the accesskey attribute. The value of an element’s accesskey attribute is the key the user will press (typically in combination with one or more other keys, as defined by the browser) in order to activate or focus that element. Though the accesskey attribute sets the key that can be pressed, it does not automatically notify the user of the bound access key. One convention is for the page author to show the access key value by using the <u> tag to underline the letter in the link’s text corresponding to the accesskey assigned. For the link below, a user would press Alt+H on Internet Explorer, Ctrl+H on a Mac (the command key can give undesired results) and ⇧ Shift+Esc+H on Opera to be directed to index.html.
Emphasize <em> isn’t necessary, but can be useful to the user. It helps them identify which key to press to navigate to where they want to. Another possible way of displaying which accesskeys do what is to create a page with all the accesskeys displayed. Or the webmaster could do both. Another option for the end user is to install a user script such as FireFox Access Bar for GreaseMonkey.
History
Access keys were introduced to HTML in 1999 and quickly achieved near-universal browser support.
Conflict with browser and screen reader controls
Many browsers define their own keyboard shortcuts, which are used to control the browser itself: for instance, several browsers on Windows use Alt+D to focus the URL bar. Some initial implementations used the same modifier keys for access keys: for instance, accesskey="D" would also assign Alt+D, resulting in one or the other of the meanings being unavailable.
In the summer of 2002, a Canadian Web Accessibility[4] consultancy did an informal survey to see if implementing accesskeys caused issues for users of adaptive technology, especially screen reading technology used by blind and low vision users. These users require numerous keyboard shortcuts to access web pages, as “pointing and clicking” a mouse is not an option for them. Their research showed that most key stroke combinations did in fact present a conflict for one or more of these technologies, and their final recommendation was to avoid using accesskeys altogether.
Subsequently, browsers changed their modifier keys to avoid the conflict, as can be seen in the table above: typically, Alt+⇧ Shift on Windows, and Ctrl + ⌥ Opt on Mac.
<access> element
In XHTML 2, a revised web authoring language, the HTML Working Group of the World Wide Web Consortium deprecated the accesskey attribute in favor of the <access> element defined in the XHTML Role Access Module. However, XHTML 2 has been retired in favor of HTML5, which (as of August 2009) continues to permit accesskey attributes, and does not define the <access> element type.[5]
Use of standard access key mappings
In 2004, a standard emerged using numbers, which promotes consistency for users, and enables the increased predictability of keyboard shortcuts on different sites. These include, for example, 1 to go to the homepage, 0 for search, / for contact, and others..
Ten years later, in 2014, an updated and more comprehensive standard using both letters and numbers was released [6] in order to breathe new life into browser access key standardization efforts.