Post on 02-Feb-2016
description
Composing Accessible Code
Kevin BrockUniversity of South Carolinakevin@brockoleur.com@brockoleur
http://brockoleur.com/writing/cw2014
The Basics: Where We Are
Three intertwining contexts / conversations over time:
1.Composition/writing studies → multimodality2.Accessibility → universal design3.Software development → broader coder
population
The Problem: Where To Go?
How can we improve accessibility for programming to improve digital accessibility more broadly?
(For that matter, why should we?)
Accessibility and Design
Universal design: providing all audiences/users/people with the means of engaging (“consuming”) a particular experience
Individual design: providing all users/people with the means of creating individually oriented artifacts and environments
Yergeau et al. (2013): “many multimodal texts are not designed with flexible means for manipulating the information at the level of the user”
Extending Programming Practices
Efforts generally entail adding a new interface/medium to the development process, e.g. renovated GUI environments
This means that existing code languages are generally left untouched/unchanged—restricting the possibilities for improving accessibility
Syntactical/Lexical Substitution
Usually, this occurs as renaming, often seemingly superficial as easy informative recall for author(s):
var totalCount = 0;var incrementer = 1;
[...]
function myTotallySweetCounter() { totalCount += incrementer; }
[...]
myTotallySweetCounter();
Syntactical/Lexical Substitution
An excerpt of Dogescript side-by-side with Javascript:
much very woof as 1 next woof smaller 3 next woof more 1 plz console.loge with {such: 'doge'}wow
shh doge stylevery science is 4 much very so as 1 next so smaller 10 next so more 1 rly so bigger 2 plz console.loge with {such: so} wow wow
for (var woof=1; woof<3; woof+=1) { console.log({ such: 'doge' });}
// doge style var science=4;for (var so=1; so<10; so+=1) { if (so>2) { console.log({ such: so }); }}
Syntactical/Lexical Substitution
Part of “Hello World” in Shakespeare Programming Language:
Romeo, a young man with a remarkable patience.Hamlet, the flatterer of Andersen Insulting A/S.
Act I: Hamlet's insults and flattery. Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
Hamlet:You lying stupid fatherless big smelly half-witted coward!
You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer's day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind!
Visual Programming
Scratch and its derivatives (SNAP!, Blockly)
Shapes and colors indicate particular purposes & functionalities of specific elements
IDE of executed program directly next to development space/window
Voice Dictation
A very rare occurrence—its rarity reflects the current visual alphabetic (not phonemic) paradigm
When possible, watch & listen to Tavis Rudd's “Using Python to Code by Voice”
https://www.youtube.com/watch?v=8SkdfdXWYaI
A mixture of emacs, Dragon Naturally Speaking, and speech utterances
So, For Real: Where To Go?
Sorry: no real answer or solid vision for the future, yet
Writing scholars have the chance to involve themselves in significant work influencing paths for software development
Questions to grapple with: How do we make the act of programming as
accessible as familiar day-to-day programs?
How do we do so in a manner that addresses universal and individual design concerns?
Works CitedBruggeman, Z. (2013). Dogescript. Available from https://github.com/remixz/dogescript
Davis, T. (2013). The Temple Operating System. Available from https://www.templeos.org
Fraser, N., et al. (2014). Blockly: A visual programming editor. Available from https://code.google.com/p/blockly/
Lifelong Kindergarten Group. (2013). Scratch – Imagine, program, share. Available from http://scratch.mit.edu/
Mönig, J., Harvey, B., et al. (2011). SNAP! (Build your own blocks). Available from http://snap.berkeley.edu/
New London Group. (1996). A pedagogy of multiliteracies: Designing social futures. Harvard Educational Review, 66(1), 60-92.
Rudd, T. (2013). Using Python to code by voice. Youtube. Available from https://www.youtube.com/watch?v=8SkdfdXWYaI
Wiberg, K., & Åslund, J. (2001). The Shakespeare Programming Language. Available from http://shakespearelang.sourceforge.net/
Yergeau, M., et al. (2013). Multimodality in motion: Disability & kairotic spaces. Kairos, 18(1). Available from http://kairos.technorhetoric.net/18.1/coverweb/yergeau-et-al/index.htmlTemporarily available from http://pwr.gmu.edu/kairos/18.1/coverweb/yergeau-et-al/index.html