Posts Tagged ‘Accessibility’

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!

Why are web forums so unpopular with the blindness community?

Tuesday, April 7th, 2009

Last week, David Tenser, Kadir Topal, and I received an e-mail from Dirk, a moderator at www.BLINDzeln.net, a mostly German-speaking community which uses mailing lists exclusively to promote exchange between their members. These mailing lists vary in topics from cooking and gardening to some pretty advanced computer science, psychology and others. Dirk asked whether it would be possible to create German-speaking mailing lists pertaining to accessibility to give those who have switched to Firefox and/or Thunderbird, or those willing to do so, a common place to go. He also said that he and other moderators thought about doing this at BLINDzeln, but didn’t do it because they wouldn’t want to create an isolated island, but encourage end-user exchange by asking Mozilla to do it on our servers instead.

In the e-mail exchange that ensued, two positions became apparent:

  • On the one hand, it was stated that blind people prefer the exchange through mailing lists highly over any other means of exchange possible on the net today, and that this is the easiest to access medium. This has a lot of merrit, since to subscribe to most e-mail lists, you don’t even need a web browser. If you know the mailing list address, you can send a subscribe request and acknowledge that by only knowing how you compose and reply to e-mails in your favorite e-mail program. Forums, on the other hand, are often secured against spam bots by CAPTCHAs, and the display is considered by many to be highly inefficient for reading. Newsgroups are somewhere in the middle, with the strict insisting on the netiquette by “usenet cops” being what drives new users away from this medium mostly.
  • On the other hand, David and Kadir advocated for Sumo and the German firefox-browser.de community forum respectively, stating that support personell and volunteers and most community members frequent Sumo and other forums highly, but hardly any mailing lists. On IRC, Kadir and I talked about this as well, and others who chimed in even used words as strong as “hate” when it came to the topic of mailing lists.

I did some research, and found quite some diversity in who uses which medium. For example, among Mozillians, mailing lists, which are mirrored to newsgroups and Google Groups, are the most frequented way of doing development planning discussions, project-specific exchange etc. With mailing lists on one hand, and an almost forum-like display at Google Groups on the other, this is a very cross-over way of offering access to the groups. But one does not see many end users here. There are support-like newsgroups, but compared to the number of users we now have, the traffic is comparably low. The MozillaZine forums enjoy very high traffic by comparison.

In other areas, I found the same picture. The more end-user, the lesser techy, the more popular web forums are. The more techy, the more things take place in mailing lists rather than forums. Granted, most mailing lists have a web-accessible archive nowadays. But even that’s controversial: In the above mentioned IRC discussion, one person I’d consider to be rather technically versed mentioned that he hates mailing lists and the typical Mailman archive format on the web because it shows only one post at a time, requiring him to click constantly to read through a thread.

Interestingly enough, in the recent screen reader survey results published by Webaim, web forums were not mentioned in either list of web sites, neither particularly accessible nor particularly inaccessible.

So, what is it that makes so many blind people go to mailing lists instead of web forums, sort of contrary to most of the main stream on the internet today? Are web forums inherently inaccessible? Or, is this one of those things that sticks around while the actual picture has changed, but the blindness community simply has failed to notice?

Provocative questions, I know. One of the things that drives blind people away, and which also drove me away from forums for a long time, is the spaghetti-ish nature in which many, especially older, forum software displays threads. It is very hard to find the beginnings of posts, making it difficult to skip over a reply that is of no interest. As blind people cannot visually skim forum topics like sighted people can, this is essential to efficiently navigate and participate in forums.

Here are some examples of forum post views that may give some clue as to where this resistance to use web forums amongst the blindness community may come from, and where it may also no longer be justified:

  • In this thread on the MozillaZine forums, each reply starts at a new item in the definition list that is used to display the topic. With the other lists inserted to encapsulate the “Reply…” and other info/action possibilities, simply jumping from list item to list item, as one would first expect, does not really get you quickly to the start of the next post within the thread.
  • This thread on the phpBB community forum shows a nice way to do things: Each reply starts at an HTML heading element, making it very easy to skip forward if one doesn’t want to read the rest of the current reply. Since both phpBB.com and MozillaZine use phpBB, this seems to be a question of theming the forum.
  • Also based on phpBB, but on an older version, is this example from the German DelphiPraxis community forums. This is what I referred to as the spaghetti view earlier that drives me and others away from forums. It’s a tabular layout, done with HTML table and descendant elements, and each post within the thread simply gets its own new row. Most screen readers do offer a way to navigate tables by row, but the keystrokes for doing so are much more cumbersome, requiring usually both hands to execute them than is good for casual reading or browsing. Table navigation is made for consciously interacting with data tables. I have seen similar table-based constructs in both VBulletin-based forums as well as the Carookee.com forum service.The German firefox-browser.de community forum uses a similar display right now, however this will probably change once they upgrade to phpBB3.
  • Looking at bbPress, the companion to the WordPress blogging software, they use a similar list-based display style as MozillaZine in terms of markup, but no intermingled lists, allowing to quickly skip ahead to the next post if the current one doesn’t interest me.
  • Lastly, the Sumo forum display shows a series of divs that are used to show the posts within a certain topic, but no special semantic markup to help navigate from one post to the next within an individual thread. It is similarly spaghetti-ish right now, with the difference being that it uses divs instead of layout tables.

