Hi listers, I am blind and I would like to program graphical interfaces in Freepascal. Perhaps, it sounds a little bit curious. Being blind, would I have interest in graphical interfaces? As the subject can be new for many of then, I will explain in detail what I really want.
Blinds have been programming for decades. In seventies, they have done it by means of braille lines, special hardware wich allows blind people to touch in an board and read the contents projected there. Afterwards, with the appearance of screen readers, the work has become much easier. Elder blind programmers have produced codes for console. However, screen readers, nowadays, interact more efficiently with graphical interfaces. So, if I want to program for blind people, I need to use graphical interfaces. But, being blind, can I program graphical interfaces? yes, but not using tform. And being blind, is it really useful to learn programming? Yes, there is a large number of blind programmers and, about acessibility subjects, they are the worriest, the most interested in promote it. Some requirements need to be present in order to allow blind programmers to do it: 1. Accessible - Screen readers can announce all the contents shown. 2. Programable - A blind person can produce all the code needed to shown the windows and its objects. 3. Multiplataform - Blinds in Windows and Linux can access and program with the chosen interface. Now, I present a list of interfaces and the way they fulfill these requirements: 1. tform - it fulfills the items 1 and 3. A blind person cannot program it. At first, because Lazarus environment is not accessible and a blind people prefer to use only hard code without move objects on a form. Secondly, even we adopt hard code, it's not possible to program using tform without writing codes like: button1.left := 30. The way blind people can program is not based on coordenates or dimensions, but in the automatic layout management. 2. TK - It fulfills 2 and 3. As it's not based on native components and use extensively Canvas Draw, the result is that screen readers can't interact with then. 3. GTK - In Linux, all the requirements are fulfilled and a blind program can use it. We can produce codes without indicating even one dimension or one coordenates. GTK is based on containers, so we can imagine the abstract realationsship among objects and build interfaces. Beautiful interfaces? Certainly not. However, this isn't the proposal. I can use graphical interfaces to ease the interaction with screen readers, not to present wonderful looks. If a label doesn't have enough space to receive the text, the screen reader only will read the visible words. So, although the interface won't be seen by the users, they must be organized sufficiently to allow the correct performance of screen readers. 4. FPGUI - It fulfills 1 and 3. As tform, it's coordenate based in stead of container based. 5. QT - It fulfills 2 and 3. As TK, it's not based in native components, so it inaccessible for screen readers in both systems: Windows and Linux. 6. HTML - Of course, it fulfills all the requirements in both systems. However, it's not the more suitable interface for desktop programming. In spite of that, it can be regarded as an option. 7. IUP - It fulfills all the requirements. Previous experiences using Lua and IUP, graphical tool kit developed by brazilian reseachers, shows excelent results. Graphical interfaces can be created by blind programmers, without any coordenate, using only containers. The work can be done as in Windows as in Linux. IUP seems to be the perfect solution. However, IUP was not ported to Object Pascal and, having contacted the developers, he said this won't be done. The alternative could be to translate the C headers of IUP, producing the respective units Pascal. I have tried to do it using H2pas. But after the process, the unit contained errors. And the correction of these errors would probably require a large background in C programming. Finally, I ask: does someone have an idea what can I do? Does someone know other interfaces container based compatible with Pascal? If I decided to port IUP to Pascal, wich kind of knowledge should I have? IUP is available for C and Lua programmers. Perhaps, adopting C or Lua I could obtain earlier results. Yes, I regard seriously it. But if the investment was not endless, I prefer to look for a Pascal solution. If I am successful in my project, I will write a manual for blind programmers. Regards, Luciano de Souza _______________________________________________ fpc-devel maillist - [email protected] http://lists.freepascal.org/mailman/listinfo/fpc-devel
