Radical Accessibility -- The internet seen from the perspective of a blind guy


10:17: Comptine d'un autre été (also available in german)

Summary: Recorded a short piano piece from the movie Amélie yesterday.

This has definitely been fun! I've recorded a small piano piece from the movie Amélie (2001). It is on YouTube, to make it easy for various platforms to play it.

Comments? Send a mail.


21:07: Martial arts for the blind? (also available in german)

Summary: I might have found a martial arts technique that seems to have good chances of working even if you are totally blind.

Wing Chun promotes two principles which do indeed read and sound like it might be exactly what a blind person wants to practice: Close range and uncommitted techniques. I can't really tell you more just now except what you can already read on the Internet. Just one more very relevant pointer: Chi sao (sticking hands). The idea is to develop reflexes especially for close range combat, and the principle is to always stay in contact with your opponent, something that very much resonates with me (obviously, keeping in touch with your opponent is exactly what you need if you have no sight at all).

Comments? Send a mail.


11:25: CAPTCHA: The great new legal way of getting rid of blind people (also available in german)

Summary: I just tried to register a twitter account. After seven unsuccessful attempts to unriddle the audio CAPTCHA I had to give up before my anger would hurt anything in my proximity. This is a post in rant mode, so be prepared, however, I think it has some valid points seen from the perspective of those that fell victim to the recent CAPTCHA movement. I hate CAPTCHAs, for the obvious reasons. At first, it ment that I started to be excluded from all sorts of services on the net, basically everything that requires me to register an account and thinks of itself being leet or something. I find it particularily funny (in the chinese sense) that CAPTCHAs started to emerge after the W3C's Web Accessibility initiatives finally made some progress in educating web designers. So while the internet is now officially accessible (at least its easy to claim this today) they have now found a much better way to exclude us blind people categorically. They just pretend we are no humans anymore (thats actually nothing new in perceived real life, but it feels new to me in information technology).

Now, of course, you will say, these days there are audio CAPTCHAs. However, this is what I tried to use on twitter.com. They tell me they are looking for two words I am supposed to enter, and I am also supposed to not worry, the best guess is OK. As mentioned above, I tried this seven times. With some attempts, I didn't understand a single word at all, with other attempts, I understood way more than two words. It was never marked clearly which of the excess words are supposed to be ignored. No matter what I entered, I apparently failed to solve the CAPTCHA and proof my humanity.

And I am even lucky, I tend to think of myself as someone that does understand english quite well when listening to it, a ability that not everyone has in my country that has german as its primary language. Supposing that twitter is an international service and not really linked to english as a primary communication language, the audio CAPTCHA is also excluding all the people that do not speak/hear english very well. Besides, this point doesnt matter, because I bet you can't solve that CAPTCHA on first try even if you are a native speaker, its just too damn crazy.

So, what to do? I have no idea. I guess my frustration will just grow boundlessly. CAPTCHAs are the first events in IT that make me think about my ability to do this job in the future. If these trends persists, I dunno how I am supposed to take part in the Internet in the future.

Comments? Send a mail.


23:03: FreeDots news: Work started again! (also available in german)

Summary: While FreeDots development has feature-wise halted in the last few months due to me exploring a few implementation details, work is continuing again.

FreeDots is a MusicXML to braille music transcription project with interactive features.

I originally started to implement my prototype in Python. While I was very happy with the programming language and dynamic nature of Python I couldn't manage to find a cross-platform accessible GUI for Python. In this particular case, I can't ignore users on MS Windows. I want FreeDots to run on the major platforms, as well as the one I am using (Linux).

Due to my love to Lisp, I also explored how it would feel to implement FreeDots in Common Lisp and in Emacs-Lisp. Both choices however do fail due to certain real-world issues. Common Lisp has no cross-platform accessible GUI framework either, and Emacs-Lisp is too slow for processing big XML files as well as probably a bit too heavy when it comes to app delivery. So while both experiments were fun (and I kind of build on the ideas I was able to explore due to extreme dynamic nature of Lisp languages now) I had to continue my search.

