A trait is information associated with an area. This could be information
such as text colour or is-first.
Traits provide information about an area. The traits are derived from
properties on the formatting object or are generated during the layout
process. Many of the layout traits do not have actual values but can be
derived from the Area Tree. Other traits that apply when rendering the
areas are set on the area. Since setting the same value on every area
would use a lot of memory then the traits are derived from default or
parent values.
A dominant trait on a block area is set, for example font colour, so that
every line area with the same dominant value can derive it. The text
inline areas then get the font colour set on the inline area or from the
line area or from the block area.