Recent Posts
In business? Your attorney wants you to think about accessibility
Monday, April 22, 2013
The ADA is coming to your website and other customer and employee communications. What are you doing about it?
Department of Education's Office for Civil Rights Conducts Accessibility Compliance Review
Thursday, April 4, 2013
The U.S. Dept. of Education and South Carolina Technical College System (SCTCS) agreed to ensure that SCTCS websites and its 16-member colleges are accessible to persons with disabilities.
Tagging Lists in MS Word & PowerPoint
Wednesday, March 27, 2013
If you aren't very careful you can easily damage lists in MS Word and PowerPoint making them inaccessible. We've got an app for that.
Images of Text
Thursday, February 21, 2013
PDFs are often highly styled, which can mean ligatures, drop-caps and images of text, but CommonLook PDF can help.
Tagging headings for accessible navigation
Monday, January 28, 2013
For AT users, ensuring headings are tagged can make the difference between usable and unusable PDF files.
Connect with Us
| Follow @CommonLook |
Sites of Interest
Heading Levels: Navigation or Decoration?
| Is it OK to skip heading levels in electronic documents? WCAG 2.0 is ambiguous, PDF/UA says no. When it comes to PDF, large documents are commonplace. What are implementers and authors to do? |
| Tweet |
Thursday, April 5, 2012 Return to Logical Structures

Heading levels represent the basic model for navigation in most web content and in PDF files as well (back in the day, PDF borrowed liberally from HTML). The practice of skipping heading levels (for example, from H2 to H5) is common in web content, and not only there.
When considering accessibility what are the rules for heading levels? Isn't effective navigation a normative requirement for accessibility? Does WCAG 2.0 adequately address the question of navigation, especially for longer documents?
This article attempts to address these questions.
Headings Have Levels
However styled, a list of items can't be considered accessible if that "list" consists of <P> tags. Accordingly, while it doesn't explicitly identify any specific tag or technology, WCAG 2.0 Success Criterion 1.3.1 is nonetheless understood to normatively require valid list structures wherever the author intends a list.
Everyone is happy with that. So what else is normatively required to enable navigation for AT users?
Let's keep it simple with these two cases:
- Case 1: H2, H3, H4 (heading levels descend through numerical sequence)
- Case 2: H2, H5, H3 (heading levels are skipped)
Question: Can a document following Case 2 comply with accessibility standards?
What the Standards Say
| Technology Standards | Accessibility Standards |
|---|---|
| HTML 4.01: Section 7.5.5 allows Case 2 but notes that skipping isn't best practice. While HTML refers to Heading Level as a matter of "importance" rather than a question of structure it's clearly implied that structure is to be inferred from heading levels. | WCAG 2.0: Ambiguous. Success Criterion 1.3.1 and Success Criterion 2.4.3 (both Level A) apply. These appear to favor exclusion of Case 2, but there's no explicit normative guidance. The supporting and informative text and examples generally prefer Case 1, however HTML Technique H42 provides an HTML-specific example of Case 2. |
| PDF (ISO 32000-1:2008): Ambiguous but permissive. The relevant section, 14.8.4.3, and 14.8.4.3.5 in particular, encourage explicit structure but do not exclude Case 2. | PDF/UA (ISO 14289-1): Case 2 is not permitted. (ISO 14289-1, Section 7.4.2, para. 1, bullet 3). |
Assessment
PDF/UA is clear: Case 2 is forbidden. WCAG 2.0 is normatively ambiguous. SC 1.3.1 refers to "structure and relationships", and it's hard to see how "structure and relationships" can be "programmatically determined" if heading hierarchy (as opposed to simply the fact of "headings") is to have meaning.
On the other hand, maybe this distinction simply highlights the difference between web content and "other stuff".
Why isn't WCAG 2.0 clear on this Level A question?
WCAG 2.0 addresses web content. The vast majority of web content is HTML, and the vast majority of HTML pages contain only a few headings. Ignore the levels and AT users may still readily "scan" the whole page for headings and navigate accordingly. Consequently, for most web content, headings themselves may matter, heading levels matter a lot less.
"Electronic document" and "web page" are not synonymous. As HTML dominates today's web, PDF dominates in final-form electronic documents. A large part of the basic point of PDF is the ability to serve as a self-contained vehicle for documents with dozens, hundreds or thousands of pages. For effective navigation with AT on such documents, heading levels become increasingly important as a function of both the volume of headings and the number of heading levels in use.
The use cases that prompted the PDF/UA Committee to develop normative language for heading levels are those longer and more structurally complex documents. Most users don't often think of larger documents as "web content", but from government reports to legal briefs to clinical records to bank statements, billions of such documents are fundamental in every area of the economy.
PDF is not "of the web". While headings in HTML denote "importance" (HTML 4.01 7.5.5), in PDF, headings are a "...label for a subdivision of a document’s content" (ISO 32000-1 14.8.4.3.2). These are not identical concepts. It should be no surprise that WCAG 2.0 does not address Level A considerations for the many use-cases in which PDF is the dominant technology, because WCAG 2.0 is clearly rooted in HTML. Longer, structured documents are a very common use-case for PDF as they are not for HTML/CSS.
When so many use-cases and so much functionality is at stake, there's only correct normative answer. PDF/UA provides the necessary normative language specifying the means of navigationally reliable structure in PDF files.
The effect on AT users

