Research on software for sight-impaired people is not new to the NetBeans Platform. At Central Washington University, as described here, work has been done on software for sight-impaired programmers. Meanwhile, at the the Polish-Japanese Institute of Information Technology in Warsaw, Piotr Leszczyński has been writing a thesis about a web browser he's created for identifying and interpreting web pages... and then representing the output to the user with text-to-speech technology.
Since it is aimed at sight-impaired programmers, the web browser should need to be simple to install and configure, with a minimal level of support being needed from people without sight-impairment.
Below is a photo of Piotr (who was one of the students on the NetBeans Platform training in Gliwice, Poland) together with the promoter of Piotr's graduation thesis: "Remote voice Web browser for people with sight impairment" (PDF). The photo was taken yesterday at the defense of his thesis... for which Piotr was awarded an "A"!
The solution is based on Java, Java Web Start, FreeTTS, and the NetBeans Platform. How does the web browser interpret web pages? The thesis explains as follows:
This was the most challenging barrier. While interpreting RSS feeds is fairly easy, general interpretation of Web pages for speech synthesis could be a topic of a master thesis in itself. It is a complicated process partially taken care of by large applications like Web browsers. Another part of the problem is general Web pages are written for graphical displaying of data not for sound reproduction. The solution to this problem was very limited and was provided by an old technology, text-based Web browsers from 20 or more years ago. I used Lynx, a text-based web browser developed in 1992 by a team of students at a French university to distribute campus information.
Below are some screenshots of the application. (Of course, since the application is aimed at sight-impaired people, the way it LOOKS is almost completely irrelevant!)
The thesis is very interesting to read. Among other things, it discusses the main features of the NetBeans Platform and, specifically, focuses on the benefits of modularity: From the thesis:
The client part of the application is designed based on a modular system [the NetBeans Platform]. This design allows easy maintainability and modifiability and prevents creation of spaghetti effect. Existing modules can be removed during the runtime and new modules can be installed without stopping the application.
GUI modules of the application are uncoupled from the Model modules and logic modules. Any module can be removed and the application will still work just without the capability that was provided by the removed module. By using Lookup you can even remove a module and have another module automatically taking care of the removed module tasks without any changes to the code. Those are just the main benefits of the modular design.
"I will be developing the application further," writes Piotr. "Right now, I’m thinking about releasing it under open source on sourceforge or on Kenai.com".
Congratulations Piotr, I'm looking forward to looking at the project's source code. And, via this interesting project, Piotr is now also a "NetBeans Platform Certified Engineer"!