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.1A2.4.6AAEN 301 549Section 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
Put the cursor in the heading line and apply a style from
Home > Styles — Heading 1 for the title, Heading 2
for sections, Heading 3 for sub-sections.
Don’t skip levels: go 1 → 2 → 3 in order so the outline stays logical (1.3.1).
To restyle headings, right-click the style and choose Modify; change
the look there instead of reverting to manual bold text.
Open the Navigation pane (View > Navigation Pane) and confirm
every section heading appears at the right level.
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.1AEN 301 549Section 508ADA 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
Right-click each image, chart, or SmartArt object and choose
Edit Alt Text (or View Alt Text).
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).
For complex charts, give a short summary in the alt text and provide the full
data in an adjacent table or paragraph.
Tick Mark as decorative for graphics that add no information, so
screen readers skip them.
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.1AEN 301 549Section 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
In Word, click the top row, then on the Layout tab choose
Repeat Header Rows, and tick Header Row under
Table Design.
In Excel, select the range and use Insert > Table with
My table has headers ticked so the first row is a real header.
Keep tables simple: avoid merged or split cells and nested tables, which
confuse the header-to-data relationship (1.3.1).
Use tables for data only — never for page layout — so the structure carries
real meaning.
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.