The various element insertion options are all routed through generic node insertion and attribute setting routines. At the highest level, each element type has a command for an insertion of a node of that type. This command maps to a JS routine that calls into a modified version of generic DOM APIs. A document will be produced containing a list of all the insertable elements and their mapping to commands. Most user interface elements allow user interaction of some form.
Text fields are editable, buttons are clickable, and so on.
In the VFD, much of this behaviour is undesirable, and we certainly do not want user-specified events to fire on elements. We will need to devise a means to prevent events like oncommand firing on buttons, even when the user has specified a handler. This will involve a number of small patches to various widgets to give them an 'edit mode' in which their standard behaviour is reduced. In the VFD, almost everything can take focus. Focus needs to be indicated not in the conventional sense, but in the sense that the focused element is selected.