Archive for August, 2008

WebVisum had to switch to an invitational registration system, I can give out invites!

Wednesday, August 27th, 2008

As you may have read on the WebVisum website, the team had to switch to an invitation-based registration system. The spambot abuse attempts became such a toll on the team after such a short time already that they were forced to take this step.

However, all is not lost with this step! There are already a lot of WebVisum users out there who can invite others. So if you are not a member of WebVisum yet, but know someone who is, ask them for an invitation!

If you don’t know anyone who might have a WebVisum account already, but are reading this blog and want to try it out, please send me private e-mail at marco dot zehe at gmail. I can send out invitations so you can benefit from the CAPTCHA solving, graphics recognition and other great features this Firefox extension offers.

Further reading

Jim Zemlin on this year’s breakout of the Linux desktop

Wednesday, August 27th, 2008

Jim Zemlin of the Linux foundation wrote a very good post on this year being the year of the Linux desktop breakthrough. One thing he did only mention marginally, but which I think is just as important for certain users/markets, is the fact that there is now a wide range of accessibility solutions available for at least the GNOME desktop, which either come directly with the distribution such as the Orca screen reader for the visually impaired, or are easily installable. Screen reading, which includes support for a huge variety of braille displays, magnification, on-screen keyboard solutions, alternative input device support are all available as open-source now and open up the Linux desktop alternative to virtually every potential user.

And there’s more when it comes to the mobile platform. The Mozilla Foundation funded a feasibility study last year to migrate the communication layer for the assistive technology service provider interface (AT-SPI) from using Corba to using DBus, which is a key part in getting screen reading support on the mobile Linux platform. Nokia is now funding the actual migration work. I’ll blog more about the mobile prospective from an accessibility standpoint in the near future.

JAWS 10 public beta’s Firefox 3 support: A review

Tuesday, August 26th, 2008

In the August issue of the “FS Cast” podcast, Freedom Scientific announced the soon-to-be expected availability of JAWS 10 public beta. They also demoed many of the new features, like the automatic forms mode switching. They also mentioned that they improved Firefox support a lot and that the web should feel transparent now regardless of which of the supported browsers the customer would be using: IE or Firefox. ARIA support, also with an emphasis on live regions, was mentioned, too.

The public beta was released on August 25, and I took it for a test ride. Here’s what I found:

In general, the display of static pages has improved quite significantly over previous versions of JAWS. Especially text being run together with certain HTML constructs is no longer an issue. Missing line breaks are a thing of the past now, too. This makes the over-all reading experience much more pleasant.

One big plus I also noticed is that, when you open a link and then later return from the newly loaded page using Alt+LeftArrow, JAWS correctly sets the virtual cursor to the link you activated. It used to put the virtual cursor at the top of the page.

The automatic forms mode switching works on textboxes and textareas, but Alt+DownArrow on a combobox does not pop into forms mode and open the listbox yet, as was demonstrated in the podcast using IE.

Speaking of listboxes: JAWS 10, unlike 9, shows all items in an HTML listbox (a select with size greater 1). It used to only show the selected entry. In IE, it still does that, but in Firefox, it dumps all the items into the virtual buffer. If you have a list of over 100 items, this can become very annoying.

In terms of ARIA support, there are clear signs that work has been done on this front. For one thing, JAWS now honors the ARIA role of “application”, which means it does not go into virtual PC cursor mode on such pages or in properly marked-up web application environments. An example can be seen here.

Also, live region updates are nicely read on this page.

