← All reviews

Demo: Expanding Blocks4All with Variables and Functions

Jacqueline Shao Yi Ong, Nana Adwoa O. Amoah, Alison E. Garrett-Engele, Mariella Irene Page, Katherine R. McCarthy, Lauren R. Milne · 2019 · Proceedings of the 21st International ACM SIGACCESS Conference on Computers and Accessibility (ASSETS 2019) · doi:10.1145/3308561.3354588

Summary

This demonstration paper describes extensions to Blocks4All, an accessible blocks-based programming environment (BBPE) for iPad designed to enable children with visual impairments to learn programming through touchscreen interaction with screen reader support. Traditional BBPEs like Scratch and Blockly are popular for introducing children to programming because they focus on computational concepts rather than syntax, but they rely entirely on visual drag-and-drop interaction, making them inaccessible to screen reader users. Blocks4All was originally developed as an iOS iPad app that leverages Apple’s VoiceOver, Dynamic Type, and Switch Control to allow children to program Wonder Workshop Dash and Dot robots. This paper presents three functional expansions: modifiable blocks (blocks with labelled modifier buttons that lead to screens with custom sliders and steppers for adjusting parameters like distance and speed, supporting VoiceOver narration by snapping to interval markers), variables (a new Variables category in the toolbox where users can define and reference named variables as arguments to robot commands), and functions (a "Function Menu" at the top of the workspace allowing users to create, edit, and reuse named code sequences as reusable blocks). The interface was also updated based on input from a Teacher of the Visually Impaired: colour schemes and contrast levels were adjusted using a palette builder to be accessible for red-green and blue-yellow colour blindness, Dynamic Type integration ensures block sizes and text scale to the user’s preferred content size, and Switch Control compatibility was added for users with motor impairments.

Key findings

The design contributions address three key accessibility challenges in blocks-based programming. For modifiable blocks, the challenge was enabling parameter adjustment (e.g., "Drive Forward 20 cm Fast") without visual sliders — the solution uses labelled modifier buttons on top of blocks that navigate to dedicated parameter screens with VoiceOver-compatible steppers. For variables, the design mirrors the Wonder Workshop app’s variable system to maintain compatibility with the Wonder League Robotics Competition (WLRC), enabling children using Blocks4All to compete alongside peers using the standard visual interface. For functions, the original single-stack workspace was insufficient — the solution adds a function management screen that lists all created functions and allows creating new ones, each with its own workspace. Created functions then appear as blocks in the toolbox alongside built-in blocks. The universal design approach extends accessibility beyond the original target population of blind users to include low-vision users (Dynamic Type scaling, high-contrast colour schemes), colour-blind users (tested palette), and users with motor impairments (Switch Control support). The open-source code is available on GitHub to encourage other developers to make their programming environments accessible.

Relevance

Blocks4All addresses a critical equity gap in STEM education: children with visual impairments are excluded from the blocks-based programming tools that have become standard for introducing computational thinking in K-12 education. As coding becomes increasingly integrated into school curricula and extracurricular activities like robotics competitions, inaccessible programming environments create an early barrier that can compound through a student’s educational trajectory. The addition of variables and functions is significant because it moves Blocks4All from a basic demonstration tool to one that can teach genuine programming concepts (abstraction, data storage, code reuse), making it viable for real educational settings and competitions. The open-source availability of the code is particularly valuable, as it provides both a working accessible BBPE and design patterns that other developers can apply to their own environments. For accessibility practitioners in education technology, the specific design solutions — modifier buttons instead of visual sliders, function management screens instead of visual workspaces, interval-snapping steppers for VoiceOver — are transferable to other touchscreen educational interfaces.

Tags: programming education · blind · low vision · visual impairment · screen readers · VoiceOver · STEM accessibility · blocks-based programming · motor impairment · color blindness · robotics · Switch Control