Posts Tagged ‘Firefox’

Roundup: What is the Mozilla Accessibility Team working on?

Monday, May 10th, 2010

Well, it’s been a while since I posted here I’m afraid. The reason was not an outbreak of laziness, but on the contrary the fact that the accessibility team at Mozilla is alive and kickin’, and working on the next version of the Gecko platform. And to give you an idea what we’re working on, here’s a quick round-up.

De-XPCOM-ing the Accessible module

XPCOM is used to communicate to the Mozilla core, getting information out of and into it from languages such as JavaScript, Java, Python and C++. Unfortunately, due to historic reasons, modules internal to the Gecko platform also used to use XPCOM to get information. One of these modules was (and partially still is) the Accessible module. XPCOM, while very powerful, also has some performance limitations when querying for a lot of information via QUERY_INTERFACE. Therefore, over the past couple of months, Alex and David have been working on de-XPCOM-ing our module to make it more performant and ready for the future.

To the end user, this will feel more performant especially on complex pages.

Event management

Firing events, and calculating when and how to fire them, has been a big performance killer for the Accessible module in the past. While this was for the most part not particularly noticeable for screen reader users, since we are sort of limited by the rate our synthesizers talk, recently more and more technologies have started using the Accessibility services. Fingerprint devices to enter passwords into Firefox, tablet PC interfaces etc., all use parts of the Accessible module. Since there is currently no way to turn parts of it on or off, as soon as any piece of software accesses just a single accessibility service, the whole engine gets started, and from that point on, all calculations take place as if a screen reader for the blind was present.

Again, since this cannot currently be selectively turned off, and it is not certain that this will ever be possible, it is our goal to make this fact the least noticeable to users. To that end, we’ve started a project called event coalescing. Event coalescing will, as the name suggest, coalesce the stream of events we get from the DOM to only fire those event assistive technologies absolutely need. However, the rules have not been finalized yet, and the code as it is in the current platform based on some initial ideas and feedback, is not very performant, in parts even less performant than in Firefox 3.6, which fires more events but calculates less before sending them.

For those interested in the very technical details, the wiki page for event coalescing is here.

HTML5 form element enhancements

While we’re working hard on improving performance, work in other areas of Gecko is also progressing, requiring us to work together to make sure these enhancements are also accessible. One of these is the work that needs to be done to make new additions that HTML5 brings to form elements accessible. I wrote up a summary with bug links and some information here. If you have feedback on the ideas and proposed roles, you’re welcome to contact us by leaving a comment down here or on the #accessibility IRC channel.

UI work

As the road to the next major release of Firefox is being walked, there are also some UI redesigns happening. One, which has already landed, was the conversion of the tab strip to a real toolbar. My job was to make sure screen readers can still cope with them after this change. Some minor regressions were found, but all in all this still works great.

Another, much bigger change, is the redesign of the Add-Ons Manager to include support for language packs, Jetpacks and other ways to extend Firefox. This work is still underway, and I recently took a first round of testing. Some keyboard navigation issues, and one XUL markup issue that needs to be addressed, but so far, although this is a major UI change, things look very accessible, and I’ll make sure it stays that way. ;)

Other areas

Work that is not directly related to the Gecko platform, but which is also important in the field of accessibility, is, among others:

  • Thunderbird 3.1 Beta2 has been released recently. Thunderbird 3.1 comes with the same platform version as Firefox 3.6. Due to the table enhancements in the Gecko 1.9.2 platform, the message list and other areas will be much more accessible to screen readers. Information such as the unread status, the presence of attachments etc. can now be queried using the IAccessibleTable2 interface or equivalent on other platforms. The control is now a real table control rather than a flat ListView on Windows, giving much more accurate semantics.
  • The Instantbird team has also done a great job at providing good XUL markup in their multi-instant-messaging client. We’re currently working together to work out some very specific problems with buddy status and others, but Instantbird is a great multi-messenger worth trying!

As you can see, lots of exciting stuff happening, some of it very user-visible, other more technical and very low-level in nature, but all exciting!

Stay tuned!