I can't believe it while I type this, but I finally had to settle for Java. The Swing (and SWT) Toolkit is accessible on Linux and Windows. Java already has a host of XML processing features.

However, this ment for me to learn a totally new language. While the principle is simple if you know the C family, the devil appear to be hidden in the details. I made yet another de tour by examining how Eclipse could help me in this adventure. The summary is basically that it works kind of after you figured out the necessary key shortcuts and tricks, but there are a few nasty bugs in Eclipse SWT which make real comfortable use impossible.

However, the Java implementation of FreeDots is now growing again, and the previous experiments have helped me at least to have a pretty good idea of what I need to complete it. The task is still pretty complicated, at least for my level of experise. I hope I can overcome the bigger issues soon.

Comments? Send a mail.

22:39: 85x32: More dots at once! (also available in german)

Summary: I happen to use a Handy Tech Modular Evolution 88, which is a 88-cell braille display. Old school text mode users will probably all be familiar with 80 character wide terminals and why most braille displays have a size that easily fits into 80 (20, 40, 80). This is a story about how to use a little more space on your 88-cell display. We reconfigure the Linux framebuffer console to use a 1024x768 resolution and load a 12x24 font. Voila, we get 85x32! And with the recent rewrite of BRLTTY status cell handling, we can configure the remaining 3 cells to be used as status indicators.

BRLTTY recently gained the ability to dynamically reconfigure the amount of status cells being used (for those displays that have no fixed status cells). As I use a 88-cell braille display, this opened up the ability (to name one example) to use a slightly wider text terminal configuration. But how to achieve this?

On Linux, we have the so-called framebuffer console. All we need to do is to load a framebuffer kernel module (use the one that most closely suites your card) and use the program fbset to configure a certain screen dimension. In our case, as we'd like to use slightly more than 80 characters, we are settling for 1024x768. There is a font (in the console-terminus package on Debian GNU/Linux systems) which is 12 pixel wide (12x24). 1024 divided by 12 equals to 85 (and a few pixels on the side that we are not going to miss).

Additionally, we will have to configure our system to permanently load this font. You can do this in /etc/kbd/config:


Voila. How to use fbset to configure 1024x768 and how to make this permanent is left as an exercise for the reader.

Comments? Send a mail.


11:41: How to use Eclipse with Orca on Linux (also available in german)

Summary: While my initial look at Eclipse a few months ago was a bit disappointing, I gave it a second try a short while ago. Fortunately, it turns out to be much easier than originally thought, Eclipse is really pretty accessible once you know the important keyboard shortcuts. Most of the currently visible problems seem to be focus related, read this article if you are a Eclipse Dev and want to get an insight into what you could fix to make it even better!

Here is a list of the shortcuts I found very valuable as a blind eclipse user:

  • Alt+Shift+Q P: Jumps to "Package explorer", very useful if you want to navigate to an editor window showing a particular class.
  • Alt+Shift+X J: Run your application.
  • Alt+Shift+Q X: Shows the Problems view. You invoke this after building and/or running your app. The view contains a Tree of errors and warnings, expand the collapsed items to see the actual erorrs/warnings. Hitting return/enter on a error/warning jumps to the location in an editor window and highlights the problematic problematic expression (see next item)..
  • Ctrl+1: Quick Fix. If a problematic expression was highlighted this gives you a list of things you can automatically do about it to fix it. Once you press Ctrl+1 this window doesn't have focus, so you need to hit TAB once immediately after Ctrl+1 to see the choices. Select one by hitting return and the magic takes place.
  • Ctrl+SPACE: Complete a method while typing. This has the same problem as quick fix, the popup window doesn't get focus automatically, just hit TAB to get around this problem.
  • Alt+Shift+Q C: Go to console output window. I usually do this after running my app to check if there was any unexpected output.
  • Ctrl+F6: Switch to next editor window. Sometimes, Eclipse looses focus and you end up in nowhere land. Either F10 followed by escape or Ctrl+F6 helps a lot here.