However, there are also still quite some areas where both ARIA support in general and live region support in particular should be improved before final release. Here are some points where I am still seeing problems:

  • While the live region support works great on the above page, it does not work at all in the ChatZilla Firefox extension. ChatZilla uses an HTML table with role of “log”, and both “polite” and “assertive” live regions. JAWS currently runs all the text inside this table together in one big string, without line breaks. Also, markup such as links inside these chat output messages is completely ignored. While JAWS 9 didn’t support live regions yet, it did properly format the output into a very readable form. As a plus: Updates to the view are now automatically picked up, which was not the case in JAWS 9. There, you had to constantly refresh the virtual buffer to see the newest messages.
  • Live Region support in Google Talk, as I describe in my ARIA in GMail
    #2
    post, is flaky. Sometimes new text that comes in gets spoken, sometimes it doesn’t. I haven’t found a consistent pattern yet. Also, the chat window still needs to be popped out into its own window, as also was the case in JAWS 9, to be able to read it at all.
  • Speaking of Google Talk: The ARIA list of contacts behaves inconsistently with Forms Mode. It has a tendency to unexpectedly pop out of forms mode when you arrow from one list item to another. In addition, Enter does not yet work to open a chat or new e-mail message, depending on whether the contact is available for a chat or not. Forms Mode is instead turned off, and the virtual cursor lands somewhere unpredictable, preferably at the very bottom of the virtual buffer.
  • A similar unexpected leaving of forms mode can be observed in this
    Dojo treeView test example. Focusing the tree view, turning on forms mode, and arrowing among the items, opening and closing them works in the downward direction. However, as soon as I go from “Africa” back up to the root element “Continents”, forms mode is popped off.
  • One other problem I discovered was that alert messages have a tendency to get out of sync. I was trying out my example from Easy ARIA tip #3. I called up that page directly after I had started Firefox. Upon launch of Firefox, WebVisum told me that I was now logged in, via an alert. When I then triggered my first alert from the sample page, the “You are now logged into WebVisum” message was repeated. Consequently, all subsequent triggers of alerts would then speak the previous alert message instead of the current one.

In summary, there are clear advancements visible in JAWS 10 with regards to support of Firefox 3. Especially the more readable flow of text and the fact that you always return to the same spot when going back a page are big plus points. However, while there are also advancements visible in the ARIA and live region support, for a public beta after as long a development cycle as was mentioned in the podcast, I would have expected a much more polished first beta.

Having said that, it must not be forgotten that this is still beta software. All above issues were reported to Freedom Scientific prior to publishing this blog post, and the Mozilla accessibility team will work with the developers at FS to resolve these issues.

For the next public beta release of JAWS 10, I am planning an ARIA shootout among all screen readers across all platforms that support ARIA already. So stay tuned!

A job opportunity in Mozilla accessibility!

Monday, August 25th, 2008

The Mozilla Corporation has the following job opportunity available:

The Mozilla Corporation is looking for a full time engineer to develop accessibility in its software.

The job will involve working with a small team to develop support for a wide variety of 3rd party assistive technologies such as screen readers, screen magnifiers, on-screen keyboards and voice dictation software on a variety of operating systems.

The candidate we are looking for will be an excellent C++ programmer, with experience in COM or XPCOM, as well as working on OS X and either Linux or Windows. Previous experience with the Mozilla codebase is a plus. The candidate should be interested in developing solutions which improve how users with disabilities interact with the web.

Mozilla Firefox already has a strong foundation in this area. However, as the web progresses to provide ever more interactive and complex applications, interesting challenges continue to present themselves. For example, users with significant visual or physical impairments need to be able to interact with applications as complex as online word processors and spreadsheets, as well as content which includes technical information such as diagrams and mathematics. These users will be interacting with the content using text-to-speech, Braille displays, on-screen keyboards, voice input software, and other interesting technologies.

The candidate should be passionate about improving the Mozilla platform and be interested in pushing forward in a truly challenging and interesting area, which improves the lives of users with disabilities by removing barriers to participation on the web.

Some of the standards we will work with include HTML 5, SVG, MathML, WAI-ARIA, OS X’s AXAccessibility API, ATK/AT-SPI and IAccessible2. The team will assist the candidate in becoming more knowledgeable with respect to accessibility topics and the APIs involved.

Occasional travel will be part of the job, such as to disability-related conferences like CSUN and Mozilla project events such as on-sites and summits.

If this sounds interesting to you, get in touch and send in your resume!

New: Firefox 3 with Screen Readers FAQ online!

Thursday, August 7th, 2008

After the release of Firefox 3, it became apparent that there were many questions that came up again and again on the various mailing lists. The accessibility team along with several community members formulated a set of frequently asked questions and answers over the course of the past few weeks. We’ve been tweaking it and are now ready to announce it to the public! It is part of Mozilla’s official support pages, and you can check it out here!

Feedback is always welcome, and if you have additional questions that we didn’t cover, but which you think should be answered there, send them in as well!

ARIA in Gmail #2: Enhancing the Chat experience

Wednesday, August 6th, 2008

This post continues a series on the implementation of ARIA (Accessible Rich Internet Applications) in Gmail.