Update: Article translation

Thanks to community member Patricia Clausnitzer, this blog post is now available in Belorussian. How cool is that! Thank you very much! And BTW: This is a first!

Last weeks in the “Accessible” module, May 11, 2009

Monday, May 11th, 2009

Sorry for being a slacker in updating you guys regularly on what’s been happening! But we’ve been quite busy at getting some stuff finished and hopefully ready for inclusion in 3.5. I already posted about the return of the descriptions last week. So here’s what else happened since my last report:

Exposing HTML 5 audio and video elements

The initial exposure for the HTML5 audio and video elements to screen readers landed, causing a minor regression that was quickly fixed. In testing this with NVDA, I found that the button labels weren’t properly exposed and that the slider values were not really useful. The progress meters were showing the number of bytes downloaded, or the milliseconds elapsed instead of useful percentage values. Along those lines, Alex also added a bug to expose proper names for each progress meter, so a screen reader user knows which slider is for what purpose.

Except for the last patch, all others have landed on mozilla-central and will be available for testing starting with the 11th of May nightly build.

To make it clear: This is for those HTML5 audio and video elements that have the controls attribute set, indicating that the internally available controls should be used. Other forms of controlling the media playback, such as from external HTML controls/widgets, already worked in the past since these were not part of the actual audio or video element itself.

Tree view item rectangle exposure

We received a report that in Thunderbird 3 beta on Windows, the rectangles for tree view items were not exposed correctly. The rectangle was too small, not encompassing the whole item. Alex investigated this and fixed the bug, putting an optimization in as a second step for all platforms. This also landed on mozilla-1.9.1 after having baked on mozilla-central for a while, and is available since the May 9th nightly builds of Shiretoko, Thunderbird and SeaMonkey.

The ARIA live region background tab leakage

David has been taking different stabs at bug 444644, with some good results thanks to feedback from Roc and BZ during the Mozilla all-hands week. However, we’re still fighting a situation where the creation of virtual buffers by NVDA is causing the live region updates from background tabs to be spoken again. Investigation is ongoing

Other ARIA-related triage

David’s also been a busy bee clearing out some ARIA-related bugs, gathering feedback here and there, closing others as they’ve been solved by other bugs, etc.

Firebug accessibility

This is not strictly inside the “Accessible” module of the platform, but very closely related to the Mozilla eco system. Accessibility of the Firebug UI has been shaping up very nicely over recent weeks. I spent a fair amount of time last week pounding the different alpha releases to help make sure things stayed in shape.

On Friday, Hans from the Paciello Group, Jamie from the NVDA team and I also managed to get the biggest outstanding problem solved in a very productive meeting on IRC, and that’s the reading of the Firebug JS panel by NVDA. Watch this space for a review once Firebug 1.4 goes to beta!

That’s it for this week, thanks for the read!

The descriptions are back!

Thursday, May 7th, 2009

For those of you following along the Firefox 3.5 development cycle, you may have noticed a regression when dealing with HTML elements that have both screen text and a title attribute, such as the previous link in this sentence.

In Firefox 3.0.x, we expose the screen text, in this case the word “regression” as the accessible name. This is the piece that screen readers speak when focus lands on the link, and which usually also gets rendered into the virtual buffer.

If there is also a title attribute, in this case “@title attribute no longer exposed on accDescription”, this will be translated into the accessible description of the link object. This is additional information that can be spoken by the screen reader on demand. For example, in NVDA, focus the link or arrow to it in the virtual buffer, and hit NVDA+Tab. NVDA will speak first the name, followed by the fact that this is a link which is linked to something, followed by the description.

The one exception where we do not expose a description is when the screen text and title attribute contents would match. This is considered bad practice anyway, because it is redundant information, and thus we suppress it.

Firefox 3.5b4, and in fact all builds that date back to mid October last year, have a bug in that the title attribute is no longer exposed as the accessible description. Jamie from the NVDA team found this recently and notified us.

I’m happy to report that this functionality got restored in the Firefox 3.5b5pre nightly builds starting with the May 7, 2009 build. Sorry for any inconvenience this may have caused!

