Last week’s ScreenReader Coding Workshop took place in a portion of a giant complex in Brooklyn called MetroTech, which is home to NYU’s Tandon School of Engineering. Within one of the several large building surrounding the square, on a floor buzzing with giant video game consoles and laptops with huge monitors and kids chatting about code and playing/creating video games, we found the Ability Lab, where we were to begin learning code as blind people.
I had rushed to the restroom (because once I’m sitting, I don’t tend to want to move) so that by the time I got to my workstation, the others were already settled. I plugged in my earbud–it is easier to hear both what’s going on around you and what your screen reader has to say with one earbud in and also, in a class with six computers chattering away, earbuds rather than speakers are vital if you don’t want to lose your mind.
But the volume was too loud so I couldn’t hear what was going on outside my computer. I went to the volume mixer to turn it down, but that proved more complicated on this laptop than the one I have at home. An assistant helped me. Finally, I was present to the sounds around me but I had already missed much of the introductions. All I can tell you is that the three instructors–Claire, Atul and Taeyoon–all do cool things involving art and accessibility and programming–stuff that’s hard to internalize when you don’t have much in the way of reference points.
I’m sorry to say that mine is the introduction that I remember best. I said that I got my PhD at NYU, but in the Humanities, so I knew nothing about coding except that a while back, when I first took over my WordPress site from my web guy, I figured out how to <a href=https://drmlgodin.com/>The Greatest Blog Ever</a> and was positively thrilled when the link worked. And, to those savvy coders out there who want to interrupt me right now, “You forgot the quotes.” I’ll get to that momentarily, but first we had to tie our shoes!
Or rather, in the interest of learning about algorithms, we had to write, step-by-step instructions of how to tie shoelaces. The test would be Claire tying (or failing to tie) her laces based on our precise instructions.
There was much mumbling and grunting as we worked out how to tell a pretend computer how to tie its shoelaces. Then it was time to share. Chancey, who is famous in the blind community because she put together many of our computers when she worked at the Lighthouse Guild tech center and now organizes many cool events as the Assistive Technology Coordinator at the Andrew Heiskell Library, went first. At a particular instruction, I almost cried out to say, that’s not right! But before I could, Claire said, “my shoes are tied.”
“What, really?” Gus, who was sitting across from me and with whom I hoarded the Oreos, and I were perplexed. “We don’t tie our shoelaces like that!”
I’ll spare you the messy details of a comparative analysis of the two-loop-double-fold and the single-loop-wrap-around-pull-through methods, and simply say that one very important lesson was learned: there is often more than one way to get the same job done. This is apparently true in programming as well as in shoelace tying, and really, when you think about it, in most realms of life.
My first action to beginning any computer class is to open a separate document for notetaking, but I did not realize that there was already a screen open to notepad, so that for the first half of a three-hour class I was taking notes in the sample open html document. In other words, I was taking notes in the middle of a page of code. For those of you who can see, it is very obvious, I think, how many windows and programs are running, but unless we perform a key stroke to list these things, or clumsily alt tab around in circles to get the lay of the land, you don’t really know what’s going on.
We moved on to syntax, which frankly went by very quickly–from <> to {} to tags, such as buttons and attributes, which is when I learned that you are supposed to enclose your link in quotes, but of course I was confused because it had always worked for me without the quotes. Atul explained that, for some very common syntactical constructions, there is some leniency in certain…browsers is it? Or platforms? Not sure, but the fact remains that I was doing it wrong and WordPress let me get away with it, though apparently not using the appropriate quotes might present problems down the line.
The biggest revelation of the day for me was the relationship between the Notepad++ document and the html page, and likewise one of my favorite moments was making a button to nowhere called “Nowhere Button.”
Perhaps I should pause here to explain to my sighted friends that buttons and headings and edit boxes are generally screen reader friendly. They help to organize pages for us. For example, when I’m on a new webpage, the first thing I usually do is press “h” which will move me to the first heading. On the other hand, fancy-pants websites that do not bother to delineate the HTML skeletal structure–May I blame CSS or Java for this?–are not so accessible.
Anyhoo. From what I could gather, CSS is rather the enemy of the blind, and I was dazzled by the acronym until I had a debrief with my buddy David who said it stood for cascading style sheet, which at least gives me a visual image, but it seems a very difficult thing to detect with a screen reader, and Java is apparently no cakewalk either.
Now we come to variables, which was my favorite part of the class, because we got to play a game. We were given a sack of tactile operators (<, >, ==, !=, etc.), and several tactile playing cards numbered 0 to 3. The game began as one of chance–drawing cards and placing them on either side of a random operator to see if the statement was true–but we immediately wanted some strategy, so Phil, who runs the New York City Tri-State Blind and Visually Impaired Community Facebook Group, and I developed a game in which one would draw an operator tile and then pick from his or her cards a number which would present the most difficulties for the opponent. We both realized instantly that a “0” could present a real problem if the opportunity arose, so Phil sat on his “secret weapon” until the moment struck, and he was able to hit me with a 0 is > than, for which, of course, I had nothing to make the statement correct. He and I both grew up in gambling cultures–he in Hong Kong and me in a Greek-American family where poker was played at every get together, so we were ready to throw down, but alas, it was time to move to the coding example…
There was a button named “click me repeatedly” that you clicked repeatedly until you got an alert message like, “that’s annoying” at 7 times and ” arrrgh! ” at 11. In other words, if the number of the variable is greater than 6, then you get one snarky alert, and > than 10 and you get another. The code for this, which included Java, was maybe more complicated than my brains, which were beginning to creak and grind, could handle in this first class. But as Claire said in her agenda, this was to be a “whirl-wind introduction” and therefore I accept ignorance and confusion.
At the end of the workshop, we had a lively conversation about processing, or rather how to make processing accessible. I confess my precise lack of understanding of what is meant by processing in this context. I think it refers to the output of our programming. That is to say, how can we check our work, which is typically presented visually. I offer some of the suggestions we came up with (as pilfered from Claire’s notes):
1) Artificial Intelligence for image recognition
2) Sounds
-Binaural audio (Gus mentioned the Papa Sangre video game)
-Sound fields with system of tonal output (eg. pitch changes for up and down movement)
-Do some math on the fly with coordinates and generate sounds (can’t tell if something is colliding)
3) How PowerPoint templates work in terms of accessibility
-graph or chart templates/frameworks that are manipulatable
4) P5 on a touchscreen?
By the way, I was very excited about the “video game without video” called Papa Sangre and downloaded it the next night, because as a sighted kid I loved video games (such as they were back in the Neolithic Period), but was quickly frustrated at my inability to master walking or orientation in the dark, and never did make it to the game. If I’ve said it once, I’ve said it a thousand times, I’m really bad at being a blind person, and apparently, this extends to virtual reality. Sigh.
To finish up, thanks so much to Claire, Taeyoon and Atul for this great starter. Though the handful of us students had many dissonant opinions, we all agreed that we wanted more and can’t wait for the next one..!
Sighted and blind friends, non-coders and coders: please don’t be shy to comment below with questions and corrections…