hierarchical headingsConsider tiered numbers

There are two com­mon ways to num­ber hi­er­ar­chi­cal head­ings in a doc­u­ment. One is plainly superior.

The in­fe­rior method is to start with ro­man nu­mer­als at the top level (I, II, III); then switch to cap­i­tal let­ters (A, B, C); then to Ara­bic nu­mer­als (1, 2, 3); then to low­er­case let­ters (a, b, c); then to ro­manettes (i, ii, iii); then to vari­a­tions of the above us­ing two paren­the­ses in­stead of one, or other barely vis­i­ble changes.

Why is this is a ter­ri­ble way to la­bel hi­er­ar­chi­cal headings?

  1. Ro­man nu­mer­als and ro­manettes stink. They’re dif­fi­cult to read. (Quick, what num­ber is XLIX?) They’re easy to con­fuse at a glance. (II vs. III, IV vs. VI, XXI vs. XII.) If what we mean by I, II, III is 1, 2, 3, then let’s just say so.

  2. Let­ters are not much bet­ter be­cause while we im­me­di­ately rec­og­nize A, B, C as equiv­a­lent to 1, 2, 3, the let­ter-to-num­ber cor­re­la­tion gets weaker as we go past F, G, H. (Quick, what num­ber is T?) If what we mean by J, K, L is 10, 11, 12, then let’s just say so.

  3. Mix­ing ro­man nu­mer­als and let­ters re­sults in am­bigu­ous ref­er­ences—when you see a low­er­case i, does it de­note the first item or the ninth item? Does a low­er­case v de­note the fifth item or the 22nd item?

  4. By us­ing only one in­dex on each header, it’s easy to lose track of where you are in the hi­er­ar­chy. If I’m at sub­head­ing d, is that d un­der su­per­head­ing 2 or 3?

If you need to write a doc­u­ment with hi­er­ar­chi­cal head­ings, take a cue from tech­ni­cal writ­ers, who solved this prob­lem long ago—by us­ing tiered num­bers as in­dexes for hi­er­ar­chi­cal headings.

So in­stead of:

You’d have:

To my eyes, this sys­tem is more un­der­stand­able, be­cause it only uses num­bers. It’s also more nav­i­ga­ble, be­cause it’s al­ways clear from a tiered num­ber where you are in the hi­er­ar­chy. And every mod­ern word proces­sor can au­to­mat­i­cally pro­duce tiered num­bers. Con­sider it.

by the way
  • CSS will pro­duce num­bered head­ings by de­fault if you use the <ol> (or­dered list) tag, but tiered num­bers re­quire a lit­tle ex­tra work—in­ves­ti­gate the counter-in­cre­ment property.