On July 30, Orca team lead Willie Walker forwarded a message to the Orca mailing list titled Orca & gmail. The message is originally by Srinivas Annam, an accessibility web developer at Google. He describes a couple of enhancements that had been made to the Gmail user interface and were pushed live recently. I’m going to review each feature in turn so you get an impression of what accessibility improvements these changes actually brought about.

I tested with JAWS 9.0, Window-Eyes 7.0 Beta 1, NVDA snapshot as of Wednesday August 6, and Orca snapshot as of Wednesday August 6. Unless noted otherwise, all features are fully useable using Firefox 3.0.1 and these versions of the screen readers.

All of the below are in the Chat area of the Gmail interface. So after you’ve logged into Gmail, make sure to activate the “Chat” link to be able to follow the descriptions.

The “Set Status Here” label

This is the label right below the “Search, Add or Invite” textbox. Pressing Tab from that textbox focuses the label. You can press Enter to get another textbox where you can put in a personal status message that others will see when they have you in their chat lists. Note if you’re using JAWS, press JawsKey+3 (3 on the number row) to pass the key through to Firefox directly. Otherwise, JAWS will capture the Enter key and turn off Forms Mode when you don’t want it to.

The “Status” menu button

This follows directly in the tab order after the “Set status here” label. You can press Enter on it to bring up a context menu to navigate and set a predefined status. This button is also discoverable with the virtual cursor in all three Windows-based screen readers, and Enter works on all of them to open the context menu.

Inside the context menu, navigating the items with Up and Down arrow keys properly issues the focus events, making use of the aria-activedescendant attribute to indicate which of the menu items is active.

A known problem is that, when pressing Escape to close the menu, focus does not yet return to the menu button. Use screen reader navigational commands to return to where you left off.

The chat contact list

This is an ARIA listbox with list items. It follows the “Status” menu button in the tab order. The Windows-based screen readers allow navigating to it using their virtual cursors, and pressing Enter for Forms Mode/Virtual off/PassKey mode. With Orca, you can simply navigate or tab to the list. The list uses aria-activedescendant to indicate which item has focus.

Navigating inside the list is done using Up and Down arrow keys. Besides the contact’s name, the status is given “chatting”, “available”, “idle”, “offline”.

Pressing Enter will do one of two things. Note that if you’re using JAWS, again use the JawsKey+3 keystroke to pass the key through, or it will turn off Forms Mode.

  • If the contact is available or idle, a chat window will open. See the next section for features within this window.
  • If the contact is offline, a new mail message to it will be started, and the focus will be placed in the “Subject:” textbox.

Below the list is another menu button labelled “Options”. However, the menu that opens does not yet use the aria-activedescendant attribute. The result is that no screen reader follows the focused item within this menu yet. It is hoped that this menu be accessible soon since it contains a number of useful functions.

The chat window

If you’ve opened a chat window to one of your contacts, the focus is placed inside a textbox where you can type your message. Press Enter when done to send your message.

The chat output pane uses ARIA live regions to enable screen readers to speak incoming messages automatically. These can either be your own, or the ones your chat buddy types. A suggestion: The message output uses aria-live=”assertive”. The other portion that gives messages such as “xxx is typing” does not use live region markup at all yet. It would be good if this used aria-live=”polite” to allow screen readers to also speak this information. Since this message is not as important as the actual output, using “polite” here can help screen readers prioritize the speaking of these updates.

Currently, both Orca and NVDA support speaking of live region updates. This means that, when inside the chat area and a message comes in, both screen readers will automatically speak them. Additionally, you can turn off PassKey through mode in NVDA and navigate upwards to review the last messages. With Orca, simply navigate upwards to review the last messages.

Note: If you’re using JAWS, you should pop out the chat into a separate window. For some unknown reason, JAWS will not pick up the contents of the output window unless the chat is inside its own window. To do this:

  1. Press JawsKey+3, followed by Ctrl+DownArrow to focus the Chat window toolbar.
  2. Press Tab to move to the “Pop out” button.
  3. Press Enter to activate it. Note you might get a warning from your popup blocker that it prevented Gmail from opening a pop up, and an error dialog by Gmail itself that tells you how to disable popup blocking for Gmail. I suggest you do this to more easily open those pop outs.

The Chat window toolbar

You can reach this by pressing Control+DownArrow while focused inside the chat entry textbox. It places focus on an “Options” menu button. Press Enter to open it. Navigation inside it is just like in the “Status” menu, also works using aria-activedescendant.