Last week in the “Accessible” module, April 20, 2009

Monday, April 20th, 2009

After the Easter holidays, pace has picked up again in the development of accessibility features and other work surrounding our eco system.

Actions for sorting and expansion/collapsing

After some minor setbacks, David’s patch on exposing actions for ARIA sort and expand/collapse attributes finally landed today. This means that:

  • An element that has aria-sort set, will expose an action of “sort” to assistive technologies.
  • An element that has aria-expanded set to “true” will expose an action of “collapse”, one that has aria-expanded set to “false” will expose an action of “expand”.

These can be used to exactly determine what action will be performed once it is being performed.

Exposure of the HTML5 audio and video element controls

Alexander’s patch to expose the embedded controls of the HTML 5 video and audio elements has landed on mozilla-central. With NVDA, one can now see the grouping where the controls are, and invoke the action on each of the buttons. One can even switch to focus mode on the sliders and use the arrow keys to manipulate them. Note: Due toa different approach in reading our information, JAWS does not yet expose these controls despite this patch. Other screen readers are pending tests.

There are a few problems still which will be addressed soonish: For one, the buttons don’t have text labels yet, and the slider percentage values reflect times rather than actual percentages, so we need to see how we’re going to expose this properly.

In other news

The team, along with a number of community members, has worked on a new high-level accessibility strategy document. Frank Hecker has a blog post explaining this in greater detail.

Spreading the good work of ARIA to mainstream open-source CMS

Peter Krantz, accessibility expert from Sweden, has started an effort to contribute WAI-ARIA landmark roles to mainstream open-source content management systems. If you know one of the CMS that don’t have patches yet, feel free to jump in!

That’s it for this week, see you next week for a new edition!

Extension tip, and feedback appreciated: Feed Sidebar

Friday, April 17th, 2009

The extension Feed Sidebar by Christopher Finke is a small extension that allows to view one’s Live Bookmarks in a sidebar, much like one would view history or bookmarks. It is not a new RSS feed management, but instead operates on the live bookmarks one has in the profile via the “Subscribe to this page” option from the “Bookmarks” menu.

In the version that is currently on addons.mozilla.org, there are several problems with missing label7control associations in the Options dialog as well as problems navigating the tree, and more importantly, opening a feed article via the keyboard.

Not too long ago, I contributed a patch to the project to fix these problems, and Chris has accepted it and put it into a recent beta version of Feed Sidebar. He also made it possible to access the sorting options from the context menu.

The latest beta brings a better updating mechanism that is less resource hungry.

For those of you who have asked me about a way to view feeds in a tree like structure, this is definitely worth a try! Go download the latest beta version here! I’ve found it to be very stable and accessible. Of course, feedback is welcome! You can either contact Chris directly of course, or leave a comment here, I’ll then forward it to him.

Enjoy!

Article on how to use NVDA and Firefox to test web sites for accessibility

Tuesday, April 14th, 2009

I just published an article on how to use NVDA and Firefox to do website testing.

This article can be found on the front page of my blog under the “Pages” section, in the “Articles” sublist.

The article is meant as an introduction, not as a replacement for the NVDA user guide, and it is certainly not meant to replace other accessibility testing tools you might use for your website testing, just as an additional tool to help you get a feel for how blind users interact with your web sites or web applications.

I plan to update the article periodically as new versions of NVDA become available, features are added and other info relevant to the article might change.

Enjoy the read, and feel free to leave feedback!

Updated ARIA-spiced form example to work in IE 8

Tuesday, March 31st, 2009

I updated my simple form example from the third Easy ARIA Tip to also work in IE 8. I had to explicitly state a doc type to put IE out of quirks mode into proper IE 8 mode, and I also had to change the type attribute’s value of the script tag to “text/javascript” from “application/javascript” for it to recognize the functions declared in the script block.

