Tuesday Apr 28, 2009

BrlTTY LogoOpen Solaris LogoWe've had BrlTTY running and shipping on OpenSolaris for a very long time now, but we've never made it convenient for the user to launch BrlTTY. As it ships today, there is no support to launch BrlTTY as a system service. Instead, users typically need to launch BrlTTY by issuing a command by hand.

I spent some time digging out of e-mail after a productive trip to Ireland last week (blog to come soon), and made faster progress at that than I had expected. One of the e-mails was YAHDILBOOS ("Yet Another How Do I Launch BrlTTY On OpenSolaris", pronounced "yaddle booze"), so I figured it was time to bite the bullet and make an SMF manifest for BrlTTY. Other than doing some trivial ones for the accessible live CD, I never really dug into the SMF facilities. It was actually quite easy after reading the various documentation on SMF.

For me, the hardest thing to find was how to use a property. Sure, I could define a property in the XML manifest, and I could set and get it using the setprop and listprop options of svccfg, but I had a fair amount of difficulty finding docs that actually described how to use properties. From the man page for smf_method, I figured out that you can just use %{property_name}. That was all I needed and I got everything sorted out from there. The XML file and the writeup on how to use it is available under the "Running BrlTTY on Solaris" section on the Braille page of the Orca WIKI.

Note that this merely sets up an SMF service to launch BrlTTY and assumes your braille display is connected and turned on. At some point, I want to do some autodetection that a braille display has been connected to the machine and automatically launch BrlTTY when that happens. I've logged OpenSolaris defect #7614 to track that.

Friday Dec 19, 2008

GNOME FootprintGNOME AccessibilityAround this time each year, I tend to reflect on who I am, where I am, and where I want to go. With the economy tanking and Sun having more layoffs, I had a lot to think about this year.

A brief history. Soon after I joined Digital Equipment Corporation a little over 20 years ago, I saw it start shrinking from about 130,000 employees to just about half that size. Towards the end of my time there, I don't believe a week went by where I didn't see a group or two gathered around the coffee station. The discussion was always the latest news about who had either been sold to another company or "right sized", which was the euphemistic term for being let go during the DECxecution era. The coffee station was also a hot spot because there was usually more than enough early retirement cake to be had on any given day.

Seeing good friends leave and having the Sword of DECocles hanging over my head for almost 10 years was emotionally tiring. I stuck it out, however, because DEC continued to fund my work on X Windows Accessibility. This work included the Remote Access Protocol (RAP), which is one of the first approaches to an accessibility infrastructure for the desktop. X Windows development was also about as close as I could get to open source development at the time. Many thanks to my management at DEC for supporting this work for as long as they did.

DEC eventually decided to drop its graphical desktop work, so my work went with it. I stayed at DEC and did a short stint with a team working on a 64-bit port of some god awful garbage Windows networking code - the people on the team were great, but the work itself was a small step above self trepanation. That's when I knew what flowed in my veins: if you cut me, I would bleed accessibility.

Enter Sun, which was ramping up on the Java programming language. My good friend, Earl Johnson, recruited me and Peter Korn to do the design and implementation of Java Accessibility. It was a great way to carry forward a lot of what I had learned with RAP and it also represented a bold move from Sun -- Sun had the foresight and courage to make accessibility considerations from the early days rather than retrofitting it at a much later date. Cool stuff.

Fast forward almost 12 years. During that time, Sun continued to fund, lead, and innovate in open source accessibility, with GNOME being the poster child for accessibility that was "built in" rather than "bolted on". It is also well known that Sun has gone through some hard times, unfortunately forcing it to add the word "RIF" to the "Executive's Guide to Euphemistic Layoff Terms and Phrases". One of the recent RIFs hit really close to home, causing a drop in my morale. I continued to focus on making OpenSolaris Accessibility happen and moving GNOME Accessibility forward, however, since the best thing you can do during times like these is focus on what you can control.