René Jaun of Access for All demonstrates his screen reader.
(Photo courtesy of the PDF Association)
Discussions on this precise point with real-world AT users have made it clear that failing to insist on correct document structure drains heading enumeration of navigational value. AT users are condemned to blundering from heading to heading instead of relying on heading levels to locate content.
No actual information is conveyed by skipping a heading level. In a world where heading levels are used for styling, users who depend upon structure for navigation simply cannot trust the heading levels they encounter. Longer documents are, consequently, far harder to navigate.
Why should it be the AT user's problem that many of today's document application and CSS UI implementations don't make it easy for authors to distinguish between structure and cosmetics? These are Level A criteria, after all.
I understand that there's an existing universe of sloppy documents and web-pages. Abuse of structure for style purposes is far from the only sin out there!
All I'm suggesting is that we need to recognize that skipping heading levels IS a sin; admit it, get over it, and get on to dealing with it just like any other normative requirement.
Shouldn't the experience of a WCAG 2.0 conforming document include reliable navigation?
The Bottom Line
If one considers longer documents, there's a strong case to be made that taken together, the two applicable WCAG 2.0 Success Criteria do indeed prohibit the practice of skipping heading levels. If not, what is one to make of navigation as a Level A requirement if heavily compromised navigation is understood to be normatively acceptable?
Why should we consider documents accessible when we already know they will fail reasonable performance expectations when navigated with reliance on heading levels?
That's not the right message to give developers or end users.
What's an Implementer to do?
My conversations with implementers, policy makers and others indicate general acceptance that Case 1 represents best practice at minimum whereas Case 2 is to be avoided. Microsoft Word 2010's Accessibility Checker, for example, will show a "Tip" indicating that a heading level has been skipped - but it doesn't (yet) display an "Error".
In order to make a PDF/UA conforming document, the user will have to entirely resolve this sort of "Heading Level" warning.
If WCAG 2.0 is your only standard and if it's true that WCAG 2.0 allows heading levels to be skipped, a typical 500 page PDF with 1,000 headings spread over 6 heading levels may be absurdly challenging to navigate with AT and still comply with WCAG 2.0.
That's not acceptable, right?
What's the right response for a document that does include skipped headings? All you can do is warn the user that the document has poor and potentially arbitrary structure, and that they shouldn't rely on the heading levels for navigation. It's as simple as that.
How we got here
It's commonplace to blur structure and style. A common (but by no means universal) interface paradigm has trained many users to assume structure and style are synonymous, and they will argue their point.
Some make the case that it can be "editorially correct" to go from H2 to H4, that heading levels should describe the structure of the content, not determine it. To them I say: how does skipping from H2 to H4 (or whatever) "describe" anything? What does it mean to skip more than one level? Whatever you think a given skip means, how is that knowledge communicated to the reader who is depending on heading levels?
Once the door is (normatively) open to skipping headings, navigation becomes arbitrary - surely not a good outcome for an accessibility standard. Skipping headings detracts (by way of inconsistent results and lowered expectations) from the utility of heading levels in all cases, not just in poorly structured content.
Some say there's no practical solution to the problem, that authors won't stand for software that tries to teach them how to write or to structure their documents. I don't think it's been seriously tried. Since we already require properly designed data tables, alternative text for images, sensible links and so on, I don't see why requiring a valid navigable structure is any more onerous or any less necessary.
Since the beginning of the web AT users have learned to expect that trolling from heading to heading is the only way to know how content is sectioned on the page. Trained not to trust heading levels, their experience of longer and more sophisticated content is thus heavily compromised.
Commonplace authoring software encourages the misunderstanding that structure and style are the same thing. Better implementations help authors understand that while document structure and text style are related and may certainly be associated with each other, they are also fundamentally independent.
Use headings to organize the document. Use styles to set and change appearance via classes and in-line styles. It's not rocket-science.
What's the right thing to do, really?
To be considered reliably accessible, for users to actually believe in heading levels as opposed to merely headings, proper implementation of heading levels is required (a "shall statement" in ISO vernacular) in conforming PDF/UA files.
Skipping heading levels is simply not permitted.
Obviously, there's nothing to stop users from making a non-conforming document for any number of purposes, and getting a few heading levels wrong doesn't render the document completely un-navigable in many cases. However, if the objective is PDF/UA-conforming electronic documents, then correctly sequenced (and thus navigable) heading levels are required. Authoring software developers take note!
I speculate that this is normatively required in the HTML/CSS world too (or should be), but I could be wrong. I'm a PDF expert; I would not presume to dictate norms to HTML/CSS people, ahem.
Some implementors are clearly helping users conceive of and thereby manage style and structure information independently.
TinyMCE is a very common JavaScript-based WYSIWYG HTML editor for non-techie, mouse-based users (ie, most authors). This thing boasts side-by-side support for managing structure, style class and in-line styling. It works really well.