The example works visually, but has a number of accessibility issues which make testing IE 8 with it a not so pleasant experience:

  • Neither aria-required nor aria-invalid take any effect with either JAWS or NVDA. It’s as if the attributes weren’t set, yet the IE DOM exposes them correctly, as JAWS’s Element Info keystroke, Insert+Shift+F1, clearly indicates.
  • Neither JAWS nor NVDA see the alerts come up, and thus don’t speak them. The alerts appear visually, so the JavaScript is working, but the DOM mutation is not being picked up. Only after a refresh in the respective screen readers is the content of these visible in the virtual buffer.

For testing, I used the latest update to JAWS 10, build number 10.0.1142, and NVDA trunk snapshot 2828. And of course, the release version of IE 8.

For those of you doing web application development and testing, this is an indication that your best bet to get proper results is definitely the combination of a strong implementation of ARIA in Firefox and a supporting screen reader.

Last week in the “Accessible” module, March 30, 2009

Monday, March 30th, 2009

The last week was rather short, but no less busy.

First, on the off-code side, I attended the European Accessibility Forum Frankfurt (EAFRA) conference on Friday, March 27. Christian Heilmann from Yahoo! posted a great summary of the event and also caught my guide dog Falko sleeping while I talked. The videos will appear here.

On the code side, the action happened in the mozilla-1.9.1 repository AKA Firefox 3.5b4pre this time. Today, I checked in all the approved mozilla-1.9.1 nominated patches. From Tuesday’s 3.5b4pre nightly build onwards, Firefox will:

  • Expose font sizes in PT units instead of PX, as specified in the IAccessible2 spec.
  • Support the value of “undefined” on aria-checked/aria-expanded etc. attributes, as specified in the ARIA 1.0 spec
  • Drop support for aria-channel, container-channel, and aria-datatype
  • Support aria-expanded on more roles
  • No longer support role=”description”
  • Require aria-grab to be changed to aria-grabbed for drag and drop to work in the future
  • Expose non-editable documents as readonly, regardless of role
  • Expose the ‘checkable=”true”‘ object attribute

This brings Firefox 3.5beta4 very close to the ARIA 1.0 spec. We’ll take another look to make sure we don’t miss any details from the specification for implementation. Thanks to Mike Beltzner for not jumping our throats at these 10 or so approval requests we threw at him at once!

In other news, some progress is being made towards finding the leak that running the accessibility Mochitests on Mac OS exposes. It turns out that these same objects can also be leaked by other tests, which are not accessibility related, but ours are still the best bet at reproducing them. So our master of leak detection, Carsten Book AKA Tomcat has kindly agreed to help debug this beast.

Firefox 3.0.7 fixes screen reader users in GMail!

Thursday, March 5th, 2009

As you may or may not have read yet, Firefox 3.0.7 was just released. This security and stability update brings a very important fix for all screen reader users wanting to use GMail. Previously, it was not possible to open messages by just going to the appropriate link and pressing Enter. GMail would simply not react. One had to use mouse emulation and click the link to get the message opened. Firefox 3.0.7 fixes that problem, allowing our users a much better GMail experience.

Enjoy!

NVDA 0.6p3 released, quite some news for Mozilla users!

Monday, February 16th, 2009

As you may or may not have read, the NVDA team released NVDA 0.6p3 last night. Below, I’d like to highlight those of the changes that are of special interest to those using Mozilla products such as Firefox or Thunderbird with it.

Support for text attributes and spell checking

NVDA takes advantage of the new text attribute and spell checking support of Gecko 1.9.1, which will enable exposure of the inline spelling features of Firefox 3.1 and Thunderbird 3.

  • NVDA+F will report things such as font, point size, styles such as bold etc.
  • When reading through text character by character or word by word, if a spelling mistake is encountered, NVDA will announce it, and also where it ends.

This feature will not work with Firefox 3.0.x, as the version of the Gecko platform used with this version of Firefox does not have accessibility information for text attributes and spell checking.

Automatic switching of focus mode

When browsing web pages in Firefox, certain controls such as textboxes, comboboxes etc. can now automatically cause NVDA to switch to focus mode without the user having to press Enter. Escape or NVDA+SpaceBar can be used to turn focus mode off and browse mode back on. Interacting with forms is much more seamless this way, so I recommend everyone to try out this new mode! You can configure it through the Virtual Buffers preferences dialog.

