Thought we'd exhausted HTML text elements? Headers, paragraphs,
and line breaks are just the rudimentary text-organizational elements
of an HTML document. The language also provides several advanced
text-based structures, including three types of lists,
"searchable" documents, and forms. Searchable documents
and forms go beyond text formatting, too; they are a way to interact
with your readers. Forms let users enter text and click checkboxes and
radio buttons to select particular items and then send that
information back to the server. Once received, a special server
application processes the form's information and responds
accordingly, e.g., filling a product order or collecting data for a
user survey.[6]

[6]
The server-side programming
required for processing forms is beyond the scope of this book.
We give some basic guidelines in the appropriate chapters, but please
consult the server documentation and your server administrator for
details.

The HTML syntax for these
special features and their various attributes can get rather complicated;
they're not quick-start grist. So we mention them here
and urge you to read on for details in later chapters.

The three
types of HTML lists match those we are most familiar with: unordered,
ordered, and definition lists. An unordered list--one in
which the order of items is not important, such as a laundry or
grocery list--gets bounded by <ul> and
</ul> tags. Each item in the list, usually
a word or short phrase, is marked by the <li>
(list-item) tag and, when rendered, appears indented from the left
margin. The browser also typically precedes each item with a leading
bullet symbol. [the section called "The <ul> Tag"] [the section called "The <li> Tag"]

Ordered lists, bounded by the
<ol> and </ol> tags,
are identical in format to unordered ones, including the <li>
tag for marking list items. However, the order of items is important--equipment
assembly steps, for instance. The browser accordingly displays each
item in the list preceded by an ascending number. [the section called "The <ol> Tag"]

Definition lists are slightly more complicated
than unordered and ordered lists. Within a definition list's
enclosing <dl> and </dl>
tags, each list item has two parts, each with a special tag: a short
name or title, contained within a <dt> tag, followed
by its corresponding value or definition, denoted by the <dd>
tag. When rendered, the browser usually puts the item name on a
separate line (although not indented), and the definition, which
may include several paragraphs, indented below it. [the section called "The <dl> Tag"]

The various types of lists may contain nearly any type of
content normally allowed in the body of the HTML document. So, you
can organize your collection of digitized family photographs into
an ordered list, for example, or put them into a definition list
complete with text annotations. HTML even lets you put lists inside
of lists (nesting), opening up a wealth of interesting combinations.

The simplest type of user interaction provided by HTML is the
searchable document. You create a searchable HTML
document by including an <isindex> tag in its header
or body. The browser automatically provides some way for the user to
type one or more words into a text input box, and to pass those
keywords to a related processing application on the
server. [the section called "The <isindex> Tag"]

The processing application on the server uses those keywords
to do some special task, such as perform a database search or match
the keywords against an authentication list to allow the user special
access to some other part of your document collection.

Obviously, searchable documents are very limited--one per
document and only one user input element. Fortunately, HTML provides
better, more extensive support for collecting user input though
forms.

You create one or more special form sections in your HTML
document, bounded with the <form> and </form>
tags. Inside the form, you may put predefined as well as customized
text-input boxes allowing for both single and multiline input. You
may also insert checkboxes and radio buttons for single- and multiple-choice
selections, and special buttons that work to reset the form or send
its contents to the server. Users fill out the form at their leisure,
perhaps after reading the rest of the document, and then click a
special send button that makes the browser send the form's
data to the server. A special server-side program you provide then
processes the form and responds accordingly, perhaps by requesting
more information from the user, modifying subsequent HTML documents
the server sends to the user, and so on. [the section called "The <form> Tag"]

HTML forms provide everything you might expect of an automated
form, including input area labels, integrated contents for instructions,
default input values, and so on--except automatic input
verification; your server-side program has to perform that function.