Alternatively, you can press Tab to reach the “Pop out” button, allowing you to put the chat into its own window.

Finally, Ctrl+UpArrow will put focus back into the chat entry textbox.

In summary

With these enhancements in both keyboard navigation and ARIA semantics, Google have turned this portion of Gmail into a really useful tool also for blind and visually impaired users. With Firefox or another ARIA-capable browser and a compatible screen reader, you can now use this part just like your sighted buddies do.

With this, Gmail is not just web mail, it becomes a communication center as it already is for the sighted users.

I’d like to thank Google again for putting ARIA into Gmail in this fashion. It shows that the work Mozilla, IBM and the W3C, under the leadership of Aaron Leventhal, put into this spec is indeed usable in real-life scenarios and not just, as suspected by some, a nice geeky thing on the drawing board.

Previous ARIA in Gmail posts

More ARIA in the news

Wednesday, August 6th, 2008

As I’m catching up with news after my return from Whistler, I have two suggested ARIA-related readings for you:

Gez Lemon of the Opera Developer community has posted an article titled Introduction to WAI ARIA. This is probably the most comprehensive, but easy to understand, introduction to WAI ARIA I’ve come across so far! Thanks Gez!

Victor Tsaran from Yahoo! has posted an article on the YUI blog titled Enhancing TabView Accessibility with WAI-ARIA Roles and States. It is a hands-on example that shows a lot of techniques outlined by Gez in action. There are both the final example to try out, and a screen cast to watch. Thanks Victor!

Happy reading!

Progress on automated testing for the accessibility module

Tuesday, August 5th, 2008

Today, I checked in two changes that allow the unit tests we’ve developed for the accessibility module so far, to run on what we call a staging server. A staging server is a server that simulates production conditions, but isn’t the live thing just yet. It allows us to test new features in build, testing, web sites etc., in close-to-real-life conditions before finally pushing them to production.

Obviously, getting these tests running on the production tinderboxes so we immediately see when we broke something is the next step. But until that can be done, we need to find a solution for bug 441974. Basically what is happening is that tests pass when each test file is run stand-alone, but some of these tests fail randomly when running all files in one big batch. But I made some good connections at the Mozilla summit last week, and as soon as we get these passing we’ll start running those tests. They’ll then run along with the many other unit tests we have for Firefox and the Mozilla platform.

I’d like to thank our intern Lukas Blakk and a bunch of other members of the QA and build teams to help me with getting these configs for buildbot right!

ARIA in Gmail #1: Alerts

Monday, August 4th, 2008

Google have recently started to put ARIA (Accessible Rich Internet Applications) into GMail. This means that ARIA is now getting a lot more exposure than it used to, with GMail being probably one of the most widely used web applications today. It’s great to see that the hard work Mozilla, IBM, the W3C and especially Aaron Leventhal put into this standard recommendation is getting this prominent placement so soon!

As an appreciation for the work devs at Google such as Srinivas Annam are doing to provide better access to GMail, this post starts a series of articles on the subject of putting ARIA into GMail, either after I’ve been pointed to specific areas or by finding new features myself.

The first in this series of reviews of GMail ARIA features concerns a very simple, yet effective, one: Alerts. As I already mentioned in my Easy ARIA Tip #3, alerts are a great way to immediately notify users about important status updates, but without taking focus away from where you are currently working.

As I found out rather by accident, GMail now uses an ARIA landmark role of “alert” for the piece of the UI that pops up with an important status message for a few seconds after certain actions have been performed. It disappears again after a few seconds, but because this is an alert, screen readers pick it up and speak it automatically as soon as it appears. Alerts, in the assistive technology terminology, are important status messages that can pop up anywhere on the screen and should be spoken or otherwise indicated to the user immediately. Another example of an alert is the notification box that appears when Firefox asks the user whether they want to remember the password just entered. It is an important notification the user might want to act upon, but still less intrusive than a modal dialog.

Actions that cause this alert to appear are such ones as moving a contact from the “Recommended contacts” to “My Contacts”, deleting a label, sending an invitation to someone for Google Talk/Chat, adding a contact, etc.

This way, actions that previously used to only pop up a message now provide immediate feedback. There is no need to look for the message, and when one finds it, find out that it just disappeared after the timeout.