Better reading of the notification bar

Firefox, and to a lesser extent Thunderbird, make use of the notification bar to convey information without interrupting the user’s flow of work. NVDA 0.6p3 has improved the way it reads these important yet unobtrusive notifications by suppressing double-speaking, and other tidying up of the whole process.

Use NVDA to explore the accessible hierarchy of your web pages

From the What’s New document:

* new: In virtual buffers, the review cursor now reviews the text of the buffer, rather than just the internal text of the navigator object (which is often not useful to the user). This means that you can navigate the virtual buffer hierarchically using object navigation and the review cursor will move to that point in the buffer.

This means that the navigator commands (NVDA+NumPad8, NVDA+NumPad2, etc.) will work inside the virtual buffer of a web page, take the review cursor with them as you go, and allow you to bisect your page accessible node for accessible node, in case you wonder why your users complain about accessibility issues.

This makes NVDA not only suited for blind users relying on access to the Windows operating system and its applications, but also for web developers who need (or want) to get a feel for what their web page or application appears like to a blind visitor.

Miscelanious fixes

The below is a small collection of other notable changes that don’t warrant an own section.

  • fix: Fix the issue where tabbing to a checked checkbox in a Mozilla Gecko virtual buffer and pressing space would not announce that the checkbox was being unchecked.
  • fix: Correctly report partially checked checkboxes in Mozilla applications.
  • fix: When reading with the mouse, text in Mozilla Gecko edit fields should now be read.

In Summary

If you run the beta or nightly builds of both Firefox 3.1 and Thunderbird 3.0 AKA Shredder, you should be able to take advantage of all the new features in NVDA 0.6p3. If you use Firefox 3.0.x, you’ll be missing out on the new spell checking and formatting feature, and if you still use Thunderbird 2, most of the good support for Gecko 1.9 and above will not be available to you since that version of Gecko doesn’t work well with NVDA any more.

Go get it, and give it a whirl!

What should the action name for an indeterminate checkbox be?

Wednesday, February 11th, 2009

As noted in this blog post, we’re currently working on implementing the accessibility for HTML 5 checkboxes that are indeterminate. An indeterminate checkbox is a checkbox that is neither checked nor unchecked, or half-checked if you will.

The first stage is complete: Firefox 3.2a1pre as of Wednesday’s nightly will expose such indeterminate checkboxes as what we internally call STATE_MIXED. There are still two work items left as far as we can see:

  1. Expose an action name for a checkbox that is in this indeterminate state.
  2. Make sure we fire STATECHANGE events for STATE_MIXED.

For action item 1, I’d like to call out to you guys to offer suggestions on what this action name should be. My initial idea is “toggle”. The reason is that we will never know whether the next state after clicking will be fully checked or fully unchecked. That always depends on the web site’s author to decide. That’s why I first thought of this neutral name.

Anybody got any better ideas, or even a suggestion derived from other such indeterminate, or tristate, checkboxes from operating systems? Post your ideas here or comment on the bug.

Implementing a new feature in Gecko that may have an impact on accessibility? Ping the accessibility team and tell them!

Monday, February 9th, 2009

This morning, Jeff Walden pinged me on IRC to ask me whether the new indeterminate DOM property for checkboxes that is being introduced in HTML 5 and which recently landed on Mozilla 1.9.2, has any accessibility implications. I did a quick check, and it indeed does have an implication: We don’t expose the partially checked checkbox state properly for html:input @type=”checkbox” yet.

Jeff then filed a bug on the issue, and I took on the task of exposing the correct state. It turns out to be a small fix that is needed to expose this extra state, so hopefully in a few days the sample page will work correctly in the nightlies.

This shows the importance of collaboration between the various backend and frontend teams and the accessibility team. Jeff was unsure, so he asked, and we “attacked” the problem right away, before it became a real problem, in the sense: We potentially release a product that has this not unimportant issue.

