I have never been satisfied with the current methods being used to program Arduino boards when a person has to use a screen reader. There is a perfectly good tool that should be accessible. I have been trying to make Arduino IDE work since 1.5.6. I have always been able to use the code editor but the menus never worked right. My version at 1.5.6 was able to program my Arduino Uno with Jaws but NVDA never worked and Jaws was sometimes good sometimes bad. So I had partial access. Every blind person I have talked to has told me that they could not get it to work at all. I knew I must have done something accidental So I set out to prove that it was possible to make Arduino IDE work with Jaws and NVDA.
The truth is the steps to get the Arduino IDE to work have been out for a while but they are scattered across three pages. and if you were using Arduino IDE before 1.6 you would get different results, even if you did it right. I am going to write out all the steps here but if you follow Oracles page on installing both the 32 and 64 bit JDK, the Android Studio Accessibility guide, and the enabling Java accessibility bridge from Oracle. You can get the Arduino IDE working without my little article here.
Download and Install JDK and Arduino IDE
First I am using the latest Windows 10 Anniversary addition but I know this will work as far back as Windows 8. The instructions might even work with Windows 7 but I have not tested them. If you don't have a 64-bit machine you only need to download and follow the 32 bit instructions. To make this as easy as possible I suggest downloading everything first then setting it up. The following is needed:
- jdk-8u101-windows-i586.exe
- jdk-8u101-windows-x64.exe
Both of the JDK's above can be found at
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
You can probably follow all these steps with any of the JDK with a version of 8 or higher but I like to use the latest to get all the benefits of accessibility fixes.
Next download the Arduino IDE (arduino-1.6.11-windows.exe) or anything newer than 1.6.9. The link to the latest windows installer can be found on the following page.
https://www.arduino.cc/en/Main/Software
Once you have these three downloads. Start by running all three installers. If you're doing this on a Windows 32-bit platform just install the 32 bit JDK and the Arduino IDE.
Setup Java Environment variables
Next you will need to make sure that the Java environment that runs is the one you think is running. The way to make sure of this is to set the path to the bing, two windows system environment variables, copy some important files and turn on the Java access bridge. The Easiest way to accomplish this is to do the following steps:
Step 1: Set Path, JAVA_HOME, and JRE_HOME
- Press Windows key +Pause (The pause key is the first key on the right in the set of three above the six pack on a standard keyboard.)
- Tab until Advanced System Settings is reached. And press enter
- Tab until Environment variables is reached. And press enter
- Tab till system variables' is reached and press down arrow till PATH is selected
- Tab till System variables edit is reached and press enter
- Arrow up and down and delete any path information about Orical Java. To delete select it then tab to remove. Once done do OK so that the change is saved.
- Add a the path to the 64 bit JDK by Editing the path again and pressing new. A dialog will ask for the new path. My 64 bit JDK is found at: C:\Program Files\Java\jdk1.8.0_101\bin. After done Press OK to save.
- Add two new system variable's so that you know you are using your JRE and Java command line tools. The two variables are JAVA_HOME, AND JRE_HOME.
- Press Tab until System Environment variables new is selected and hit enter
- A Dialog will ask for name put: JAVA_HOME
- Tab and as a value put your home path. My home path is: C:\Program Files\Java\jdk1.8.0_101\
- Tab until OK is selected and press enter.
- Repeat the above steps to enter the JRE_HOME variable. My JRE_HOME is set to C:\Program Files\Java\jdk1.8.0_101\jre
- Press OK and Tab until OK is reached and press enter. Continue to Tab until OK and press enter until you are out of the dialogs. If you do not Press OK it is possible your variables will not get saved. You can check your variables by going back to the System variable screen and checking to make sure your variables are there and are correct.
Step 2: Turn on Java Accessibility Bridge
Now that you have the paths all setup. It is time to turn on the Java Access bridge. There are a couple ways to do this. The easiest way I have found is the following:
- Press Windows key + r to open the run dialog.
- Type in cmd.exe and press enter
- Type cd C:\Program Files\Java\jdk1.8.0_101\bin Type: jabswitch.exe /enable and press enter
- You should see confirmation that the Java Access Bridge is enabled.
- Type exit and press enter.
Step 3: Copy all essential Access bridge files
Now to move all the files where they need to be. taken from Oracles page at:
http://docs.oracle.com/javase/7/docs/technotes/guides/access/enable_and_test.html
Note: On a 64-bit machine it is recommended that you install both the 32-bit and 64-bit versions of the JRE. The 32-bit version only adds support for 32-bit assistive technology, and the 64-bit version only adds support for 64-bit assistive technology.
Using Java Access Bridge with Only the Private JRE
The JDKs installed above contains a private JRE. This is required to run tools included with the JDK. In order to use the Private JRE the Windows Access bridge files must be installed manually by copying them to the windows directories found in the table below.
Dynamic-Link Library (DLL) Files to Copy from Private JRE to Windows Directory
JDK Windows Operating System | File to Copy | Destination Directory |
---|---|---|
32-bit | 32-bit |
C:32 |
32-bit | 64-bit |
C:64 |
64-bit | 64-bit |
C:32 |
Testing The Install
Now if you have done all previous steps correctly simply press the Windows key and type Arduino and press enter. The Arduino IDE should come up and everything including the menus and edit field should talk correctly. There should be a default script template loaded and waiting for you to get going on making.