Matterhorn 28-009 · PDF/UA-1 UA1:7.18.3-1

Tab order that follows the page, not the document

Blocker Checkpoint 28: Annotations WCAG 2.4.3 (A)

/Tabs is present but set to /R (row order) or /C (column order) rather than /S (structure order).

The condition, as the protocol states it. “A page containing an annotation has a Tabs entry with a value other than S.”

Matterhorn Protocol 1.1, checkpoint 28, index 28-009, section UA1:7.18.3-1. Software can decide this one on its own.

What a screen reader actually does

Tab order follows geometry rather than logical structure — in an RTL document, catastrophically so.

What is in the file

Each page dictionary may carry a /Tabs entry, and it takes one of three values:

/Tabs /S    structure order — the tag tree decides
/Tabs /R    row order — left to right, top to bottom, by geometry
/Tabs /C    column order — top to bottom, then across

PDF/UA-1 clause 7.18.3 requires /S on any page that contains an annotation. This condition fires when the entry is present and is /R or /C.

It is per page. A twenty-page form can have the right value on the page somebody was looking at and the wrong one on the other nineteen, which is the usual shape of it.

What the user does

Tab through a form and the caret goes somewhere. Which somewhere depends entirely on this one name.

With /S it follows the structure tree, which is the same order a screen reader reads — so the announcement and the caret agree, and the field a person hears described is the field they are about to type into.

With /R it follows geometry. On a two-column form that means: first field of the left column, first field of the right column, second field of the left column, second of the right. The person hears “Surname” and lands in “Postcode”. They are not lost in a way they can see; they are filling in a form whose labels and boxes have come apart, and the mismatch is announced to them as if it were correct.

The same page read by a screen reader in reading mode is in structure order. So the document says one thing when read and does another when operated. That gap is the failure, and it is invisible to anyone using a mouse.

The right-to-left case

/R means left to right. That is not a neutral default in a Hebrew or Arabic form — it is backwards.

A Hebrew form is filled from the right. With row order, the first field on each row that Tab reaches is the last one the person should fill, and the last one it reaches is the first. Every row, every page. Combined with labels sitting to the right of their fields, the result is a form where the tab sequence, the visual order and the announced label all disagree with one another in different ways.

This is why the setting is not a detail. In a left-to-right single-column form it is a technicality. In a right-to-left two-column form it is the whole usability of the document.

How to check it free

Tab through it. Open the form, press Tab repeatedly, and watch where the focus goes. If the sequence is not the order you would fill the form in, the entry is wrong. This takes fifteen seconds and needs nothing installed.

Acrobat Pro: Page Thumbnails panel → select a page → right-click → Page PropertiesTab Order. The radio button shows the current value. Check more than one page.

veraPDF reports it against clause 7.18.3, per page, which is how you find the nineteen pages nobody looked at.

How to fix it free, in Acrobat Pro

  1. Open the Page Thumbnails panel.
  2. Ctrl+A to select every page — this is the step that matters.
  3. Right-click → Page PropertiesTab Order tab.
  4. Choose Use Document Structure.
  5. Save.

Then confirm the structure it is now following is worth following. Setting tab order to structure order on a form whose controls are not in the structure tree hands the caret to a tree that does not contain them, which is not an improvement. Fix the structure first, then point the tab order at it.

Where Taggart differs

tab-order is a safe fix: it writes one name into each page dictionary, changes no content and no appearance, and the gate confirms the rendering is identical. It runs in the batch.

What Taggart adds is the ordering. Setting /Tabs /S is only meaningful once the annotations are in the structure tree, so it is sequenced after annotation-structure rather than alphabetically or by page — and the remediation report records both, together, because a reviewer looking at “tab order set to structure” wants to know that the structure existed when it was set.

It also reports the pages, not just the document:

/Tabs is /R on 19 of 20 pages. Page 1 is already /S.

That asymmetry is the fingerprint of a setting changed by hand while looking at one page, and naming it is usually enough for somebody to recognise what happened.

How Taggart handles it

Taggart detects this condition automatically. It is reported as a blocker, with the page, the structure path and the object id of every occurrence.

The fix is Set tab order to structure order. It is mechanical, so “Fix All Safe” applies it in bulk with a diff and a single undo.

Whatever Taggart changes, the page still looks identical. Fixes edit the PDF object model, not the content streams, and every remediation is re-rendered and compared against the original at structural similarity ≥ 0.999 before you get the file back. A tool that quietly reflows your document is worse than no tool.

Frequently asked questions

Where is this setting in Acrobat?

Page Thumbnails panel, select all pages, right-click → Page Properties → Tab Order → Use Document Structure. It is per page, which is why it is so often right on page one and wrong on the rest — somebody set it while looking at a single page.

Does it matter if the form is simple?

On a single column of fields in top-to-bottom order, row order and structure order agree and nobody notices. The setting still fails the standard, and it is one right-click away, but the lived effect is nil. On two columns it is the difference between a usable form and an unusable one.

What if /Tabs is absent entirely?

Absent is a different condition. PDF/UA-1 requires /Tabs to be present and set to /S on any page carrying an annotation, so an absent entry fails too — Taggart reports it separately because the repair is the same but the diagnosis is not.

Why is this worse in Hebrew?

Row order means left to right. A Hebrew form is filled right to left, so row order does not merely differ from the logical order, it reverses it — the first field a person should reach is the last one Tab arrives at, on every row.

Where this sits in the standards

Standards this condition maps to
StandardReference
Matterhorn Protocol 1.1 Checkpoint 28 (Annotations), index 28-009
PDF/UA-1 (ISO 14289-1) Clause 7.18.3-1
WCAG 2.1 2.4.3 Focus Order — Level A
EN 301 549 / Section 508 / ADA Title II All three point at WCAG 2.1 Level AA for non-web documents, so a Level A or AA criterion here is in scope for each of them.

Other conditions in checkpoint 28

Checkpoint 28 covers annotations. These are its other failure conditions; the ones without a link are in the rule set but do not have a written page yet.

Check your own file. Taggart’s validator is free and unlimited — every machine-checkable Matterhorn condition, no page cap, no watermark, no account needed.

Check a PDF free

Verified against a real document on . Last updated .