Support for text attributes and spell checking is coming in Firefox 3.1!

For those of you on the bleeding edge, namely on the Firefox 3.1a1pre nightly builds, the Friday’s nightly build will include one big new feature in accessibility for 3.1: Text attributes and spell checking support!

This means that assistive technologies now have access to the attributes of any text run on a page via the IAccessibleHyperText::getAttributes or ATK/AT-SPI equivalent API calls.

For example, running today’s nightly build of Firefox 3.1a1pre on Windows, visiting my blog’s main page, bringing up Accessibility Probe, and navigating to the link below the Heading Level 1 that says “Marco’s Accessibility blog”, a call to IAccessibleHyperText::GetAttributes on the link accessible will get you this result:

getAttributes(1) = NULL

Not very fancy, huh?

Tomorrow’s build, however, will yield a completely different result:

getAttributes(1) = org.eclipse.actf.accservice.core.win32.ia2.IA2TextSegment[text=font-style:normal;language:en-US;text-align:center;font-size:40px;background-color:transparent;font-weight:bold;text-indent:0px;color:rgb(255, 255, 255);font-family:'Trebuchet MS','Lucida Grande',Verdana,Arial,Sans-Serif;text-underline-style:underlinesolid;,start=0,end=26]

So, not only do you get information about the font-family, style, color and backgroundcolor, you also get the language this text is in, the underline style, the font-weight etc.

Also when editing, and you misspell something, as soon as you hit spacebar and the red underline appears, the attributes of that word will change and will include “invalid:misspelling;”, indicating that this word is invalid in that it is misspelled. Of course, an according IA2/ATK event will be fired accordingly! Note that the denotation of this may change if the IAccessible2 and ATK groups decide on a different notation for misspellings. Right now, it follows the aria-invalid convention, and we hope that this will be accepted by the groups.

Over the next few weeks, we’ll fine-tune this feature to be a bit more performant and also iron out any last details that might come up.

But if you’re an assistive technology vendor and you’ve been waiting for us to finally expose these text attributes, now is the time to try them out and provide feedback.

Note that Thunderbird and other projects that will be moving to use the Gecko 1.9.1 platform will also get this feature. This means that inline spell checking notification can also be supported for those apps soon!

[Update]: This patch made it into Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1a1pre) Gecko/2008071803 Minefield/3.1a1pre just fine. So go take a peek!

The future of mobile accessibility, a hopeful lookout

In case you haven’t read it yet: Nokia acquires Trolltech. DougT also posted a follow-up article on the future, or lack thereof, of Symbian S60/S40, which you can find here.

For accessibility, this currently provokes mixed feelings. On the one side, the S60 platform has been a very successful accessibility story, with Talks and Mobile Speak being the most prominent representatives of access to this platform. Blind and low-vision users have come to depend on accessibility to their mobile phone’s contacts, short messages, MP3 capabilities or even navigational aids. To a much lesser extent, this is also true for Windows Mobile-based smartphones, but like in the world of general customers, this has taken off much less than Symbian has.

On the other hand, this move to an open-source embedded solution for future generations of Nokia phones may become an even greater accessibility success story. With the Gnome Accessibility proceedings on a very good way to wide-spread adoption, KDE needs to follow, or they’ll fall by the wayside with government organizations sooner or later. While KDE’s accessibility efforts are, compared to Gnome, still in a rather limited state of development, QT has made some significant progress in that it has become accessible on Windows recently by using Microsoft’s Active Accessibility.

It is my hope that not only can Gnome and KDE agree on sharing a unified interface for AT vendors, as expressed in this early posting on AT-SPI, but that IAccessible2 and Mac Universal access will also join forces in an effort to provide compelling access to a wide range of technologies. With this in place, this could also be carried over to a wide range of embedded solutions, providing a solid accessibility architecture on which screen readers and other assistive technologies can be built. In addition, this would make it a lot easier for software developers to ensure the accessibility of their applications.