Article

Home » Design and Layout » Accessibility » Using Accesskeys is Easy

About the Author

Greg Harvey

Greg Harvey Greg began working for advertising agencies in 2000 as a web developer where he quickly extended his portfolio to include multimedia and animation, ASP and SQL. He moved within the advertising industry to project and team management and client consultancy, before leaving to work as a project manager for a global leader in news aggregation. He currently co-ordinates International Microsoft .Net application development teams in the development of core web-based products.

Greg Harvey has written 7 articles for SitePoint with an average reader rating of 7.3.

View all articles by Greg Harvey...

Using Accesskeys is Easy

By Greg Harvey

June 20th 2004

Reader Rating: 8.6

Quite a few Web developers still get a glint of terror in their eyes when someone suggests they add accesskeys to their sites. Well, don't be scared. This article is very short for a very good reason. If you want to use them, accesskeys are so easy to add, you'll wonder why you never did before.

Accesskeys Defined

So, what are accesskeys? For the uninitiated, they are a means for people to jump immediately to a specific part of an HTML page by pressing ALT (PC) or CTRL (Mac), followed by the appropriate key on the keyboard, as defined by you via an accesskey parameter.

They're particularly useful for people with mobility issues who don't use a mouse and have a keyboard for their every movement on a computer. Accesskeys allow them quickly and easily to hop around the content of your Web pages. Able-bodied users can find them equally useful as shortcuts, too.

We'll get on to the HTML in a minute, but, before we do, it's worth noting the extra content accesskeys require you to add. It's no good having accesskeys if people don't know what they are -- you need to provide a page that lists your accesskeys.

With that in mind, let's take a really simple example. The Website www.buyfoos.com sells "Foos" to Web developers. It has a navigation area and a content area. The navigation consists of Home, About Foos, Buy Foos, a Site Map and a Feedback Form. What's missing from that navigation?

An Accesskey Details page!

So, here's the code for the home page. I've bolded the bits that matter to us:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>BuyFoos.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/mainstyle.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="navigation">
<a href="index.html">Home</a> |  
<a href="about.html">About Foos</a> |  
<a href="buy.html">Buy Foos</a> |  
<a href="sitemap.html">Site Map</a> |  
<a href="feedback.html">Feedback</a> |  
<a href="access.html">Accesskey Details</a>
</div>
<div id="content">
Welcome to buyfoos.com. Etc. Etc.
</div>
</body>
</html>

Now, let's add an accesskey:

<div id="navigation">
<a href="index.html" accesskey="q">Home</a> |  
<a href="about.html">About Foos</a> |  
<a href="buy.html">Buy Foos</a> |  
<a href="sitemap.html">Site Map</a> |  
<a href="feedback.html">Feedback</a> |  
<a href="access.html">Accesskey Details</a>
</div>
<div id="content">
Welcome to buyfoos.com. Etc. Etc.
</div>

And that's it. ALT+Q on a PC, or CTRL+Q on a Mac, will now take users to the home page. Nice, huh?

But something's not quite right. Accesskeys can be anything you like, but they really ought to make some sense. Standards would be nice at this point, but, alas, as yet there don't appear to be any. However, I've had a look around at a number of government sites, as well as the W3C itself, to see what these organisations do on their Websites. This advice is by no means set in stone, and, if you think there's a better way then by all means ignore it, but fairly solid "best practice" standards appear to be:

H = Go Home.
S = Skip past the navigation and go straight to the content.
K = Go to the accesskey definitions page.
1 to 0 (e.g. 1, 2, 3… 8, 9, 0) = The main navigation items, in our case:
1 = About Foos
2 = Buy Foos
3 = Site Map
4 = Feedback

So, if we revisit our HTML, it might now look like this:

<div id="navigation">
<a href="index.html" accesskey="h">Home</a> |  
<a href="about.html" accesskey="1">About Foos</a> |  
<a href="buy.html" accesskey="2">Buy Foos</a> |  
<a href="sitemap.html" accesskey="3">Site Map</a> |  
<a href="feedback.html" accesskey="4">Feedback</a> |  
<a href="access.html" accesskey="k">Accesskey Details</a>
</div>
<div id="content">
<a href="#skip" accesskey="s"></a>
<a name="skip"></a>
Welcome to buyfoos.com. Etc. Etc.
</div>

And, there you go. Note that, to go to a specific area of a page, I've simply inserted a textless link next to the named anchor that it targets.

Lastly, for further reading, check out this article, which takes accesskeys to the next level with CSS.

If you liked this article, share the love:
Learn more with easy-to-understand SitePoint books
Print-Friendly Version Suggest an Article Link to this Article

Sponsored Links

Rate This Article

  • 1
    Poor
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
    Great

Comment on This Article

Have something to say?

Post A Comment

You need to be a member of the SitePoint Forums to comment on this post. Sign Up

Already a member? Log into the SitePoint Forums: