Accessible Word & Office documents

A Word, PowerPoint, or Excel file is not just a printout — it is a structured document that assistive technology reads through the same way it reads a web page. Screen readers follow the document’s real structure: the heading outline you can jump between, the alternative text on every picture, the header cells that label a table’s columns. When authors fake that structure with visual formatting — bold text instead of a Heading style, a chart pasted in with no description, a grid with no marked header row — the document looks fine on screen but collapses into a flat, unnavigable stream for anyone not reading it with their eyes.

This lesson works through the three defects that account for the great majority of real-world Office accessibility failures. Each one is fixed inside the authoring app itself — Word, PowerPoint, or Excel — using built-in features, not add-ons. The same principles carry over to PDFs exported from these files, because the tags in an accessible PDF come straight from the structure you set here.

What you’ll learn

How to build a real heading outline with the built-in Heading 1/2/3 styles instead of big bold text; how to add meaningful alternative text to every image, chart, and SmartArt object (and mark the purely decorative ones); and how to designate a true header row on every table so screen readers announce each cell with its column label.

Standards this lesson maps to
Standard Criterion Level What it requires
WCAG 2.2 1.1.1 Non-text Content A Images, charts, and other non-text content carry a text alternative that serves the equivalent purpose.
WCAG 2.2 1.3.1 Info and Relationships A Headings, lists, and table header relationships are conveyed in the document structure, not by visual formatting alone.
WCAG 2.2 2.4.6 Headings and Labels AA Headings describe their topic or purpose, so the document outline is meaningful to navigate.
EN 301 549 10 Non-web documents (incorporates WCAG) European harmonised standard; Clause 10 applies the WCAG success criteria to documents such as Word, PowerPoint, and PDF.
Section 508 504.2 / 602.3 (incorporates WCAG A & AA) US federal electronic documents and authoring tools must meet WCAG 2.0 Level A and AA.
ADA Title II WCAG 2.1 AA (DOJ rule) AA Documents posted by US state and local government must conform to WCAG 2.1 AA.

The three problems we’ll fix

Each card below isolates one common document defect. For every issue you get a plain-language statement of the problem, a Bad example (showing the authoring settings that cause it), a Good example, the relevant underlying Code or markup, and an ordered fix you can follow in the app.

Headings faked with big bold text

WCAG 2.2 · 1.3.1 A 2.4.6 AA EN 301 549 Section 508

Selecting a line and making it 18 pt bold looks like a heading, but to the document it is just normal body text that happens to be large. None of it reaches the structure: the heading never appears in the Navigation pane, a screen reader can’t list it or jump to it, and when the file is saved as PDF there is no heading tag to carry across. People who navigate by heading — the most common way screen reader and many keyboard users move through a long document — are left to read every line in order to find a section. The built-in Heading 1, Heading 2, and Heading 3 styles fix this: applying a style records the line as a real heading at a real level, which is what builds the navigable outline and the export tags.

Bad

The author formats text manually instead of applying a style. The line is styled as Normal, so it is body text in disguise — no level, no entry in the Navigation pane (1.3.1).

Word — manual formatting
Text:           Quarterly Results
Style:          Normal
Font:           Calibri, 18 pt, Bold
Outline level:  Body Text   ← not a heading
Navigation pane: (does not appear)

Good

The same line has the Heading 1 style applied from the Styles gallery (or Home > Styles). It now has a real outline level, shows in the Navigation pane, and exports as a tagged heading.

Word — Heading style applied
Text:           Quarterly Results
Style:          Heading 1
Outline level:  Level 1     ← real heading
Navigation pane: Quarterly Results
                   Revenue by region   (Heading 2)
                   Outlook             (Heading 2)

Tip: change how a Heading style looks by modifying the
style — never by switching back to manual formatting.

Code

Under the hood a Word heading is paragraph markup that names its style, and on export to PDF that becomes a tagged heading. This is the structure a screen reader reads — present only when a Heading style was used.

document.xml / tagged PDF
<!-- Inside word/document.xml -->
<w:p>
  <w:pPr><w:pStyle w:val="Heading1"/></w:pPr>
  <w:r><w:t>Quarterly Results</w:t></w:r>
</w:p>

<!-- After Save as PDF, the tagged structure becomes -->
<H1>Quarterly Results</H1>

How to fix

  1. Put the cursor in the heading line and apply a style from Home > StylesHeading 1 for the title, Heading 2 for sections, Heading 3 for sub-sections.
  2. Don’t skip levels: go 1 → 2 → 3 in order so the outline stays logical (1.3.1).
  3. To restyle headings, right-click the style and choose Modify; change the look there instead of reverting to manual bold text.
  4. Open the Navigation pane (View > Navigation Pane) and confirm every section heading appears at the right level.
  5. Run Review > Check Accessibility and resolve any “Use built-in heading styles” warnings before sharing or exporting.

Images in the document missing alt text

WCAG 2.2 · 1.1.1 A EN 301 549 Section 508 ADA Title II

A picture, chart, screenshot, or SmartArt graphic with no alternative text is silence to a screen reader user — at best it is announced as “image” or read out as a meaningless file name like “Picture 3”. Any information the graphic carries (a sales trend, a process diagram, a logo that is also a link) is simply lost. Every meaningful image needs a short text alternative that conveys the same information; images that are purely decorative — a divider, a background flourish — should instead be marked as decorative so assistive tech skips them rather than reading an empty or distracting placeholder. Beware Office’s auto-generated alt text: it is a guess, often wrong, and must be reviewed.

Bad

The chart was pasted in and left as-is. Its alt text is empty (or the auto-generated guess), so the data it shows never reaches a non-visual reader (1.1.1).

Word — Alt Text pane
Object:        Chart 2 (column chart)
Alt Text:      (empty)
Mark as decorative:  ☐ off
Screen reader hears:  "Chart 2, graphic"   ← no data

Good

Right-click the object > Edit Alt Text and write a concise description that conveys the point of the graphic. For a data chart, summarise the takeaway and put the full figures in nearby text or a table.

Word — Alt Text pane
Object:        Chart 2 (column chart)
Alt Text:      Revenue rose each quarter, from $1.2M
               in Q1 to $2.1M in Q4. Full figures in
               the table below.
Mark as decorative:  ☐ off

A purely decorative divider line instead gets:
Mark as decorative:  ☑ on   ← screen readers skip it

Code

The description is stored on the drawing object and, on export to PDF, becomes the alt text on the image tag — the same role the alt attribute plays in HTML. A decorative object exports as an artifact and is ignored.

document.xml / tagged PDF
<!-- The alt text lives on the drawing's docPr -->
<wp:docPr id="2" name="Chart 2"
  descr="Revenue rose each quarter, from $1.2M in Q1
         to $2.1M in Q4."/>

<!-- After Save as PDF -->
<Figure Alt="Revenue rose each quarter, from $1.2M
  in Q1 to $2.1M in Q4.">...</Figure>

How to fix

  1. Right-click each image, chart, or SmartArt object and choose Edit Alt Text (or View Alt Text).
  2. Write a concise description that conveys what the graphic communicates — its meaning, not “image of”. Keep it to a sentence or two (1.1.1).
  3. For complex charts, give a short summary in the alt text and provide the full data in an adjacent table or paragraph.
  4. Tick Mark as decorative for graphics that add no information, so screen readers skip them.
  5. Always review any auto-generated alt text — it is frequently wrong — and run Check Accessibility to catch images with missing descriptions.

Tables with no designated header row

WCAG 2.2 · 1.3.1 A EN 301 549 Section 508

In a data table, the top row of labels — “Region”, “Q1”, “Q2” — tells you what every cell below it means. If that row is just the first row of ordinary cells, the relationship lives only in the visual layout. A screen reader user moving down a column hears “$1.2M, $0.9M, $2.1M” with no idea which figure belongs to which quarter, because the column heading is never repeated with the cell. Marking the top row as a real header row records that relationship in the structure, so each data cell is announced together with its column label. Bolding the first row does nothing for this — it has to be a designated header.

Bad

The first row is bold but is not set as a header. Table Tools shows Header Row unchecked and Repeat Header Rows off, so the labels are just data cells (1.3.1).

Word — Table settings
Table Style Options:
  Header Row:           ☐ off
  Repeat as header row: ☐ off (Layout tab)
First row:  bold text only — not a header

Screen reader in a data cell:
  "$2.1M"   ← no column label spoken

Good

The top row is selected, and on the Layout tab Repeat Header Rows is turned on (with Header Row ticked under Table Design). The row is now a true header, repeated on each page.

Word — Table settings
Table Style Options:
  Header Row:           ☑ on
  Repeat as header row: ☑ on (Layout tab)

In Excel, instead: Insert > Table, then tick
  "My table has headers"  → row becomes a header range

Screen reader in a data cell:
  "Q4, $2.1M"   ← column label spoken with value

Code

A designated header row is recorded in the table markup and, on export, the header cells become TH tags scoped to their columns — the same role <th scope="col"> plays in HTML.

document.xml / tagged PDF
<!-- Header row is flagged in the row properties -->
<w:tr>
  <w:trPr><w:tblHeader/></w:trPr>
  <w:tc><w:p><w:r><w:t>Region</w:t></w:r></w:p></w:tc>
</w:tr>

<!-- After Save as PDF (and the HTML equivalent) -->
<TH Scope="Col">Region</TH>

How to fix

  1. In Word, click the top row, then on the Layout tab choose Repeat Header Rows, and tick Header Row under Table Design.
  2. In Excel, select the range and use Insert > Table with My table has headers ticked so the first row is a real header.
  3. Keep tables simple: avoid merged or split cells and nested tables, which confuse the header-to-data relationship (1.3.1).
  4. Use tables for data only — never for page layout — so the structure carries real meaning.
  5. Run Check Accessibility and resolve any “Use a header row” or “merged cells” findings before sharing or exporting.

Recap

  • Build headings with the built-in Heading 1/2/3 styles, never big bold text. The styles create the navigable outline and the export tags screen readers rely on (1.3.1, 2.4.6).
  • Give every meaningful image, chart, and SmartArt object real alternative text, and mark purely decorative graphics as decorative so they’re skipped (1.1.1).
  • Designate a true header row on every table with Repeat Header Rows (Word) or a named header range (Excel), so each cell is announced with its column label (1.3.1).

The same fixes satisfy WCAG, EN 301 549 Clause 10, Section 508, and ADA Title II at once — structure the document correctly and you meet them all, and the exported PDF inherits the tags for free.