As Sun announced even deeper cuts, I began to focus even more on what I could control. I cannot control my job security at Sun, for example, but I am currently lucky enough that I can control whom I work for. I interviewed with a creator of a very popular and successful Windows assistive technology. Of all the Windows assistive technology providers, this company receives my highest praise and respect for creating the world's best product for what they do, for having wonderful corporate values, and for having a great team of people. It was a dream job.

The company made me an offer and then reality hit home. I was 95% sure I was going to take the job, so I began working on an exit strategy to help keep GNOME Accessibility going after I left. I started creating the exit strategy by writing down the various touch points I have in the space. As a result of that exercise, I had a revelation similar to the one I had when I was working on that 64-bit port nonsense at DEC. To relate it to Christmas, you might say my heart grew three times that day.

I work on open source accessibility because I believe it is the right thing to do. I do it because the people who need it the most are often those who cannot afford it. I do it because I believe the work we do is quality work that provides compelling access. I do it because it has positive global impact. I do it because it is a space where we can be more agile and innovative because we do not hide behind intellectual property barriers. I do it because we are a community of people working together to achieve a common goal. I do it because if you cut me, I bleed accessibility.

I also do it because Sun supports it. Bill Vass, who is Sun's COO and President of Sun Microsystems Federal, recently blogged about OpenSolaris 2008.11 Accessibility, which I worked hard to make happen this year. For me, OpenSolaris 2008.11 is proof positive that compelling open source accessibility is an achievable goal. It helps validate the work we've been doing for years, and it helps heal the aches and pains of 60-80 hour work weeks to make it happen. I also worked with many other teams inside Sun to achieve this goal and saw that accessibility really is a core value at Sun.

So, I have decided to stay at Sun. While layoffs may hover over my head, Sun currently supports the work which is part of who I am and where I want to go. For me, that's a great place to be.

Monday Nov 17, 2008

Orca LogoOpen Solaris LogoSo, I finally got around to getting my OpenSolaris 2008.11 b101a rc1b build environment set up. I know it seems strange that it took me a while to do this, especially after doing the work for the accessible 2008.11 live CD. But, the world changes around you constantly and you need to change with it. So, starting with a virgin 2008.11 b101a rc1b system, I just performed the necessary steps to get my build environment set up. Here's a quick summary:

First, get the packages that are available on pkg.opensolaris.org:

pfexec pkg install ss-dev SUNWgnome-common-devel SUNWperl-xml-parser SUNWgnome-doc-utils SUNWmercurial SUNWdistro-const SUNWgnu-emacs SUNWgnu-emacs-gtk SUNWvncviewer SUNWgnu-gettext SUNWgnome-fonts SUNWIPython SUNWpython-setuptools SUNWgnome-python-extras SUNWdoxygen openoffice

Next, grab the JDS CBE (JDS Common Build Environment) stuff that's set up for an IPS-based distro such as OpenSolaris. The stuff is currently kind of in test mode, but it works well. Install it using the cbe-install executable that comes with it. All you really need to do is basically say "yes" to just about every question that the installer asks. That is, choose the answer that requires you to think or do as little as possible. You can download the stuff from here:

wget http://dlc.sun.com/osol/jds/downloads/cbe/test/desktop-cbe-1.7.0-rc1-x86.tar.bz2

Finally, get aclocal set up so the m4 macro processor will work right (thanks MattMan!). To fix this ensure the file /usr/share/aclocal/dirlist exists and contains the following :

/usr/sfw/share/aclocal
/opt/dtbld/share/aclocal
If you don't do this, you will get this error if you try to run Orca's autogen.sh:

