Programmeertalen

Hoe is het gesteld met de toegankelijkheid van programmeertalen? Peter op ’t Hof zette de volgende zaken op een rijtje.

Inhoud

Delphi

Delphi moet gezien worden als de grafische versie van de klassieke vroegere taal Pascal.
Inmiddels zijn we beland op versie 10 en is de taal beschikbaar voor Web-, Mobiele- en console-platformen en is uitgegroed tot een cross-platform ontwikkelomgeving.

Het werken met Delphi is behoorlijk lastig.
Niet alleen hanteerd Borland eigen Icon-Classes en Forms, maar heeft de omgeving zo zijn eigen wetten van schermopbouw. De forms-designer en het verslepen van code-objecten is niet toegankelijk en dat betekent soms een vertraging in de werkzaamheden.

De resultaten zijn standaard niet toegankelijk, omdat Delphi een eigen Wrapper (schil) om de gecompileerde code aanbrengt, met het gevolg dat de opgeleverde applicatie geen gebruik maakt van de toegankelijkheidsopties in het besturingsssysteem.

Tips die de nonvisuele ontwikkelaar op weg kunnen helpen:

  • Gebruik altijd het Commando TStaticText in plaats van TLabel om labels in een form te zetten.
  • Elk label moet de predecessor van de toegekende taborder zijn.

Java

Java is een programmeertaal die gebaseerd is op de taal C++. Het grote verschil is dat Java over veel meer mogelijkheden beschikt. Over de historie en opbouw van Java is meer te lezen op:  http://nl.wikipedia.org/wiki/Java_%28programmeertaal%29

De kracht van Java laat zich het beste kennen in de Gnome-desktop. Deze is momenteel de belangrijkste ontwikkeling voor Oracle (voorheen eigendom van Sun Microsystems), omdat het samen met ontwikkelplatform Javabeans een goed tegewicht voor .NET vormt. Gnome is de desktop alle grote Linux distributies.

Een toegankelijke Java ontwikkelomgeving bestaat uit:

  1.  GNOME Accessibility Framework (deel van de foundationclasses)
  2.  J2SDK
  3.  Java Accessibility API
  4.  Swing user-interface libraries (ondersteuning voor Java Accessibility API)
  5.  Java Accessibility Helper

Deze laatste is een van de toegankelijkheidshulpmiddelen, die Oracle biedt aan de ontwikkelaar van schermuitleesprogramma’s.
Ook kunnen voor de zogenaamde Gnome-desktop ontwikkelaars van standaard applicaties alle functies worden geïntegreerd die voor mensen met en functiebeperking van belang zijn.
Let wel op het feit dat er gebruikt gemaakt wordt van Swing in plaats van SWT. Hierdoor worden standaard alle SPI-AT functies aangesproken.

Verder had Sun al vanaf versie 1.4 de Java (TM) 2 Software Development Kit, de Java Accessibility API, de Swing user interface classes en ondersteuning door de (al eerder genoemde) schermuitleessoftware ingebouwd. Deze wordt standaard geladen in de Java Virtual Machine van de Client die nu de Accessbridge heeft ingebouwd en op versie 8 is aanbeland.

Bij Windows 10 is de Java Accessbridge standaard geactiveerd en is uitsluitend ontwikkelen op Linux niet echt meer nodig.

De bovengenoemde helper is een beetje te vergelijken met Bobby (een toegankelijkheidstestrobot), maar dan voor applicaties. Niet alleen wordt de toegankelijkheid getest, maar ook worden afhankelijk van de resultaten tips en informatie gegeven.

Momenteel bieden de Classes:

  • Betere ondersteuning voor het toetsenbord
  • Betere navigatie in Swing componenten
  • Shortcuts in listboxes
  • Ondersteuning voor nieuwe extensies en links

Voor standaard programmeerwerk kan natuurlijk altijd de Command-Line worden gebruikt. Free JDK van Sun Microsysuytems kan in combinatie met een goede teksteditor die met Java Indentation om kan gaan ook een gratis mogelijkheid zijn om toch multiplatform in Java te kunnen programmeren. Tevens is er voor Linux een Express-Developerset die volledig toegankelijk te gebruiken en is de ontwikkelomgeving Eclipse redelijk toegankelijk.

De volgende delen van Java zijn voor eindgebruik inzichtelijk:

  • ava met pure Swing (moeilijk toegankelijk zonder gebruik van Accessbridge)
  • Output naar Command-Line (volledig toegankelijk)
  • Java met File-in- en output (volledig toegankelijk)
  • Servlets (niet toegankelijk omdat ze op de Server actief zijn, tenzij er een
    sterke HTML Front-End wordt gebruikt)
  • Java Serverpages (JSP) (volledig toegankelijk en een juiste vervanger voor
    Servlets)

Het beste resultaat bereikt een applicatie die gemaakt is met JDK 1.3.1 of hoger en 1.4.x plus Access Bridge 1.0.3.
Voor die ontwikkelaars die voor IBM’s Websphere webserver met Weblogic ontwikkelen is IBM’s WSAD ook met de aanpassingen van Oracle redelijk toegankelijk.
Dit geldt ook voor Oracle ontwikkelsystemen.

