A graphical user interface is something in which a user may interact with graphics. Graphics are things which a user can interact with in a gui.
It should be clear that we need better terminology.
Now, the Pixel, in the abstract, is the Universe entire and complete. Our pride aside, however, a pixel is not very useful by itself.
The CSS box is a rectangle with dimensions specified in a number of ways, and with a variety of units. These boxes contain our graphics. There are boxes which correspond to words, in terms of line-breaking rules, and boxes which correspond to paragraphs; inline-boxes and block-boxes, respectively.
The document is itself a box: it is shown within the viewport box, which is the area of your screen in which you can scroll through the document. The document box's width corresponds with the viewport and its height is determined by the amount of content. This is no doubt obvious.
We make mention of a text box and a submit button. They will rest together on a branch which contains the details of the server. If validating something you receive strikes a chord, the server must check what it receives. Thus you are likely to want the server to return the same document, but with an additional message-box, for instance.
Thus we require a conditional branch; thus the server must process the document. To describe a depth-first search one must turn the tree upside-down. At any node we have a direction: up or down. If down and no descendents we cross to our next sibling (without returning up). If down, no descendents and no next sibling, we change our direction. If our direction is already up, we firstly look for our next sibling; and if we find one, we cross to it and change our direction again.
We give the handler--the tag consumer--the option of bypassing a subtree (1), or it may provide its own subtree and consumer (3). Tag consumers themselves are stacked so that they also have the option of allowing a tag to fall through (0). This is one framework, anyway.