Building an Accessible Block Environment: Multi-Language, Fully-Accessible AST-based Editing in the Browser

Emmanuel Schanzer, Sina Bahram, Shriram Krishnamurthi

BLOCKS+ Workshop, 2018


UncleGoose is a toolkit that provides a fully-accessible block environment, for multiple languages. The toolkit generates (1) a block editor that uses standard drag-and-drop conventions familiar to sighted users while also (2) using keyboard navigation and spoken feedback that is familiar to visually-impaired users. The mechanism used creates unique opportunities for (3) separating the description of a block from the visual or textual syntax of that block. This effectively provides a third representation (beyond text and blocks), which is spoken aloud and can be tailored to a specific audience. The toolkit lives entirely in the browser and relies on web standards, needing no plugins or server support.

Finally, UnceGoose is implemented as a wrapper for the widely-used CodeMirror library, which is used to display source code using syntax highlighting, bracket matching, and indentation. Any project that already uses CodeMirror can use our toolkit with minimal effort. By providing a parser that implements our API, these projects can quickly implement a block editor on top of their text editor, while also getting a fully accessible programming environment that goes far beyond the reading of code.



These papers may differ in formatting from the versions that appear in print. They are made available only to support the rapid dissemination of results; the printed versions, not these, should be considered definitive. The copyrights belong to their respective owners.