I agree that we should just let the computer keep track of heading levels. TFA suggests, convincingly to me, that "<h1>" would serve this purpose as well as "<h>". This wouldn't even run afoul of CSS single-pass concerns the way that lots of reasonable styling requests do. The first time the browser sees "<h1>", the immediate parent is the top level. Any child with an "<h1>" is the next level, any sibling with one is the same level, and so on.