unrecognized option `--debugfile=autom4te.cache/traces.0t'

Monday Nov 10, 2008

Orca LogoOpen Solaris LogoIt's been a long time since I started the accessibility work for OpenSolaris. With the OpenSolaris 2008.11 b101a-rc1b release candidate all the pieces of the puzzle have finally come together: eSpeak, the distro constructor, GNOME 2.24, etc. It's been so long in the making that it almost feels anticlimactic for me. A very nice e-mail, however, came across my desk this weekend. I had to pinch myself and even question Josh (the person who posted the message): did he really use OpenSolaris 2008.11? How could this be? Josh responded and confirmed that he just went ahead, downloaded the image, and installed OpenSolaris 2008.11 build 101, release candidate 1b. In base-29 talk, that's "osol-0811-b101-rc1b".

What the what?

Yep, it is actually possible, and Josh shows us that a user can install OpenSolaris independently. I also believe Josh is the first blind person outside Sun to have ever successfully installed OpenSolaris - way awesome. Give that guy a cigar! Note that the user experience is still a little bumpy, but I'm OK with that for 2008.11. Rather than perseverating on a direction that might be completely misguided, I wanted to make 2008.11 a release where we would have *something* for users to try and then transfer user feedback into improvements for 2009.04. This falls in with my belief that we really should let the user requirements drive the architecture and not the other way around.

More information can be found at the following links:

Try it out. Help us make it better. Send your feedback to indiana-discuss at opensolaris dot org. Log bugs and add feature requests at http://defect.opensolaris.org/.

Friday Nov 07, 2008

Orca LogoThis is basically a reblog of Steve Lee's blog entry about AbilityNet releasing 3 netbooks/UMPCs based on the ASUS eee PC with open assistive technology included. Ubuntu+Orca is one of the configurations, which is way cool. In the summer, we had done some work with their director of development, David Banes. I hadn't heard from him in a while and figured he might have been investigating other netbook hardware. Based upon the announcement, though, I guess things are working out OK. Awesome. Head to Steve's blog for the details.

Thursday Nov 06, 2008

I'm really not one for flash or pizazz. I avoid clothes with logos, except logos that I made a choice to wear that day (e.g., a GNOME T-Shirt to a GNOME meeting). The woman who cuts my hair has yet to get me to put gel in it; she also gets mad when I shave my head each spring to keep my head and helmet from getting gamey when I race. I picked my road bike for how it fits and handles, not for how it looks. My car is a 1996 Toyota Corolla Wagon, not for the sleek smooth lines, but because it holds my entire keyboard rig and it gets 33 MPG. For the most part, I guess I'm just a practical guy interested in content and utility, not fluff.

I do want to get some western boots, though, because I like their style. I guess that makes me inconsistent, which puzzles me on days like today where I fall victim to omphaloskepsis. Today's lint chasing is due to the fact that this dinosaur finally started using a style sheet. I guess I've been a CSS hold out because I think styles come and go but good content lasts forever.

Here are two pages:

Which one do you like better? If you have some vision, you'll probably choose the first one. If you have no vision, I'm not sure what your answer will be. The HTML markup for both links is currently EXACTLY THE SAME -- I just copied the about.html from projects.gnome.org to master.gnome.org and didn't make any changes to it. The only difference is that I prevented the second one from finding its style sheet.

I like the first one better. It's visually appealing and doesn't look amateurish like the second one does. But, geesh, the content is identical. In fact, I think I like the second one better. The second one gets rid of all the fluff and lets me focus solely on the content. Then again, because it looks amateurish, it appears that the author didn't spend much time on the page. So, why would I want to spend time reading it? But, I'll wager that I could omit important content and introduce 25 spelling and grammatical errors to the first page and people would still think the first page is better.

I guess for creating and editing a page, I'm better off looking at it without a style sheet, just like I might be better off writing slides in "outline mode" first. In any case, I guess my belly button has spoken: "Just as you should not judge a book by its cover, you should not judge a web page by its style sheet."

To relate this to accessibility, I think it's important to remember your audience includes people who will be accessing your content in a non-visual manner. Don't just beat it to fit and paint it to match with a CSS -- make the content meaningful, organized, and easy to navigate. Easier said than done, but we'll all be better people for trying.

Tuesday Oct 14, 2008

GNOME FootprintGNOME AccessibilityAs I mentioned in a previous blog entry, this year's summit was to be held Columbus Day Long Weekend (October 11-13) in Boston, MA. Well, it happened and it was awesome.

GNOME Accessibility community volunteer extraordinaire, Joanie Diggs, and I commuted down from New Hampster each day in my 12 year old, 33MPG, green Corolla wagon, doing our best to conserve energy and be nice to the environment. Plus, it also meant Joanie didn't drive, meaning that the roads were that much safer. So what if I did a three lane dive to make a right turn in the middle of heavy traffic...I used my turn signal after all. In fact, I'm almost positive it blinked more than once.

As a reminder -- this was a summit, not a conference. As such, it was geared towards informal face-to-face discussion and hacking, of which we did plenty. The purposeful reduction of organization was unsettling at first (i.e., step 1: find the MIT building we're meeting in), but this actually helped reduce the pressure of needing to be somewhere at a certain time, allowing us to be somewhat free.

OK, enough blathering. Specific things:

  • WebKit: some WebKit folks were there (e.g., Pierre-Luc Beaudoin), and we went over the AT-SPI and what an assisitve technology expects to get from a good implementation. Joanie then built Alp Toker's special accessibility branch of WebKit and went over it with the WebKit folks in accerciser. This was extremely beneficial because it helped the WebKit folks understand the scope of the problem much better: there's still a lot of work to do. In addition, Vincent Untz was also present, so he too got a better understanding of where WebKit is with respect to accessibility. This is one of those things where a face-to-face discussion saved us all lots and lots of time and helped get the WebKit folks going in the right direction. Many many thanks to the WebKit folks for being so receptive and willing to work on accessibility, and many thanks to Joanie for going over WebKit with accerciser.

  • AT-SPI/D-Bus: Mark Doffman, Mike Gorse, and I hacked on the D-Bus implementation and actually managed to get Orca to kind-of-sort-of speak with it. It was a very good exercise and helped give me a great understanding of where the implementation stands. From what I can see, the overall object hierarchy is in place and AT-SPI object events are being delivered somewhat reliably. There's still some work to be done on the registry to allow an assistive technology to discover applications and also on the input device event mechanism to allow an assistive technology to intercept and consume input device events. Both Mark and Mike are great guys and I suspect they will have these features worked out soon so that we can get on to debugging and performance analysis. Like the WebKit discussion, being able to sit down face-to-face helped us speed many things along. If we had to do this via the phone, chat, or e-mail, it would have taken a very long time. If you want to try it out (Mark and Mike want you to), check out their web page. Please also give them feedback on the web page, too, to help make it easy for others to experiment with the work.

  • XEvIE: while we didn't have a decent discussion about XEvIE, I was able to make a great connection with an awesomely smart 17-year-old sophomore from RPI: Rob Carr. Rob is an ex-Compiz developer who also understands a fair amount about the input side of X. He said he'd be willing to take a look at XEvIE and try to bring it up to date so it doesn't get kicked out of X altogether (or to at least bring it back from the ashes). I'm going to see if we can turn this into a GOPA task -- the work will be valuable and I think Rob should be compensated if he can do the work.

  • gnome-session: Ray Strode and I sat down and talked about the various gnome-session and gdm changes that occurred in GNOME 2.24. This was a very valuable thing for me because it helped me understand why we are seeing some quirks and potential ways to work around them. In addition, Ray and I also talked about migrating Orca to use gconf as part of our plans to refactor Orca. We went over a few examples in gnome-panel which kind of paralleled what we might do in Orca.

    We also talked about a few ways to manage the user experience of people selecting the presentation they want from the desktop (e.g., "give me speech", "give me braille", "give me magnification" as opposed to "give me Orca") while allowing Orca to remain a singleton instance. Two viable options include doing this via gconf settings and via D-Bus. When we get further with the Orca refactor, I'll revisit these ideas.

    Ray and I also talked about better integrating Orca into the desktop via an autostart desktop file that would automatically restart Orca if it crashed. This may or may not be quite what we want, but it is still worth investigating further.

    Finally, Ray and I talked about some specific ugliness we were doing in the Orca shell script. I ended up ripping a lot of it out as a result of our conversation, helping fix a couple issues that came up as a result of the new gnome-session 2.24 work. Many thanks to Ray for his time.

  • Network Manager Applet: I spoke with Dan Williams, who works on the Network Manager Applet which presents a status icon in the panel. We talked briefly about ideas to make it more accessible, and Dan was very receptive to the idea. I think we need to move forward with trying to make GtkStatusIcon more accessible (I'll ask Li about this when I'm in Beijing). Like everyone at the summit, the interaction with Dan was great. He was receptive, positive, and willing to work.

  • Testing: we had a wonderful discussion on testing at the summit. Both Vincent Untz and Brad Taylor were involved, and we talked about ways to move our dream of more global testing forward. One of the biggest goals is to make this a community effort so that many people can contribute and to also make a "make test" target for each application. We discussed Dogtail, LDTP, and StrongWind, with our general consensus seeming to be that StrongWind is the better starting point. The next steps are to try to cheerlead this effort some more in the community and see if we can find someone to drive it. I'll try to do more of that when I visit Beijing later this week. If there's one thing I took away from the summit, though, everyone seems to be in full support of something to take us forward with testing.

  • Mono Accessibility: Brad Taylor described the Mono accessibility work being done both for Windows and GTK+. Looks like it should hopefully dovetail nicely into AT-SPI. It was a nice introduction to the work, and many thanks to Brad for showing it off.

  • Orca Preferences GUI: yes, the Orca preferences GUI is cluttered and offers a lot of knobs and dials. I sat down with a very nice gentleman from Ubuntu (I'm very sorry that I lost his name) to go over the various things Orca users are looking for and want to configure. He told me he'd try to think about ways to improve the UI to make it more efficient and intuitive for users. This would be very nice to achieve.

  • Audio: Janina Sajka and Jonathan Blandford had a good discussion about trying to do something about Linux audio in general. I don't know the details, but I'm hoping Janina will write them up.

  • Accessibility Web Presence: Joanie and I set aside a good chunk of Monday to focus on the web presence of GNOME Accessibility. In a nutshell, it's stale, convoluted, and very out of date. We also chatted a bit with Vincent Untz to get a better view of the thoughts and practice around the general way GNOME presents itself to the world. We captured our thoughts and developed what seems to be a pretty good plan.

For some closing thoughts on all of this -- the summit reminded me of what a great community the GNOME community is. Everyone is committed to the effort and believes in the work immensely. In addition, this year I really sensed that we are starting to reach a tipping point with accessibility. Over the past couple decades, I've often felt resistance and resentment from mainstream developers whenever it came to including accessible solutions in the desktop. It was too big, too slow, too whatever. A trend I've seen developing in the past year or so, however, is that mainstream developers are becoming not only more accepting of accessibility, but they are starting to bring it into their daily practice. This is way cool, and I'd like to believe that GNOME and the GNOME accessibility work is the one helping make this tipping point happen.

Friday Oct 03, 2008

Orca LogoOpen Solaris LogoA while back, I wrote about work I was doing for an accessible install for OpenSolaris. Last week, I was able to make more progress on it using the new distribution constructor. I found the new distro constructor to be much easier to use than the old one, and the new checkpointing feature really sped up my development time.

So, where am I? Well, a blind person can indeed install my special CD and install OpenSolaris without sighted assistance. Way cool. I have also gone through nearly all the paperwork to get things contributed to OpenSolaris, and all the software components should be in place by b100 (if the link doesn't work, it's because b100 hasn't been released yet). After that, it will mean spinning up a new ISO to test with b100, which will be GNOME 2.24 based. If that works, I'll then work with the distro team to try to get things checked in for the OpenSolaris 2008.11 release. Between the GNOME Boston Summit and GNOME.Asia, however, I may end up being pressed between a rock and a great wall.

GNOME FootprintGNOME AccessibilityThe GNOME Outreach Program: Accessibility work has just won the Lutèce d'Or award for "Meilleure action communautaire menée" (best action led by the community)!.

Woo hoo! We really are an awesome community and I'm so lucky to be part of it. Some days it seems like the magnitude of the problem is going to crush you, but things like this make it all worthwhile.

GNOME FootprintGNOME AccessibilityIn preparation for GNOME Boston 2008 and GNOME.Asia, I sat down to take a bigger look at the GNOME Accessibility picture.

One of the common things I hear from people is that they just don't have a clue what these accessibility things are or how they work. So, I began trying out recordmydesktop. It was a nice diversion from the extreme stress that I've been feeling lately, and I'm kind of happy with the results. Others seem pretty happy, too, so I guess I'm going to have to add to this more over time.

In any case, please take a look and let me know what you think. If you want to know how I did it, it was on an old Toshiba Tecra M2 laptop and my setup notes are here.

GNOME FootprintGNOME AccessibilityWe've done Accessibility Summits at the past few GNOME Boston meetings, and they were pretty productive. One thing we did, however, was tend to isolate ourselves in a room -- I do not regret doing this since it helped us form a positive and tight accessibility community for GNOME.

For this year's summit, which is happening Columbus Day Long Weekend (October 11-13) in Boston, MA, I want us to work on integrating better with the larger GNOME community. The goal I'm shooting for is that mainstream developers and accessibility developers and users will start working as one unit. This goal is going to make this year's summit a little different from the past. For example, rather than having an agenda, we'll end up being a bit more footloose and work with the "unconference" theme.

Nonetheless, we still have some key things I want us to work on. If we can accomplish a few of these, I will call it a success. Based upon the talent in the community, I'm actually quite confident we will do good things.

Monday Jul 14, 2008

GNOME LogoFlavio Percoco Premoli has been busy plugging away on his MouseTrap work and has posted a video to YouTube:

In the video, we see the video being captured by Flavio's webcam, with the software adding a green dot to show what it has detected as the position between his eyebrows. In this video, I believe MouseTrap is being operated in "joystick mode," which means that if you move and hold your head in a particular direction, the mouse will move in that direction. Move your head back to the center, and it stops.

Flavio has submitted this as the starting point for a GOPA task, which the GOPA committee has accepted. Yeah! Under the GOPA task, Flavio will provide additional support (e.g., accelerated mouse movement and 'absolute mode') as well as the stuff most people forget to do: i18n, integration with autotools and the GNOME build, documentation, etc.

Thursday May 15, 2008

GNOME LogoFlavio Percoco contacted me today to let me know about some recent work he has been doing. Well...it's way cool: he's managed to hack a software solution that uses the built in web cam on his system to control his mouse pointer. This is friggin' cool. We've all been talking about this for a long time, but talk is cheap. Flavio actually went ahead and did something. Way to go Flavio!

I've invited Flavio to submit a GOPA Task Proposal to flesh out the work further, and I have my fingers crossed that we'll get a good proposal with achievable and useful deliverables for this space. It is definitely something we've wanted for a while. Neat.

Tuesday Apr 29, 2008

GNOME Accessibility

Just a quick note on some nice Linux.com articles by Bruce Byfield:

Many thanks to Bruce for his work and attention to free open source accessibility!

Wednesday Apr 23, 2008

GNOME FootprintGNOME AccessibilityIn a past post, I talked about the investigation that Mark Doffman and Rob Taylor did to migrate AT-SPI to DBus. This work was generously funded by the Mozilla Foundation.

While multiple communities (e.g., GNOME, KDE, Open A11y, etc.) agree this was the right direction to head, accomplishing the task will be no small feat. It is not something even the most dedicated hacker can do in their spare time. Instead, it needs qualified professionals to do a bang up job. In my opinion, Mark and Rob from Codethink qualify for the position. :-) It turns out that Nokia agrees, and has fully funded the effort. It is also great that Mike Gorse from Novell is involved -- like Mark and Rob, he's a good friend of the Orca project.

Woo hoo! Many thanks to Nokia for their courage to fund this work. Many thanks also to the Mozilla Foundation for their funding of the initial investigation. Many thanks also to Mark and Rob for persevering and digging up funding. What a way cool team effort across multiple communities. Open source accessibility rocks!

This blog copyright 2010 by wwalker