Adaptive Forms: an interaction technique for entering structured data

Many software applications solicit input from the user via a "forms" paradigm that emulates their paper equivalent. It exploits the users' familiarity with these and is well suited for the input of simple attribute-value data (name, phone number, etc.). The paper-forms paradigm starts breaking down when there is user input that may or may not be applicable depending on previous user input. In paper-based forms, this manifests itself by sections marked "fill out only if you entered yes in question 8a above", and simple electronic forms suffer from the same problem—much space is taken up for input fields that are not applicable. One possible approach to making only relevant sections appear is to hand-write program fragments to hide and show them. As an alternative, we have developed a form specification language based on a context-free grammar that encodes data dependencies of the input, together with an accompanying run-time interpreter that uses novel layout techniques for collapsing already-entered input fields, for "blending" input fields possibly yet to come, and for showing only the applicable sections of the form.