Processing Voluntary Product Accessibility Template (V.P.A.T.)

The State University of New York system is requiring that all colleges make sure that the resources professors utilize in the classroom are accessible to all students. As part of the new compliance standards, we (the institution) need to make sure our online resources, software, videos, PowerPoint’s, etc. all follow the best practices of ADA compliance and where applicable have a VPAT file to explain how the product complies.

Some general information can be found here.

I have noticed that the default coloring in Processing is not accessible for color blind students, especially red/green ones. (variable types are red, method return type is green) for example in the syntax highlighting.

Is there any chance Processing will become compliant in the near future? Otherwise I will be forced to utilize Netbeans IDE as they are the second most popular IDE we use here for the successive courses in the IT program.

1 Like

I believe you can edit the colors used by syntax highlighting. From the Processing editor, go to File > Preferences and then look for a file called preferences.txt at the bottom. That file contains styling for syntax highlighting, and some other settings.

Out of curiosity, is the syntax highlighting strictly necessary for compliance? I would think that it’s okay as long as everybody can view / hear the words. Syntax highlighting is an added bonus, but not part of the core functionality… or am I misunderstanding something?

Yes it appears the colors can be changed by manipulating the preferences.txt configuration file. I mentioned the red/green just as an example of something brought up to faculty to consider while making PowerPoint presentations and online content. In the case of Processing, the syntax highlighting IS more of a bonus than a requirement; does that mean we should not give this bonus by default to everyone? Or make it such a challenge to modify?

The VPAT is very new to me, within say the last handful of months at best. The directive to make it mandatory is only within the past month so we are all scrambling to meet compliance.

To be clear, I wasn’t making that argument. I myself have recently started learning about accessibility, so I was asking about compliance from a legal / requirement perspective, not from a moral perspective. Obviously we should make Processing as accessible as possible. But in the short term, just to get you unblocked, I was wondering about exactly what the compliance requirement was.

Specifically, is it enough to be able to change the colors via the preferences file?

i think as colors and background must work together,
( < user >/processing/preferences.txt v.s. < installpath>/processingxxx/lib/theme.txt
possibly should think again how to restructure and improve IDE regarding THEME.
see here or try dark theme first ( what even involves other icons ).

1 Like

@Amannim – are there specific guidelines relating to syntax highlighting best practices, or specific recommended color schemes? There are many kinds of color blindness, so I would have guessed that there isn’t one best configuration, but rather configurability would be the goal.

It would be great if you could point out actionable guidelines. It is my perception that accessibility is a high priority for the Processing Foundation (and part of its core mission), so I would imagine that a feature request to change the default colors to something more accessible would be acted on quickly – at least, I imagine that would happen if your request arose out of clear guidelines and was, in fact, actionable.

I don’t know much about VPAT, but I didn’t realize that it worked in that way. I’ve seen a file before for Wolfram Mathematica. In that case, it says “you can change the syntax highlighting colors!”

Section 1194.31(b) Functional Performance Criteria
The user may explicitly set some colors in the application, including background, text color, and syntax highlighting. These program-specific attributes are retained from session to session.

The more digging I do, it seems the VPAT is a table of best practices and a mapping of how a specific application meets or does not meet the individual criteria. From there it is up to the consumer to determine how much compliance they require.

Colors was my first thought as I currently have a student who is color blind. Many games coming out today have different video settings for a few different types of visual impairment.

I believe at the institution level they are very concerned about screen readers being compatible.

At the moment I am still learning about this myself and mostly trying to prepare for the inevitable inquiry from legal affairs about compliance as they are beginning to audit the college.

Keep in mind that one core component of Processing is that it is a sketchpad with a canvas. So, just as accessibility guidelines do not (I believe) require that canvases by banned from fine art classes like Painting 101, so too (I believe) that the purely visual elements of Processing would be reasonable assuming that they were core to the skills being covered in a specific course. However you should consult with your institution about their requirements and seek guidance from them directly – before they audit!

Note that for teachers of color blind students, there is a third party library ColorBlindness that focuses enabling non-colorblind people to understand how their images appear to colorblind persons. This might be useful in vetting visual assets such as photos or the output of example sketches. It also has a daltonization package that “attempts to adjust colors in such a way that there are less color combinations that would be confusing to a color blind person.”

Note that for blind students

  1. a student may write sketches in plain text editors of their choosing, or programming editors like Atom / Sublime / VSCode etc.
  2. Processing sketches can be run from the command line using command line tools like processing-java, without ever using the Processing IDE
  3. Processing has a wide variety of example sketches that are focused on non-visual programming, such as text data processing, or audio – particularly using the minim or sound libraries – or electronics (arduino) and robotics control, or network signal passing, et cetera. So it is possible to learn processing without focusing on the visual component, depending on the learning goals of the course.

Keep in mind that accessibility is not my area of expertise – I am just pointing out possible resources and approaches to developing material for students with accessibility needs.

1 Like

@jeremydouglass this is very useful! It is true the students are not restricted to the Processing IDE to maintain code while learning the Processing methods and Java syntax.

We should be having workshops soon on VPAT compliance and I will update this with everything I learn from there. Thanks!

1 Like

I’d love to see more accessibility features in Processing, but depending on how important it is to use Processing, p5.js maybe a better option as it’s little farther along in this regard. The web editor has a high contrast theme (designed for low vision) and a handful of other accessibility features. Click the gear icon in the top right and it’s all under there. In addition the p5.accessibility library is coming along and is trying to make the html canvas element accessible to screen readers. Something to think about if nothing else.

1 Like

@figraham Fortunately the class I am teaching does not specify Java, as opposed to JavaScript and the p5.js could be a great solution going forward. I have to see if all the learning outcomes will map to p5.js, off the top of my head, I think they will.

Thanks for the suggestion!

1 Like