Hotkeys worden jammer genoeg toegekend door de Look & Feel (LAF) die standaard in de ontwikkelomgeving actief is. Java biedt verschillende LAFs (Java, Windows-like, Motif-like, Mac-like). Gebruik altijd de LAF van Windows ten einde alle besturingssystemen te ondersteunen. Het is altijd mogelijk om een eigen LAF, Subclass of Keylistner te schrijven, wat echter heel veel werk met zich meebrengt.

Toetsvolgorden die afhankelijk zijn van het operating System zijn niet aan te passen.
Het is wel mogelijk om op basis hiervan aanpassingen aan te brengen. Denk aan Alt+letter ondersteuning bij setting button en label mnemonics.
SWING is het enige framework dat de JAB heeft ingebouwd. Andere (zoals SPRING) hebben deze niet ingebouwd, geven een niet te lezen feedback en geven ook een ontoegankelijke applicatie als resultaat.

Perl

Perl is een taal, die zijn oorsprong vindt in de Unix-systemen en is voor Windows onder de naam Active Perl beschikbaar. De ontwikkeltaal dient voor het automatisch genereren van acties, bijvoorbeeld webinhoud of kleine krachtige toepassingen. Voor het manipuleren van en filteren van tekst is het zelfs een van de snelste oplossingen.

Aangezien alles volledig op tekst gebaseerd is, is het niet nodig alles aan te passen.
Een grafische gebruikers-interface is niet nodig. Het is echter wel noodzakelijk om de richtlijnen van het ontwerpen van toegankelijke webpagina’s in het ontwerp te integreren, als u er voor kiest hierin een Web-Applicatie te ontwikkelen.

Verder is de taal volledig vergelijkbaar met de taal C++, al is het niveau qua Systemlevel lager. Tevens kan de taal ook een Mysql-database aansturen en kan beter en meer toegankelijk onder Linux worden uitgevoerd.
De strakke eisen voor de indents (juiste toepassing van ruimte sussen de broncode) zorgt er wel voor dat het samen gebruiken van braille en spraak een betere controle over de voortgang geeft.
De keuze van een gemakkelijke bedienbare detor hoort daar natuurlijk ook bij.

PHP

Evenals Perl is PHP (momenteel versie 7) in de Unix-omgeving ontstaan om webinhoud snel samen te stellen vanuit inhoud die zich in een database bevindt. Deze taal is een soort Query-taal die als Database-Engine Mysql of andere database kan gebruiken.

De ontwikkelomgeving is compleet toegankelijk. Er zijn veel blinde ontwikkelaars, die met PHP4.1 en Mysql, PHp en Linux-systeem met Appache-webserver werken via een vaste kabelverbinding of remote via Telnet of SSH. Alles is op tekst gebaseerd.
Aangezien MAX ook in PHP is ontwikkeld, bewijst dat voor mij wel de doeltreffendheid van de taal. Extra uitleg is niet nodig aangezien Notepad al voldoende is om met ontwikkelen te beginnen.
Voor de opmaak van de pagina’s kan er gebruik worden gemaakt van een Webframework als Ruby on rails, Cakephp en Turbogears. In deze raamwerken zijn er al veel bouwstenen op maat samengesteld en gaat het bouwen aan de site veel sneller.
Het scheelt de ontwikkelaar veel tijd en er kan ontspannen aan de structuur zelf in plaats van aan de opmaak worden gewerkt. De link naar de basis PHP-Site: http://www.php.net

Python

Python is een programmeertaal waarmee simpele tot complexe platform-onafhankelijke applicaties kunnen worden ontwikkeld. Deze programmeertaal is volledig toegankelijk en zeer populair in de wereld van de blinde programmeurs.

De taal wordt door veel bedrijven gebruikt zoals onder andere Industrial Light & Magic, Google en NASA. Python biedt ondersteuning voor Linux, MacOSX Windows en alle mobiele platformen.

Meer info is te vinden op: http://www.python.org/2.4/NEWS.html

Python is case sensitive en is afhankelijk van een goede indenatation. Veel editors geven de juiste structuur in braille niet juist aan. Het maken van de juiste keuze is dus erg belangrijk. Momenteel is Boa Constructor de beste oplossing. Deze biedt zowel een editor, IDE-, als RAD-mogelijkheid.

Voor de nonvisuele ontwikkelaars is extra informatie te vinden op: http://pythoncard.sourceforge.net. Het is een application development tool die erg op Apple’s Hypercard lijkt. Een installatie van Wxpython is wel noodzakelijk. Wxpython is een Python interface naar de WXWidgets die het bouwen van een multi-platform GUI mogelijk maken.

De WIN3- of 64-versie gebruikt standaard contrules voor de User-Interface, zodat MSAA netjes alle informatie krijgt toegespeeld.