The accesskey attribute works because it has become a standard. Assistive tools like JAWS (the screen reader) use accesskeys to help navigate. JAWS, for example, will read the accesskey letter, to let the person browsing the page know what that accesskey is.
The accesskey attribute also works because it is very easy to include on a page. With just one simple attribute, a Web developer can make a link or form field infinitely easier to use.
Using accesskey for accessibility doesn't work for several reasons:
- The characters that are used
This is the biggest problem with accesskey. The Web developer can use an accesskey character that is already in use by the file system or the Web browser. This results in unexpected behavior. For instance, if you're used to Alt-F opening your "File" window, it would be very frustrating if it took you to a form field or opened a new Web page. - Finding out what character is used
Even if you use characters that are not regularly used by the operating system or Web browser, it can be very difficult to figure out what character is the hotkey. Most browsers don't provide any information to the readers about what accesskeys are in use on a page. - Too many can overwhelm a page
Many developers, when they learn of this attribute, put it on every link and form field. This can completely overwhelm people using the page. - Web browsers don't universally support the attribute
Support is getting better, but it's still not 100%. And those browsers that do support the attribute do different things. For instance, one browser might target a link when the accesskey is pressed, while another might open the link.
Luckily, most of the issues with using accesskey can be solved if you're careful. You should only use accesskeys for the most important links and form fields on the page. For instance, put an accesskey on the first form field - your readers can tab through the rest once they get there. And include accesskeys on the homepage link and perhaps support or help.
Use numbers instead of letters for your accesskeys. This will limit the number you can have on any one page and most operating systems and browsers don't use numbers for shortcuts.
Indicate the keys that are used as accesskeys on a legend. If you use the same accesskeys on every page of your site, you can create a page that details them.
The only issue that can't be solved by good design is the Web browser support. And for that you simply need to be aware of how the browsers your customers use respond to accesskeys. Testing is always important.

