HTML5 is a format for a text file, which makes pretty stuff happen to the text when viewed in an HTML5 browser. For a complete explanation, see the full picture.

In this article I want to talk about the lists that organize my ideas and thoughts on paper or on the web. I list my ideas in HTML5 and enrich the text to enhance and add meaning to my message. I also create more complicated lists such as lists of pairs (tuples or definition lists), lists of lists (outlines), and 2D definition lists (n-tuples or tables).

I enjoy organizing and sharing my data succinctly and without distraction.

Simple list elements

The most basic kinds of lists are unordered (for example, bulleted) and ordered (for example, numbered or lettered). I may control the appearance of the bullets or numbers with the list-style-type and list-style-image of CSS.

li
I can have many (per parent). The basic unit of the simple list, and is child of a ol ordered list element or a ul unordered list element exclusively. The end tag may be omitted which I do because starting another <li> list item or ending the list shall end the item anyway.
ol
I can have many (per document). This element captures an ordered list.
ul
I can have many (per document). This element captures an unordered list.

Definition list elements

A dl definition list element serves to map one or more names to one or more values. One or more dt naming elements precede one or more dd value elements composing the same group. And a definition list may contain one or more groups in sequence.

dl
I can have many per document. This element forms a definition list composed of groups of one or more dt term or name elements followed by one or more dd definition or value elements. Not restricted to definitions only, but must semantically match the notion of a mapping. For instance, it would not appropriate for labeling a dialog.
dt
I can have one or more per name-value group and per parent. A child of a dl element. A name or term to be mapped to value(s) or definition(s) in the same group. To indicate a defined term, wrap the term in a dfn element within the dt element.
dd
I can have one or more per name-value group. A child of a dl element. The value or definition to be mapped to name(s) or term(s) in the same group.

Table elements

The table elements form the definition of a single table which contains cells composing rows and columns.

table
I can have many per document. This element collects a single table definition into one element.

I must order children of each table element as in the following list. I begin with the caption, and then column groups, and then lastly, row groups as follows.

caption
I can have zero or one per parent table element. Specifies a title for the table to be displayed above or below the table.
colgroup
I can have many per parent table element. This element groups col elements into a column group of the table.
thead
I can have zero or one per parent table element. This element groups tr elements into the head of the table.
tfoot
I can have zero or one per parent table element. This element groups tr elements into the foot of the table. Optionally, can be specified after the tbody elements (instead of before).
tbody
I can have many per parent table element. This element groups tr elements into a row group of the body of the table.

The following elements slice the table into rows and columns within the groupings just mentioned.

col
I can have many per parent colgroup element. This element represents a single column of the table, but does not hold contents.
tr
I can have many per parent thead, tfoot or tbody element. This element represents a single row of the table.

The following elements define the cells within the rows (explicitly) and columns (implicitly) just mentioned that form the single unit building blocks of the table.

td
I can have many per parent tr element. A root sectioning element. This element represents a single cell meant for most table data except table headings.
th
I can have many per parent tr element. This element represents a single cell meant as a heading for other table cells.

List attributes

Besides these attributes, elements also may have Global Attributes and Event Attributes.

abbr
May apply to th elements. Specifies an alternative label for its contents.
border
May apply to table elements. A legacy attribute which hints at the usage of the table.
1
Value indicates this is not a layout table.
0
Non-conforming value to indicate a layout table.
colspan
May apply to td or th elements. Default is 1. The number of columns the element spans.
headers
May apply to td or th elements. A space-separated list of ID values of th elements that are descriptors of this cell.
ID
Global attribute that may apply to th elements so I may match up a disjoint table cell by the headers attribute. The attribute value is repeated in the headers attribute of td or th elements.
reversed
May apply to ol elements. This boolean attribute causes the list to number in reverse, such as for counting down a top ten list.
rowspan
May apply to td or th elements. Default is 1. The number of rows the element spans.
scope
May apply to th elements. Describes the cell region which is titled by this table heading. One of the following values.
row
May head subsequent cells in the same row(s).
col
May head subsequent cells in the same column(s).
rowgroup
Heads all remaining cells in the same thead, tbody or tfoot element.
colgroup
Heads all remaining cells belonging to the same colgroup.
sortable
May apply to table elements. HTML 5.1 boolean attribute pending implementation to enable a sorting interface.
sorted
May apply to th elements. HTML 5.1 attribute pending implementation to control a sorting interface.
number
Sorting ordinal for prioritized sorting.
reversed
Whether to reverse the sorting.
number reversed
reversed number
Sorting ordinal with reversed ordering specified.
span
May apply colgroup and col elements. Default is 1. The number of columns the element represents. If present, the element must be empty.
start
May apply to ol elements. Default is 1 without the reversed attribute or else the number of children. Provides the number of the start position of the list. For example, I might use start=4 if resuming a previous list which had 3 items so far.
type
May apply to ol elements. Controls the list marker style and maps to the list-style-type of CSS. The attribute values, CSS attribute mappings and definitions are as follows:
1
decimal
Default. Decimal number.
a
lower-alpha
Lowercase latin alphabet.
A
upper-alpha
Uppercase latin alphabet.
i
lower-roman
Lowercase roman numerals.
I
upper-roman
Uppercase roman numerals.
value
May apply to li elements found within ol ordered list elements. Default of the first element in the list is the start attribute value. Default is the previous value plus 1 (or minus 1 if the list is reversed). To change the numeric value of the list item. For instance, I can re-number using prime numbers for no reason at all.
  1. These
  2. are
  3. prime
  4. numbers!
  5. But the list
  6. (if continued)
  7. without specifying
  8. any more value attributes
  9. will count
  10. from the last number
  11. specified (value=13).

YES!! I have survived this exposé on how to list and tabulate with HTML5 savvy, and I hope you have too.