Comments? Send a mail.


14:17: An accessible Linux Live System for German braille users (also available in german)

Summary: My braille display has a built-in USB storage which can neatly be turned off and on by a switch on the backside of the device. While I haven't had any real use for this yet, recently an idea came to mind: Why not put a live system on the USB storage for rescue situations? After thinking this through I realized that it might be interesting as a live system in general for blind users to quickly be able to try out Linux and its capabilities. Since I am a german speaking person, I feel there is a need for preconfigured systems in my language area. So I went ahead and created a USB stick image of a Live system with brltty, orca and espeak preconfigured. This system boots up and automatically detects all (to brltty) known USB braille displays. It uses a german braille translation table. When Orca is started, a german espeak voice is preconfigured. Firefox and OpenOffice.Org are preinstalled and ready to go and Java platform applications do also work out of the box. The system is based on Debian and uses (as far as possible) the latest stable versions of accessibility infrastructure like AT-SPI (2.24.0) and Orca 2.24. And there is even a easter-egg for those of us that like to do some gaming!

I was never really attracted by the concept of live systems since I am using Linux at work and at home since more than 10 years now and all my Linux systems are installed on the computer, no need to repartition or dual-boot. But the idea of being able to demo Linux and its accessibility capabilities to blind and visually impaired friends in my area is floating around in my head for a long time now.

There are a number of use cases for such a project:

  • Rescue system in case your installed Linux refuses to boot
  • Portable Linux system on a USB stick, just walk up to a PC, connect your braille display and the USB stick and boot.
  • Demo system to show off what Linux Accessibility can do these days

You can find prebuilt images of this live system here . Please send comments if you are interested or make any use of this system so that I can evaluate if it makes sense to further publish releases, or if I should just keep this my own personal little secret :-).

The system is Debian based and uses the latest stable releases of accessibility software like AT-SPI (2.24.0) and Orca 2.24.0.

The first who finds the easter-egg (not really hidden at all) and reports it via e-Mail will be mentioned in my next posting :-).

Comments? Send a mail.


23:50: Reading from the monitor with a mobile phone (also available in german)

Summary: Some of you might already know about this piece of software for Symbian phones (for the N82 in particular) that does OCR directly from the phones built-in camera. I have such a thing (a big thanks to my employer) and find it very valueable in daily usage. But this is a story about a use case that I never would have dared to hope for. I can use my mobile phone to read the content of my monitor! This is the first time I feel like experiencing technology from the 21st century. From now on, if something fails unexpectedly I am no longer required to ask someone to read whats displayed on the monitor, I have a new possibility to try first. While this is not practical when you actually try to interact with a program, it can at least help to figure out what error message is displayed.

Yesterday evening I had a pretty simple job to do: Create a partition table on a new 2GB CompactFlash card, transfer old partition content to it and make the card bootable. So far, so good. I did what I needed to do, and then slotted the CF-card into the test machine. After turning the device on, the usual thing happened: nothing. Since the machine didn't show up on my network with the IP address I configured, something must have gone wrong. Damn. At this point you are usually pretty stuck if you are blind and without a sighted coworker. While serial consoles are a nice thing to have, PC BIOSes are usually a bitch when it comes to working serial consoles. This test machine has a pretty old BIOS too, so forget about that route. Since it was already past midnight, there was no one around whom I could ask to read the monitor content to me either. Which lead me to an idea: Why not use my KNFB Reader to figure out whats going on?

To make a long story short: Yes, it works! I had to turn off the light in my room to get optimal results, but after that, it basically works as reliable as with print on paper! The tabular data displayed didn't get read correct, but that was not what I was after. The last sentence my phone said was what I needed to know:

"Insert disk and press a key to continue"

