160 likes | 301 Views
Composing Accessible Code Kevin Brock University of South Carolina kevin@brockoleur.com @brockoleur http://brockoleur.com/writing/cw2014. The Basics: Where We Are. Three intertwining contexts / conversations over time: Composition/writing studies → multimodality
E N D
Composing Accessible Code Kevin Brock University of South Carolina kevin@brockoleur.com @brockoleur http://brockoleur.com/writing/cw2014
The Basics: Where We Are • Three intertwining contexts / conversations over time: • Composition/writing studies → multimodality • Accessibility → universal design • 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
Extending Programming Practices • TempleOS (Davis)
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 style very 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 Cited • Bruggeman, 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