Form Elements
In formArchitect, 'form element' is a generic term that represents the various objects you can add to a form. Although most correspond directly to a recognizeable html element (Text Area is an html textarea element for example), some like Text Box and Generic Group were created to break traditional html elements into objects that are useable (and more understandable) in the context of creating forms.
This was done because attributes for html elements, although typically consistent, can be confusing in their implementation because one attribute can have several different meanings depending on it's context.
For example, the 'value' attribute of the <input> element can mean the text printed on a button, the initial value of an input of type text, or a default value for an input of type checkbox. The representation of value is consistent in that each is passed as part of a name=value pair for processing when the form is submitted, but they differ enough so that designing a single form to allow the creation of each type of input element would, at best, be confusing to all but those intimately familiar with the element in the first place.
To avoid needless comlexity, I decided to break up the <input> element into several 'form elements' that each represent a particular flavor of the input element:
Text Box
The Text Box element represents an <input> element of type 'text', 'password', 'hidden', or 'file'. These types were grouped together because they represent occasions when you want to pass a string of text from the form to your form processing script and because they share common attributes that are implemented in similar ways.
The 'file' type doesn't exactly fit this definition, but is used infrequently enough that I don't think the added clutter of a separate 'File Element' is necessary.
Check Box
The Check Box element represents an <input> element of type 'checkbox'. Inputs of type checkbox are meant to be used to allow a form user to select any or none from a set of related choices. This clearly separates it's use from that of the Text Box, but also from inputs of type radio in which the choices are mutually exclusive (the selection of one precludes the others) and the option to choose none doesn't exist.
Radio Button
The Radio Button element represents an <input> element of type 'radio' and, in addition to the reasons outlined above, was created to differentiate the type of choice you want a form user to make from a group of radio inputs as opposed to the type of choice you expect from a group of checkbox inputs.
Although this may seem like a purely technical distinction, understanding the intended purpose of each type of form element will lead to more useable forms - not only in ease of use for the person completing the form, but in the usefullness of the information you gather from them.
Button
The Button element represents an <input> element of type 'submit', 'reset', or 'button'. Among input elements, these types are unique in that they trigger events (like form submission or form field value reset) and aren't necessarily designed to gather information. This clearly separates their use from that of other input elements.
Form Groups
Form groups represent html elements used in a form that can contain other html elements. The Fieldset represents an html <fieldset> while a Generic Group represents an html <div>.
HTML Elements
HTML elements are those elements that, although unrelated to the functioning of the form, are commonly used in forms nonetheless.
Text Cell
The Text Cell element is an html <p> (paragraph) with a string of text/html inside. Typical uses for a text cell might be instructions for completing the form that don't fit the semantics of the label element, headings for sections of the form, and summaries of privacy statements and/or links to terms of use.
Image Cell
The Image Cell is an html <p> (paragraph) with an html <img> (image) inside. Typical uses for an image cell might be a graphical icon that links to a help section, a corporate or sponsors logo, or simply graphical enhancements that improve the form's appearance.