So if you implement something new in Gecko like new HTML 5 features, and you are unsure whether there could be any accessibility issues involved, I strongly encourage you to ping surkov, davidb or myself (MarcoZ) on IRC or shoot us an e-mail, or ask in the mozilla.dev.accessibility newsgroup. It may turn out to not be an issue, which is good. Or it may turn out that we have a work item to take care of, which is also good since this is not going to bite us out of nowhere in the future. Also, when the implementation is still new, we’re more likely to have the right fix in place with all memories still fresh.

Asking never hurts, so just ask once too often rather than once too less!

New feature: Nesting level and position information for HTML lists

Tuesday, January 6th, 2009

The new year has just begun, and we’re already speeding ahead with new features in Firefox trunk nightlies, AKA version 3.2a1pre. These features won’t see inclusion in Firefox 3.1, but are already the next generation features.

The feature I’m going to report on today has to do with position information and nesting level information of ordered and unordered HTML lists.

To give you an example:

  1. Apples
  2. Oranges
  3. Bananas
    • Apples
    • Bananas
    • Oranges

As you can see here, the unordered list is nested within the ordered list. The ordered list has a level of 1, the unordered a level of 2. Also, in case of the unordered list where a number is not provided, there is still an item count that we expose.

The information is exposed in a similar manner as listbox items, combobox entries, or TreeView element information. We have the following object attributes:

  • posinset – to specify the position within the set
  • setsize – the size of the set of items
  • level – specifies the nesting level

We also specify level and position information in the AccessibleDescription for convenience of screen readers that don’t use object attributes yet. So, the inner “Bananas” item has a description of “L2, 2 of 3″, just like a TreeView item would.

But my screen reader already has nesting level and item count information, so why bother?

Well…Because we’re nice! :-) We save newly supporting screen readers or those that don’t want to calculate these values themselves the trouble and do it for them. We know the underlying HTML anyway and can provide the information while building the accessible tree. There is no need to go in and calculate these items yourself any more, or you don’t even need to start doing it. Just use our values if you want to give your users this information.

Firefox 3.0.5 accessibility: New features

Wednesday, December 17th, 2008

Firefox 3.0.5 has just been released, and as the release notes mention, brings a few accessibility improvements. Here’s what they are!

  • Firefox 3.0.5 exposes all CSS display properties as object attributes now in addition to the older “formatting:block” parameter. However, the “display” object attribute values are more granular, mirroring the exact display attribute that is present on the accessible node. The only exception is display: none, for which we usually don’t create accessibles. Assistive technology vendors can use this new “display” object attribute to more exactly find out how certain objects blend in with others, are formatted etc. Firefox 3.1b2 also supports this, in fact this change has been “baking” on the Firefox 3.1 branch for quite a while already, and has now been back-ported to 3.0.5 for better compatibility.
  • There was still a problem left that certain types of elements could not take the focus when instructed to do so. This resulted in some elements not being activated when trying to do so from within virtual buffers.
  • For those screen readers not using IAccessible2, but using the iSimpleDom interfaces, a bug has been backported to 3.0.5 that would not properly handle the request to return the computed styles of an element. This should allow those assistive technologies using iSimpleDom interfaces to get more accurate style information out of nodes in Firefox 3.0.5, as they already can in 3.1.

Thanks to everyone who is continuously giving us feedback on our accessibility implementations!

Starting an Accessible Name refactor, need your help in testing!

Saturday, October 11th, 2008

For those of you following the Firefox/Gecko platform development, or for those interested in helping out, this is a call for participation. If you’re not afraid to get your hands dirty a bit and would like to help the Firefox accessibility team, now would be a good time to get involved!

The problem: The code that calculates the names for any created accessibles has been growing over time and became largely unmaintainable. New features suich as adding the aria-label property support requires code duplication for HTML and XUL, and in general the code has many stylish un-niceties.

So, our team has started a code cleanup and code refactoring series to get the code into better shape and maintainability.

As with any refactor, the result should be identical in output with what we started out from. However, as those of you familiar with software development know, the risk of regressions is there and should not be discounted.