Disclaimer: The topics chosen above and the comments made about the quality of the individual display styles is not meant to reflect on the quality of the forums themselves. They’ve merely been chosen for illustration purposes in the accessibility context of this blog.

As the display of the phpBB community forum post shows, there are possibilities to choose really accessible forum themes and create an attractive forum that also blind people might like to use. However, there’s also still a lot of forum software out in the wild that does not conform to any modern accessibility standards and thus offers a rather unattractive accessibility experience.

Also, one thing that I briefly mentioned are CAPTCHAs. Fortunately, with Firefox 3 and WebVisum, these are solvable for blind users. Or audio CAPTCHAs are spreading more and more, making this a barrier that is possible to deal with given the proper tools.

And now, I’d like to hear YOUR opinion on this topic! Do you prefer forums over newsgroups or mailing lists? Do you prefer to read on the web or in your e-mail client, in your RSS reader? Do you easily keep up with where you left off reading in a certain thread? What are the challenges you’ve faced dealing with forum software in the past or present?

On the other hand, if you’re a forum user and don’t like/use mailing lists, why is that? What do you find more attractive about forums that makes you not like mailing lists, or even hate them?

Welcoming your comments!

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.

Last week in the “Accessible” module, March 24, 2008

Tuesday, March 24th, 2009

As the accessibility team was at the 2009 CSUN Center on Persons with Disabilities conference last week, not much happened on the forefront that is visible to bug and code watchers. The only changes that landed were:

However, as David mentions in the above mentioned post, we took the chance to put our heads together and develop ideas for future features and also talked about some hands-on issues that need more immediate attention. Also, it was the first time David and I, and David and Alex met in person. I had already met Alex last year in Whistler at Mozilla’s 2008 Firefox+ summit.

Additionally, Ben Hearsum has been active in trying to get our accessibility Mochitests run on Mac unittest tinderboxes, but ran into some leaks that require further digging because we don’t use either class explicitly in the platform-independent or specialized Mac code. We’re probably uncovering a leak that’s hidden somewhere else. If anyone has any good suggestions off the top of their heads, please feel free to step in!

That’s it for this week.

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

Monday, March 16th, 2009

Last week, we focused mostly on some solidification on our code and test framework. We are having some strange problems with tests failing randomly or not being run at all. To that end, I fixed the loading of remote images in Mochitests, which is always a dangerous source of failure if an image can’t be loaded from the remote site. David also discovered and worked on protection against some failures in our doAction tests.

David also fixed a PRBool violation uncovered by code analysis. He also cleaned up our object attribute exposure code and added tests to make sure aria-sort gets exposed as an object attribute properly.

David also fixed exposure of mixed and checked states for ARIA and HTML 5. Mixed should not be checked at the same time, and vice versa. I helped out with tests on this one.

I refactored our nsAccessNode caching test. There are only 2 files left to refactor now, and one of those is currently disabled.

Alex cleaned up static casts to ATK roles. He and Ginn Chen from the Sun Microsystems China office also chased down one of our top crashers and Gionn found the root cause for this we believe.

David and I agreed to request that accessibility and the accessibility unit tests be enabled on the mozilla-central unit test tinderbox for Mac. This is the first step in getting Mac accessibility efforts moving again. We are currently anxiously awaiting test results from a run on the staging servers. Cross your fingers!

In other matters, David, Alex and I will be at CSUN in Los Angeles this week, so if you’re in the area, come and drop by our booth! We’re being joined by Frank Hecker of the Mozilla Foundation, Mick and Jamie from the NVDA team, Eitan Isaacson, a regular Mozilla grantee, and Aaron leventhal, without whom we’d probably not be sitting here today.