More software could be written to examine content and suggest automatic corrections and train the user towards thinking structurally. Most current-generation software punts on this opportunity at best.
Implementing Heading Level Tags in PDF
PDF itself provides (see ISO 32000-1 14.8.4.3.5) and conformance with PDF/UA requires (ISO 14289-1 7.4) either of two means for achieving structured document headings:
- <H#> Enumerated heading tags ("Weakly Structured"). PDF/UA requires that there be no skips in heading level when descending.
- <H> tags with or without enumeration but nested correctly in the tag tree. ("Strongly Structured"). See ISO 32000-1:2008, 14.8.4.3.5 (Usage Guidelines for Block-Level Structure).
Conclusions
There is, as we never get tired of pointing out to each other in the accessibility community, a lot of educational work to be done. There's also a lot of software to be improved to help authors understand that authoring for accessibility means attending to structure, a concept quite distinct from style. This won't be easy.
Perhaps the WAI can offer some sort of clarification that WCAG 2.0 holds well structured content as a norm, or does so when the use-case or relevant technology standard requires it. Effective navigation is too great a sacrificial offering to appease sloppy implementations and lazy authors.
It's not always easy to apply web content norms to the business use-cases typically powered by PDF technology, but WCAG 2.0 and PDF/UA are entirely complimentary. By requiring applicable technology-specific standards such as PDF/UA, accessibility standards organizations and regulators can specify the clearest path to accessibility for electronic documents.
Return to Logical Structures | Read Duff Johnson's Disclaimer


Comments [ Add a Comment ]
An interesting article. As a graphic designer who has been creating InDesign templates to run to PDF for two years, I'm only just getting my head round designing the heading styles for structure rather than aesthetics. Getting that message across to the users of the templates is even more of a challenge.
Stomme, Max, Jim - thanks!
I've been getting a lot of feedback on this piece, whew! What it's all got me thinking (as of right now) is this:
In PDF, structure is COMPLETELY divorced from style. It's actually this fact that allows PDF/UA to realistically deliver on the promise of full-scale hierarchical accessible navigation.
That's precisely why PDF/UA includes the strict rules on headings that it does. The whole intent of PDF may be summed up in the word "reliability". If PDF/UA did not require navigable structure it could not realistically claim to deliver a reliable AT experience.
Unlike most web content, PDF files can be huge in pages and dense in structure. I would hate to think that PDF files might be produced that claimed to conform with WCAG 2.0 but used heading levels in a meaningless way, resulting in grossly compromised navigation. Anyhow, that's (part of) why we have PDF/UA, to define the terms of accessibility in PDF to account for PDF-specific use-cases.
Web developers who know they shouldn't be skipping levels do have a problem that I don't think presents itself in PDFs. A PDF is a document, a web page isn't necessarily. Web pages often have "wrappers" of site-wide content that's somewhat independent of the unique content on the page. For this reason, it is not uncommon to see web pages with headings on the site-wide content that does not follow the unique content section's h1. Some pages have the unique content first, but most pages still have headers, navigation and sidebars first, and footers may have enough material to also warrant their own headings.
We still don't know how to do this well. Site-wide navigation may be complex enough or in different sorts that they each get a heading... before the h1 of the main content. Typically we'll use h2's on those. Even if they come *after* the h1, the h2's are NOT subheadings of the content of the h1. They are only heading-levels of the site-wide "wrapper".
HTML5's Document Outline *might* help this, but it's not here yet.
It does not help much, but I think in many cases, the "Levels" are just selected for their appearance, and not because of their meaning in contents. This may have its origins in the source material, as most is typed/entered considering the visual aspect. This is something which plagued the whole world since the early days of wordprocessing and (IMHO even more) typesetting. It requires much more subject matter knowledge to build the right logical structure than just to hammer ahead. I mention wordprocessing, because how often do you see exactly one style in a (Word) document: "Default". The tools would be here, but they are not used. Is it a questino of stupidity or of lazyness? Probably both.
There may also be another reason; the basic structure elements do really show that they come from scientific paper background, which do usually have a rather simple structure. For "general purpose" documents, it may be too limited. But then, it is extensible…
The navigation argument is easy to make and even easier to understand. There's no reason for skipping levels. The most convincing argument in favor of 'enforcement' is this: 80% of the people responsible for accessibility are not and never will be experts; they're just trying to succeed at the 2% of their job that concerns accessibility. If we throw a lot of complicated partial-semi-pseudo exceptions at them, we are wasting their scarce attention and learning time. If on the other hand we make things simple wherever we can and grant leeway where it's really needed, we'll get overall better results.