Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Text Entry on Tiny QWERTY Soft Keyboards

Here you'll find the source code of the web-based prototypes we used in our work presented at CHI'15:

  • L. A. Leiva, A. Sahami, A. Catalá, N. Henze, A. Schmidt. Text Entry on Tiny QWERTY Soft Keyboards. Proc. CHI, 2015.
  • L. A. Leiva, A. Sahami, A. Catalá, N. Henze, A. Schmidt. Error Auto-Correction Mechanisms on Tiny QWERTY Soft Keyboards. Proc. CHI Workshop on Text entry on the edge, 2015.

Discover more about this work at

Install Instructions

Clone this repository and point your web browser to the resulting directory. You can serve such directory in your localhost via Node's http-serve or Python's SimpleHTTPServer commands.

Advanced Install Instructions

If you perform some changes to the code and want to re-run the prototypes, first do npm install in the root directory of the cloned repo. (Suffice to say that you'll need Nodejs to run that command.) Then, execute the pertaining grunt tasks:

  • To recompile the ZoomBoard prototype: grunt zoomboard
  • To recompile the Callout prototype: grunt callout
  • To recompile the ZShift prototype: grunt zshift
  • To recompile the common files: grunt common
  • To recompile everything in a row: grunt

In case you want to debug your newly compiled code, add the parameter --debug to each grunt task, e.g. grunt zshift --debug. In debug mode, the source maps for JS and CSS files will be created in addition to the minified ones.

Disclaimer: ZoomBoard was developed by S. Oney, our version was adapted for conducting some research experiments. You can download the source code of the original ZoomBoard prototype at

Running your own text entry experiments

All prototypes accept the following URL parameters for conducting text entry experiments:

  • uid: The user ID. Each participant should have a unique ID.
  • txt: The phrase used as input stimuli. It must be url-encoded, see
  • siz: The overall keyboard size, in pixels. Depending on the screen resolution, different values apply here. For instance, on a 233 dpi screen 18 mm correspond to 110 px.

Error Auto-Correction

The keyboard prototypes are equipped with a webservice based on spell checking. If the spell URL param is set (i.e., http://localhost/tinyqwerty/callout/?spell=en) the last entered word will be spell-checked and auto-corrected (if need be) after entering a space. The webservice was written by Richard Willis and is available under the MIT license at

Note that only the PSpell driver of the webservice was tested, for which you'll need both Aspell and PHP Pspell installed on your web server. To install additional spell checkers, just do sudo apt-get install aspell-LANG where LANG is a two letter code that identifies each language; e.g. en for English, fr for French, etc. Currently, there are spell checkers available for near 100 languages. The official list can be found here:


Text Entry on Tiny QWERTY Soft Keyboards








No releases published


No packages published