The venue opens Wednesday at 4 PM and runs through 7 PM, Thursday and Friday it runs from 9:30 AM to 5 PM, and on Saturday it runs from 9 AM to 1 PM. I’ll be holding a presentation on Friday at 12PM talking about what we’re currently doing, and planning to do in the future, with Mozilla accessibility, so if you can still get a seat, come on over and let’s have a chat!

See you all next week, where I’ll be reporting a bit about what the venue has been like. I’ll also be updating my tweets, so if you like, follow the hashtag #csun09 on Twitter for my and other people’s updates.

Happy birthday, world wide web!

Friday, March 13th, 2009

Today, CERN will celebrate the 20th birthday of the world wide web.

I’d like to take this opportunity to thank Tim Berners-Lee for writing the initial proposal and sticking to the idea even though his boss, Mike Sendall forgot about it after calling it “vague, but exciting…”.

For me, the web has opened a ton of possibilities that I would have otherwise required sighted assistance with, or which would not be possible for me to do at all, such as casually browsing the New York Times or the Hamburger Abendblatt. I would not be able to look for specific items on, or simply browse the offerings of Amazon. I would not be able to sell no longer needed items on eBay.

Without the web, the world of newspapers would always be more or less hidden from me, unless a sighted person read something to me. The truth is, even though there is very good optical character recognition software out there, newspaper layouts are simply too much to cope, let alone that most newspaper formats don’t fit on off-the-shelf scanners, or even those scanners produced by assistive technology firms.

For shopping, I would always have to rely on someone else to share what they thought the most interesting or compelling offerings in a shopping mall were. It would not be solely my decision what CD I’d buy, what electronic gadget was best for me etc. Oh yes, in many cases I would probably get what I wanted, but it would never be my 100% freedom of choice without depending on others to help me.

And to sell my no longer needed items, I would have to request the assistance of a magazine agent or enlist a sighted friend’s help with preparing an ad, getting it sent in to a magazine publisher, etc.

And these are just some of the things the web has allowed me as a blind person to do independently that were not possible before.

Also, other persons with disabilities benefit hugely from the web, like hearing-impaired who can communicate with anyone without the barrier of most others not speaking sign language. I don’t think it’s exaggerating to say that the web has revolutionized the way persons with disabilities can participate in society.

And that brings me to a point David Baron raised. I can only echo what Wendy Chisholm said in response. I consider access to information just like anyone else to be a right I have as a human being, and the web is the only independent means of doing so. If anyone would try to take that away from me, I promise that I’d prosecute them to the full lawful extent possible.

However, let me emphasize this: I utterly disagree with John Foliot who said that Bespin should never have been released because it uses the Canvas element which is not accessible currently. Here are my reasons for that:

Bespin is not a released product, it’s a Mozilla Labs project that is in a highly experimental stage. Being as open as Mozilla, who share everything we do with the public, some might easily get misled and think that this is a released product already. I can only suggest: Read carefully, then you won’t fall into that trap.

Bespin shows us that the Canvas element can be used for more than just rendering some nice and shiny graphics. It shows that there are still deficiencies in the HTML 5 Canvas element design which need to be rectified as soon as possible. And this is what experiments are for, and always have been: Experiments are there to learn from and improve upon.

The history of the web and the development with the Canvas element we’re seeing now aren’t all that dissimilar in fact. Berners-Lee’s experimental and first theoretical proposal only later turned into something that could actually be useful, when he received his NeXt workstation where he could finally start programming the first web server. He could not have known what would once become the web as we know it today. The inception of the Canvas element probably also happened without realization that someone might actually build a code editor upon it.

In that sense, I am very very thankful for the Bespin team to share their work as early as they did. You guys have shown the web community that there is still work to be done to make Canvas content accessible to screen readers. So rather than whining about Bespin not being accessible, and pushing the developers into the defensive by reflexively yelling before thinking things through, we should get our act together and find out a way to make it accessible soonish! Bespin is a chance, not an evil deliberate move to exclude people with disabilities.

In that spirit, a wholehearted HAPPY BIRTHDAY WORLD WIDE WEB!

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

Monday, March 9th, 2009

Last week’s work saw quite some code cleanup.

Unification of role and finalRole

Previously, our nsI*Accessible interfaces exposed both role and finalRole properties. While role returned a preliminary role, finalRole always returned the finally determined role after all markup and ARIA processing had taken place.

