Gmail is Google’s upcoming free webmail service. The service is not open to the public and is still in active development, and this feedback may be obsolete by the time the service goes live.
I tested with Mozilla Firefox 0.8, Microsoft Internet Explorer 6.0SP1 with all service packs and patches, JAWS 5.0, WindowEyes 4.5, and Lynx 2.8.4.
Global keyboard shortcuts
Gmail traps <body onkeypress> to provide global keyboard shortcuts. j and k select the next and previous message in the current folder; o or ENTER opens the selected message; c composes a new message; / moves focus to the search box, and so forth. Note that these keyboard shortcuts do not use modifier keys such as CTRL or ALT. Just pressing o by itself opens the selected message. (More on selecting messages in a minute.)
Accessibility problems with this technique:
- It interferes with Mozilla’s
Find as you type
feature, which allows you to type the first few letters of a link to set focus on the link, and then type ENTER to follow the link. Typing letters may trigger a Gmail global keyboard shortcut instead. - If you change the
Find as you type
feature to allow Mozilla to highlight any text at all, rather than just links (an option in the browser preferences), it appears that the web page never gets the keypresses at all, so Gmail’s global keyboard shortcuts don’t work. - The JAWS screen reader traps all browser keypresses by default and assigns its own actions to them. This is called
Navigation Quick Keys
. For example, while browsing with JAWS in Navigation Quick Keys mode, p jumps to (and starts reading) the next paragraph, n jumps to the next text after a list of links, and so forth. InNavigation Quick Keys
mode, JAWS will never send keypresses to the web page, which means that Gmail’s global keyboard shortcuts don’t work.
Note: You can turn off Navigation Quick Keys temporarily by typing INSERT+N, but it will be turned back on with the next page load (following any link, or manually or automatically refreshing the current page). You can turn it off permanently in a JAWS configuration dialog, but then your ability to navigate other web sites is severely reduced.
Global navigation bar
GMail has a global navigation bar along the left-hand side: Compose Mail
, Inbox
, Starred
, Sent Mail
, All Mail
, Spam
, and Trash
. Each element in the navigation bar looks like a link, but they are not real links. They are merely text that has been styled to appear underlined and change the cursor appearance when hovering over them. They are not <a href="..."> links; they are not even <a href="javascript:..."> links. They are simply styled text.
Accessibility problems with this technique:
- It prevents the use of Mozilla’s
Find as you type
feature, which finds links on the page. Since these navigation elements are not real links,Find as you type
does not find them. Even tweaking theFind as you type
feature to highlight any text on the page does not find them, for reasons that are not clear to me. - It prevents tab-based keyboard navigation. Tabbing through the GMail interface finds the Feedback, Contacts, Help, Sign out, search box, and search buttons along the top, then the Archive, More Actions, more (keyboard shortcut help), Terms of Use, Privacy Policy, Program Policies, and Google Home links along the bottom. The navigation in the middle is passed over, because the elements are not real links.
- It prevents users from overriding the link style with a browser preference or user stylesheet, since they are not real links.
- It completely prevents JAWS from accessing these navigation elements at all. JAWS will announce the text of the navigation elements as it’s reading the page, but it will not announce them as links (since they’re not links), and it will not provide any way to activate them.
- JAWS has a dialog box (activated by INSERT+F7) that lists all the links on the page and allows the user to select any link and activate it. These navigation elements are not listed in that dialog, because they are not real links.
- Some of the navigation elements have global keyboard shortcut sequences which provide a means of accessing them. For example,
Inbox
is g, then i;All Mail
is g, then a. In order to use these, Mozilla users must ensure thatFind as you type
is either off or only searching for real links, and JAWS users must turn off Navigation Quick Keys. - Not all navigation elements have global keyboard shortcuts or sequences. In the absence of real links, these navigation elements are completely inaccessible to JAWS users.
Ironically, Gmail’s global keyboard shorcuts are off by default. In order to turn them on (and get partial access to the global navigation bar), you must click the Settings link at the top of the page. But the Settings link is not a real link either; you can’t tab to it, and JAWS does not announce it as a link (since it’s not) and provides no way to activate it. In other words, turning on Gmail’s keyboard shortcuts requires a mouse.
Selecting messages
Message folders within Gmail are modal, in the sense that they have the concept of a currently selected message. The currently selected message is indicated by a right bracket (>). Global keyboard shortcuts j and k move down and up the list to select a different message. Typing j or k to select a message does not actually change the focus of any element on the page, so JAWS does not announce any change; it simply echoes the key pressed. This means that JAWS users have no way of knowing which message is currently selected.
Viewing messages
Gmail message folders show a list of messages with a clickable
title and optional excerpt. Clicking on the title/excerpt opens the message for viewing. But the title is not a real link. Just like the global navigation elements, it is merely styled text designed to act like a link under a certain narrow set of circumstances.
Accessibility problems with this technique:
- It prevents reading messages with Mozilla’s
Find as you type
. - It prevents reading messages with tab-based keyboard navigation.
- It prevents JAWS users from selecting a message to read. If Navigation Quick Keys is turned off, JAWS users can use j and k to select a message and ENTER to read it, but since message selection is not based on focus, JAWS users have no way of knowing which message they are about to read until they read it.
Options while viewing messages
While viewing a message in Gmail, there is a More options
link which toggles the display of six other links: Reply
, Reply all
, Forward
, Print
, Trash
, and Show original
. Neither the More options
link nor any of the six toggled actions are real links, and they share all the same problems as the global navigation elements and messages within a folder:
- Inaccessible by any form of keyboard navigation. You can not tab to them or activate them with the keyboard in any way.
- Inaccessible to JAWS users. JAWS users are unable to use any of these features.
Composing messages
On the Gmail main screen, there is a global navigation element Compose mail
(global keyboard shortcut c). It is not a real link, so the only way to access it is with a mouse or with Gmail’s global keyboard shortcuts, which can not be turned on without a mouse.
While composing a message, there are three links below the To:
line: Add CC
, Add BCC
, and Attach file
. Again, these are not real links; they are merely styled text. You can not tab to them, and the documentation lists no global keyboard shortcuts for these features. These features are completely inaccessible by any form of keyboard navigation, and completely inaccessible to JAWS users.
Replying/forwarding messages
While viewing a message, there are reply
and forward
links at the end of the message. These are not real links; they are merely styled text. You can not tab to them. They have global keyboard shortcuts r and f respectively, which only work for JAWS users once Navigation Quick Keys is turned off and Gmail global keyboard shortcuts are turned on.
Auto-refresh
All pages within Gmail auto-refresh after a certain period of time (it appears to be about 2 minutes). There is no option to turn this off or to adjust the refresh frequency. When the page reloads, JAWS users will lose their place on the page, JAWS will re-announce the page title, and start over reading from the top of the page. JAWS users will need to re-navigate through the page to pick up where they left off.
Frames
Gmail makes extensive use of frames to reduce page loads and server round trips. It has a total of 9 frames, most of which are hidden at any given time. One of them contains the message folder view, and one of them contains the compose/read message view. One of them contains nothing but 228 KB of Javascript, which is used by all other frames.
Accessibility problems with this technique:
- Some screen readers (such as WindowEyes) will announce all 9 frames when loading the page.
- The frames do not have descriptive titles or names, and it is possible through tabbing to get lost in the wrong frame.
- When switching frames with global keyboard shortcuts (in this case g, then i), focus remains on the now-hidden frame. For example, I was composing a message. I typed INSERT+N to tell JAWS to turn off Navigation Quick Keys. I typed ESC to remove focus from the message textarea. I typed G, then I to return to the inbox folder view. This makes the current frame invisible and the message folder frame visible. Then I typed TAB and discovered that the message I had canceled composing still had focus (even though the frame was hidden), and tabbing around activated (and JAWS announced) the
Send
button,Cancel
button, and other elements of the compose window. - Frame switches (such as canceling a message and returning to the inbox) are not announced like a new page, because in fact the browser is not loading a new page. When you load a new page, JAWS announces the window title of the page, but it does not do this when Gmail
switches
pages by switching frames. No context change is announced at all, so JAWS users will have no indication of where they really are in the Gmail service.
Lynx
Gmail requires Javascript, and therefore does not work in Lynx.
Final thoughts
Gmail is the least web-like web application I have ever seen. It requires both Javascript and cookies in order to load at all. It uses frames in such a way that prevents bookmarking and breaks the back button, and frames can not be loaded in isolation because every frame relies on scripts defined in other frames. The entire application appears to have been designed to thwart reverse engineering (of the YahooPops and Hotmail Popper variety).
Furthermore, the most innovative feature of Gmail — the global keyboard shortcuts — appears to have been designed by vi users (j moves down, k moves up, and we are expected to memorize multi-key sequences for navigation). Yet by using fake links everywhere, Gmail throws away the most basic web feature, breaks useful browser-level innovations like Mozilla’s Find as you type
, and breaks third-party products like JAWS and WindowEyes. So the target market for Gmail appears to be vi users who use Internet Explorer, and have a working pair of eyes.
In short, the only way to use Gmail is the way that the Gmail designers use Gmail. The only way Gmail could be less accessible is if the entire site were built in Flash.
Update April 13, 2004: Kevin Fox, a user interface designer at Google, says Google is aware of these problems, and that accessibility is very important to them.

