composing accessible code kevin brock university of south carolina kevin@brockoleur

16
Composing Accessible Code Kevin Brock University of South Carolina [email protected] @brockoleur http://brockoleur.com/writing/cw2014

Upload: eliza

Post on 02-Feb-2016

30 views

Category:

Documents


0 download

DESCRIPTION

Composing Accessible Code Kevin Brock University of South Carolina [email protected] @brockoleur http://brockoleur.com/writing/cw2014. The Basics: Where We Are. Three intertwining contexts / conversations over time: Composition/writing studies → multimodality - PowerPoint PPT Presentation

TRANSCRIPT

Composing Accessible Code

Kevin BrockUniversity of South [email protected]@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

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 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

Visual Programming

Visual Programming

Visual Programming

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