It turned out that the role was hardly ever used, but everyone always asks for the finalRole. So, the decision came about to file bug 481357 and get rid of finalRole and make role do what finalRole did previously.

As a prequel to that, bug 482013 was fixed, refactoring all test files to use the common getRole and testRole functions in the testing framework. As a result, only one instance of .finalRole had to be dchanged to .role in the bug linked to above, to make all tests still work right.

This change will be exclusive to Gecko 1.9.2, since it will need some adjustments in DOM Inspector and other extensions that use our accessibility interfaces.

Crash fix in tree table code with some side effects

Alex also fixed a crasher in the tree tables implementation of getChildAtPoint/getDeepestChildAtPoint. After a fix for a leak that was uncovered by the test, the tests are still failing on Linux because of wrong coordinates we’re getting back. Investigation into this is still ongoing.

Originally, bug 471493 was also supposed to introduce crashtests specific to a11y. However, it appears that, once a crash test has turned on accessibility, that remains on for the remaining crash tests, and some of the others didn’t react well to that. A solution is under investigation.

Speaking of leaks

While investigating bug 420068, Alex found this memory leak. After he fixed that, the other bug seems to have been resolved, too.

Further test refactoring

I took on our table testing code and refactored it to use the new infrastructure. 4 more files that no longer use their separate implementations of retrievals of accessibles etc. That leaves 3 more files to go, and one of them is disabled right now because of bug 437980.

I also finally got the tests for aria-activedescendant refactor off my back. This one had been going on forever (or so it felt).

HTML 5 features

One thing I forgot to mention last week was that a few weeks back, the “indeterminate” property new to HTML5 was introduced to HTML:input @type=”checkbox” elements, effectively giving them the ability to be partially checked, for example as a master checkbox to dependent checkboxes. As expected, we didn’t expose the mixed state properly on these yet, so I took on that task. As a sequel, I’m currently working on exposing a proper action name for these as well. I’m having some trouble getting the tests to run properly, though. The tests go into an endless loop when I run them locally, so until I found out why, I’m hesitant to throw these at the tinderboxen. If anyone has seen this happen at all, suggestions are welcome. A sample log excerpt can be found here. The tests start running this test_comboboxes.xul file, then the whole a11y test suite starts running all over.

More text attribute fixes

Alex got the font-weight bug resolved, so font-weights are now properly exposed according to the visual representation and not through some seemingly arbitrary numbers.

aria-sort, aria-grabbed, and aria-expanded action exposure

David has been sinking his teeth into this one and has come up with a great idea to solve this. Since no desktop app ever exposed many of these things especially when it comes to a controlled drag and drop action from a screen reader’s point of view, this one requires careful thinking and design as well as good communication with AT vendors to get right.

Progress on plugging in accessible trees from plugins

Recently, community member Brad Taylor approached us with the question of plugging in accessible trees from plugins into our accessible tree on Linux, integrating third party plugin accessibility nicely with ours. A bug was filed, and Brad has been working on this, regularly communicating on the accessibility channel with David. A first WIP patch was posted on Friday.

That’s it for this week.

JQuery UI 1.7 released

Saturday, March 7th, 2009

The jQuery UI team has released jQuery UI 1.7. Congrats on this release!

One thing the team did not mention in the above blog post is the fact that jQuery UI 1.7 is the first version to contain WAI-ARIA enhancements, making the widgets more, or at all, accessible. WOOT!

It’s really cool to see another big player in the JS widgets field to adopt WAI-ARIA, making modern websites more accessible the moment they just switch to this version of jQuery UI.

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!

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

Monday, March 2nd, 2009

This is the first in an ongoing weekly series where I’ll highlight items that the accessibility team has been working on over the last week. I’ll be reporting on fixed bugs, or will also call out on items that we might appreciate your help on.

Since this is the first issue, and my last update on a concrete new feature/major change has been a while, here’s a broad overview over what we’ve been up to over the past two months or so.

Automated tests on all three active Firefox development branches

Since December 18, 2008, all three Firefox branches that are under development run accessibility mochitests. These branches are:

  • Gecko 1.9.0, off which Firefox 3.0.x is being released. These tests actually have been running since roughly the Firefox 3.0.4 timeframe in October.
  • Gecko 1.9.1 AKA Firefox 3.1. This is the branch Firefox 3.1 will be released from.
  • Mozilla-central. This is the development branch where the next major release after Firefox 3.1 is being developed, with new features going in and more experimental stuff is happening right now.