So while I haven't been able to fix the actual problem at hand (the BIOS does not support CF cards larger than 1GB) I was at least able to narrow the problem down to the BIOS not recognising my new CF card as bootable media.

This opens up completely new possibilities of independence in my profession.

Now who is going to put together a special version of OCRopus(tm) for mobile devices? A coworker of mine is already thinking about writing a tool for doing things like color analysis using a mobile phone camera. I think this is a very exciting idea loaded with possibilities. The world needs more practically oriented open source projects related to optical recognition!

Comments? Send a mail.


12:16: OCR HTTP proxy in Perl for thomann.de (also available in german)

Summary: About two years ago thomann.de decided to change its website to encode all price information in images (without alternative tags). This is of course extremely problematic for low-vision or blind users. In a personal mail they explained to me they do this to prevent automated price comparisons. They also claimed that their way of doing it is a good measure against what they want to prevent. Well... If a *BLIND* person can come up with a script on their own (source included), I bet my ass off that anyone with an interest in automated information retrieval would be able to do the same. Seems like the management of thomann.de was fooled very much by their webmaster.

I have to explain that I really like musical instruments. They seem to excert a magical pull on me. Whenever I am in a new city, I need to visit the local music store. So you probably understand that I felt an attack on my personal freedom to browse when I figured out that one of the biggest online music instrument resellers in my area changed its website to deliberately encode all price information in images without alternative tags and with randomized filenames.

Here is what thomman.de had to say about this (text is in german):

Leider hatten wir mit unserer alten Website das Problem, dass unsere Preise regelmäßig von unseren Mitbewerbern mit sogenannten Spider-Programmen automatisch ausgelesen wurde und wenn wir mal irgendwo zu billig waren, hagelte es Proteste seitens der Lieferanten. Dies ging soweit, dass wichtige Einkäufer den halben Tag nur noch mit Preisdiskussionen beschäftigt waren und es teilweise zu unvorgesehenen "Lieferengpässen" kam. Da wir unseren Kunden weiterhin den bestmöglichen Preis anbieten möchten, haben wir uns deshalb entschlossen, die Preise auf unserer Website als Graphik anzuzeigen, damit sie nicht mehr automatisch ausgelesen werden können.

Haha, this is a case of pointy haired boss telling foo to someone! The small HTTP Proxy I wrote demonstrates that there is nothing at all which prevents a bot from retrieving the price. All they achieved is making their website harder to use for people with visual disabilities (except if they use thomann.pl, of course).

The main code is just about 40 lines of Perl. For the impatient, here is it: http://delYsid.org/thomann.pl.

The program is implemented as a HTTP proxy, therefore the solution is completely browser independant. If a img tag pointing to a thomann digit is found in the HTML, the image is identified and the appropriate alernative tag is added on the fly. Future plans include some kind of fuzzy similarity test combined with rescaling of images to a common size.

Comments? Send a mail.


15:32: planet-a11y.net is down (also available in german)

Summary: Of course, now that everything seems finished and ready to take off, I discovered that planet-a11y.net is temporarily out of service.

Rumor has it that they should be up and running again tomorrow.


<suseROCKs> delYsid:  yes, we have a regrettable crash and I need to discuss
	    with flaper before we can bring it back up again.
<suseROCKs> hopefully it will be restored by tomorrow morning.    Our
	    apologies.							[14:10]

Comments? Send a mail.

10:05: Developing a blog (also available in german)

Summary: planet-a11y.net is a good reason to start a blog. After looking at a few static soltuions (I don't want to use a complicated web interface) I decided to do it myself.

Since the existance of planet-a11y.net I feel the need to have a blog.

After looking at a few simple implementations I figured it is probably easiest to just do it in WML since that is what I am already using for my website.

Since WML makes it so easy, this blog is also available in german. And you can of course review the simple source code I developed to produce these pages (including RSS feed, of course).

Comments? Send a mail.

Last Modified: 2011-04-01 10:42:09
You can view the Source Code of this page