While we do have test cases for many of these instances already, there may still be cases we’ve missed. So any help we get from the community will help make sure that the refactor goes smoothly, but also help fill in any possible gaps in our testcases.

So, how can you help? By downloading and installing the latest nightly builds of Firefox 3.1 for Windows or Linux, and testing the heck out of them. Use your favorite screen reader, use your familiar web sites, use it for day-to-day surfing. Obviously the most likely pages you’ll find differences on, if any, will be those pages you visit frequently, sites you know what the output should be.

If you find something that is different from what you know, you can download the last Windows or last Linux build before the refactor, unzip it into a separate folder, and compare your findings using that build.

If you find differences you did not expect to find, you have two main choices that will get the developer team’s attention:

  1. File a bug in Bugzilla:
    • Component: Disability Access APIs
    • Version: Trunk
    • Platform: PC or whichever you use
    • OS: Windows or Linux, depending on where you found the bug.
  2. Post a message on the mozilla.dev.accessibility newsgroup (Google Groups mirror).

In any case, your bug report should contain the URL of the page you are experiencing the difference with, the expected output of the element, and the output you’re now getting. Also, is that element a graphic, link, heading, form field etc.? Also, you should mention what screen reader you’re using. If posting to the newsgroups, it will also help to mention the operating system.

How to update the nightly builds to pick up latest code changes: The builtin Check for Updates feature, if invoked from a nightly build, will always grab an update to the latest nightly build and install it for you. So, you only need to download and go through the installation process once. You can then daily check for updates and get the latest code that way.

The first build to see changes will be the October 11 build, build ID 1.9b2pre/20081011.

Working with different profiles: If you don’t want to put your regular profile into the hands of the Firefox nightly builds, you can start Firefox.exe or the ./firefox executable with the -p option to bring up Profile Manager. You can then create a new profile and start Firefox with that profile. That way, your Firefox 3.0.x profile won’t be touched by the 3.1 nightlies if you choose not to. I’ve found, however, that the nightlies are very stable already, and I often flip back and forth between 3.0.x and 3.1 builds on the same profile without problems. The one thing that most certainly would happen is that some extensions may not work in 3.1 yet.

I’d like to thank all of you in advance who decide to participate in this effort and help everyone who relies on Firefox accessibility by testing out the code refactor. You can make a real difference because we obviously can’t test all of the web pages out there, and yours may just be the one we might miss out on.

Firefox 3.0.2 has been released, lots of accessibility improvements

Wednesday, September 24th, 2008

As was announced on the Mozilla blog, Firefox 2.0.0.17 and 3.0.2 security updates are now available. In addition to the security fixes, there have been a couple of significant accessibility improvements made to Firefox 3.0.2 that I’d like to give you all a heads-up on.

  • Firefox 3.0.2 is now compatible with JAWS 7.10. In an effort to make Firefox accessible to the widest range of users possible, we’ve identified and fixed a problem that prevented Firefox 3.0 and 3.0.1 from working with JAWS 7.10. If you previously tried to use Firefox 3.0.1 with JAWS 7.10, you would get a crash in Firefox almost instantly after launching it.
  • Similarly, we’ve identified and fixed a problem that prevented proper interaction between Firefox 3.0.1 and the public beta of JAWS 10. With some elements, if they were made visible dynamically, JAWS would not be able to pick them up correctly.
  • Fixes were put in for the doAction and doDefaultAction methods to allow clickables and some other elements like the “Compose” link in GMail to be properly activated by some versions of some screen readers. We previously had a bug that prevented these elements from being activated through the virtual buffers, requiring users to use mouse emulation to activate these elements.
  • Elements within a map element that were not images would previously not be rendered to any screen reader by Firefox. This has been fixed.
  • A random crash that occurred with some layout tables was fixed.
  • And a couple of API fixes were also made to ensure better compatibility with assistive technologies on both Windows and Linux.

I recommend you update to Firefox 3.0.2 as soon as possible to be able to take advantage of these and the other fixes that went into this release. Enjoy!

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

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!