The most interesting of these is definitely the mozilla-central branch. Both Gecko 1.9.1 and 1.9.0 receive back ports of important features/bug fixes from this branch. The number of tests that run in the accessibility code has surpassed the 2,000 mark two to three weeks ago. We started in December with about 1100 tests.

ARIA 1.0 compliance patches

David has been working on ARIA 1.0 compliance patches and started to put in some good infrastructural stuff as well. Interesting items are:

Alex implemented the ARIA spec’s name from subtree calculation algorithm. Of course, despite all the tests, a regression had to creep in, but after that’s fixed, I believe we’re in good shape. The visible result, especially for authors of ARIA-enabled we bapps, is that the Firefox 3.2a1pre nightlies should now always behave according to spec when calculating the name from those elements/widgets that call for its subtree to be aggregated as its name.

As a side note for those interested in the effect our automated tests now have: When Alex tried to land a fix for bug 463645, it clashed with the above mentioned name from subtree bug in an unexpected way, causing an immediate orange flag on the unittest tinderboxen. We’re looking for a solution to that problem right now. Hadn’t we had these tests in place, it would have taken a while for this regression to creep up in manual testing. This way, due to an immediate backout of the offending code, no nightly build ever saw this happen.

New for text attributes

David implemented the conversion to pt algorithm that IAccessible2 calls for on Windows. This change is also in Firefox 3.1.

Alex implemented a faster way of retrieving text attributes,a nd he and I teamed up on better better test coverage for this area.

Accessible relations improvements

Alex worked on better accessible relations support, allowing for a relation to have multiple targets. This will allow assistive technologies to get at aria-labelledby relations correctly. As a sequel, 1:1 relations between tabs and tabpanels were also implemented, allowing ATs to better identify which tab a tab panel belongs to.

Proper reorder events

Alex, our man for big patches :-) , also created a fix for a long-standing bug involving reorder events on DOM mutation changes. Several screen readers need these events to keep track of dynamic changes on web pages to keep their virtual buffers up to date. Some recently inconsistent behavior that often required the user to refresh their virtual buffers manually, should now work much better. This change also is included in the Gecko 1.9.1 branch already, waiting to debut in the upcoming beta 3 of Firefox 3.1.

Thunderbird 3 reading panes

The Thunderbird 3 reading panes received a fix to the way they expose the “from: ” etc. header information. When tabbing through these header fields, one now immediately hears which type of header this is with a compatible screen reader.

This fix was done by Yuen Hoe, a student at the University of Singapore, as part of the NUS Mozilla students project. He picked this bug specifically. Thanks Moofang!

Because this patch relates very closely to SeaMonkey, it was ported there as well, however users can’t take full advantage of this yet in SeaMonkey because of a keyboard navigation issue in the message reading panes.

Better accessibility in SuMo’s live chat

SuMo, Mozilla’s support community, offers a live chat facility that alows users to get help quickly. This live chat was previously not very accessible.

However, Gijs Kruitbosch, the mastermind behind ChatZilla’s accessibility features, worked on a fix, which will see the light in one of the next Sumo updates.

I know this is not strictly the Gecko Accessible module, but nevertheless very important to the over-all Mozilla eco system, and that’s why I’m mentioning it here.

On other fronts

I’m currently working through some of the earliest test files to make them use the common accessibility retrieval and events structures that were implemented more recently. This will help maintainability and make sure that if we add new features to these common functions and classes, every test will benefit from them.

On Windows, all active branches will be more correct in what service IDs they accept when calling the QueryService function. This insures better compatibility with Windows 7, among other things.

Thanks for sticking with me until now! The next reports will be shorter, I promise! :-)

Of course, we welcome your feedback on this kind of post, or on specific areas. So feel free to comment here!

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!

Accessibility fix in 3.0.6

Wednesday, February 4th, 2009

As you may have read already, Firefox 3.0.6 was released on Tuesday. Among the fixes introduced in this version is one for accessibility. It has to do with CaretMoved events and selection changes not being communicated to screen readers properly in the past.

One immediately visible change is that, when you open ChatZilla, the accessible IRC client extension. Previously, your screen reader would have told you erroneously that your focus was in the textbox where you type your message, when it was actually on the output HTML content.

Also when selecting text, you should now get more accurate results under many circumstances than before.

These changes should have a positive impact on all supporting assistive technology.

Enjoy!

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.