SuperSheet

Accessible Spreadsheets: A Practical Checklist

By Mark Fulton · 2026-08-19 · 13 min read

Accessible Spreadsheets: A Practical Checklist

Spreadsheet accessibility advice splits neatly into two piles, and almost nobody hands you both. University and government guides cover structure: real tables, header rows, sheet names, alt text, the Accessibility Checker. Design advice covers colour and type but never mentions a screen reader. A sheet can pass every item in the first pile and still be unreadable to a colleague with low vision, or turn to mush the moment somebody prints it.

An accessible spreadsheet needs both halves. Structurally: one table per sheet, a real header row, descriptive sheet tab and table names, no merged cells, no blank rows or columns inside the data, alt text on every chart and image, and meaningful link text. Visually: text on any fill at a contrast ratio of at least 4.5:1 (3:1 if it is 18pt, or 14pt bold), non-text marks like data bars and icons at 3:1 against what sits next to them, and no meaning ever carried by colour alone. Run Excel's Accessibility Checker from Review, then Check Accessibility, but treat it as the structural half only. It is documented as unable to detect information conveyed by colour alone, which is the failure people hit most.

The rest of this is the working checklist, with the source for every number and the place you actually change it.

What does a screen reader do with a spreadsheet?

It reads the grid one cell at a time, and it keeps count.

That counting is the whole story. A screen reader knows it is in the fourth column of the ninth row because it has tracked its position through the cells it has passed. When the table is a plain rectangle, that works, and the reader can announce the column header alongside each value, so 48,200 becomes something like "Q3 revenue, 48,200" instead of a bare number floating in space.

Break the rectangle and the count breaks. Microsoft's own accessibility guidance for Excel is direct about merged cells: the screen reader loses count and cannot give useful information about the table after that point. Not the merged row. Everything after it. The same applies to a blank row dropped in for spacing, which reads as the end of the data, and to two tables sitting side by side on one sheet, which the reader walks through as one impossible grid.

So the structural half of accessibility is not a list of arbitrary rules. It is one rule with several faces: keep the data a solid rectangle with a labelled top edge, and everything downstream works.

Which structural choices make a table navigable?

Six of them, in the order worth doing.

Make it a real Excel Table. Select the range and use Insert, then Table. Once it exists, the Table Design tab has a Header Row checkbox in the Table Style Options group. That checkbox is what tells assistive technology which row holds the column names. A bold first row with a fill looks like a header and announces as data.

Name the table. On the Table Design tab, replace the default Table1 under Table Name with something like Q3Revenue. Microsoft's guidance calls this out explicitly, and the reason is navigational: screen reader users can list and jump between named objects, and a workbook of Table1 through Table6 gives them nothing to aim at.

Name the sheet tabs. Double-click a tab to rename it, or on Mac go to Home, then Format, then Rename Sheet. Sheet1 tells a reader nothing before they open it. October sales totals tells them whether to bother.

Remove merged cells. This is the single highest-value fix in the list and it has a drop-in replacement that looks identical, which I covered in full in what to use instead of merged cells. Worth knowing: this is one place our own tool deliberately stops. SuperSheet will not unmerge your cells or rebuild a tab that holds three tables stacked on top of each other, because guessing at the intended structure is how a tool silently destroys somebody's data. That part stays a human decision.

Close the gaps. No blank rows or columns inside the data rectangle. If a cell genuinely has no value, put something in it, N/A or a dash, rather than leaving a hole that reads as an ending.

Describe every non-text object. Right-click any chart, image or shape and choose View Alt Text. In Google Sheets, click the image, open the three-dot More menu and choose Alt text. Microsoft's guidance on writing effective alt text is that a sentence or two is plenty, that you should not open with "a graphic of", and that purely decorative objects should be marked decorative instead. For a chart, the useful alt text is the finding, not the shape. "Revenue grew every quarter, fastest in Q3" beats "bar chart of quarterly revenue" every time.

While you are in there, fix the link text. Click here and a raw URL both read badly out of context, and screen reader users often pull up a list of just the links.

What contrast does a coloured fill need?

This is where the accessibility guides go quiet and the design guides make numbers up. The actual figures come from WCAG, and they are short.

Success Criterion 1.4.3, Contrast (Minimum), Level AA, requires that text and images of text have a contrast ratio of at least 4.5:1. Large text gets a lower bar, at least 3:1, and large is defined as at least 18 point, or 14 point bold.

Success Criterion 1.4.11, Non-text Contrast, also Level AA, covers the parts that are not text: user interface components and graphical objects need at least 3:1 against adjacent colours. In a spreadsheet that lands on your data bars, your icon sets, the coloured segments of a chart, and any border or rule that is doing real work rather than decoration.

Three practical consequences:

  • A navy or dark green header with white text clears 4.5:1 comfortably. A mid-tone header with white text usually does not. Pale grey text on white almost never does.
  • A pastel highlight fill is fine behind black body text. The same pastel used as the only signal, with nothing on top of it, is a graphical object and owes you 3:1 against the cells around it.
  • Two chart series in adjacent shades of the same blue will fail 1.4.11 even though both look fine individually.

Font size has no equivalent hard number, and anyone quoting you one is inventing it. What WCAG asks for instead is resizability: text should survive being enlarged to 200 percent without losing content or function. The spreadsheet version of that test is to set the zoom to 200 percent and check that nothing is clipped by a fixed row height or a too-narrow column. Pair that with a sans serif face, which is what Microsoft's guidance recommends, and you have covered what is actually enforceable.

Why is colour-alone meaning the most common failure?

Because it is invisible to the person who created it and to the tool that checks it.

Success Criterion 1.4.1, Use of Color, Level A, says colour must not be the only visual means of conveying information, indicating an action, or distinguishing an element. Level A is the floor, not the stretch goal, and a spreadsheet breaks it constantly:

  • Red fills for the rows that need attention, green for the ones that do not.
  • A red number meaning negative, with no minus sign and no parentheses.
  • A three-colour scale across a whole column, where the value is in the colour.
  • A legend that maps a project status to a colour swatch and nothing else.

Every one of those disappears for a reader with colour vision deficiency, on a greyscale printout, in a photocopy, and on a projector in a bright room. The fix is never to remove the colour. It is to make the colour the second signal: keep the red fill and add a status word, an icon, or a number. Colour then reinforces something that is already readable, which is exactly the argument I made in conditional formatting that actually helps.

The red negatives case is worth singling out, because it is the one rule where Microsoft agrees hard enough to flag it as an error rather than a warning. The fix is a number format that carries a minus sign or parentheses alongside the colour, which is covered in the Excel number formatting guide.

The audit: every check, what it fixes, and where you do it

Run this top to bottom on a file before you send it. Structure rows change how the sheet is read. Visual rows change whether it can be read at all.

Check Type What it fixes Who it affects Where you do it
One table per sheet, no side-by-side blocks Structure Reader can walk one contiguous grid Screen reader and keyboard users Layout decision, no menu
Range converted to a real Table with a header row Structure Column name announced with every value Screen reader users Insert, Table, then Table Design, Header Row
Table renamed from Table1 Structure Lets users jump between tables Screen reader users Table Design, Table Name
Sheet tabs renamed from Sheet1 Structure Orients before the sheet is opened Everyone Double-click the tab, or Home, Format, Rename Sheet
No merged cells anywhere in the data Structure Stops the reader losing its cell count Screen reader users Center Across Selection instead of Merge
No blank rows or columns inside the data Structure Stops navigation ending early Screen reader and keyboard users Fill with N/A or delete the gap
Alt text on every chart, image and shape Structure Puts the finding into words Screen reader users Right-click, View Alt Text
Decorative objects marked decorative Structure Skips noise instead of reading it Screen reader users Alt Text pane, Mark as decorative
Descriptive link text, never click here Structure Link list makes sense out of context Screen reader users Edit the hyperlink display text
Text on fills at 4.5:1, or 3:1 at 18pt / 14pt bold Visual Legibility on screen, glare, projectors Low vision, older eyes, everyone Home, Fill Color and Font Color
Data bars, icons, chart series at 3:1 vs neighbours Visual Marks stay distinguishable Low vision, colour vision deficiency Recolour the rule or series
No meaning carried by colour alone Visual Survives greyscale, print, colour blindness Colour vision deficiency, print readers Add a label, icon or number
Negatives shown with a minus or parentheses Visual Sign is readable without colour Colour vision deficiency, print readers Format Cells, Number
Sans serif face, legible at 200 percent zoom Visual Content survives enlargement Low vision Home, Font, then test at 200 percent
Greyscale check before sending or printing Visual Catches every colour-only signal at once Print readers Preview in greyscale, look for lost meaning

That last row is the cheapest audit in the list. Drop the colour and see whether the sheet still says what it meant.

What does the built-in Accessibility Checker miss?

Open it from the Review tab, then Check Accessibility. That path is the same on Windows, on Mac, and in Excel for the web, which makes it one of the few Office paths that has not drifted apart between platforms. Results come back as errors, warnings and tips.

It is genuinely good at the structural half. Microsoft's published list of Accessibility Checker rules includes errors for missing alt text and for tables without column header information, warnings for sheet tabs without meaningful names and for tables that are not simple rectangles, a warning on insufficient contrast between text and background, and an Excel-specific error for cells that use red-only formatting to mark negative numbers.

Here is the gap. Microsoft lists information conveyed by colour alone as something the Checker cannot detect. So the single most common accessibility failure in real spreadsheets, the status column where red means late and green means fine, passes clean. So does a three-colour scale, an unlabelled legend, and a chart whose two series differ only in hue. There is no documented equivalent checker in Google Sheets at all, which makes this entire list a manual pass there.

Treat a clean Checker result as one row of the audit table above, not as the audit.

Does a spreadsheet exported to PDF stay accessible?

Only if you ask it to, and only for the structure you actually built.

Microsoft's route for a tagged export on Windows is File, then Save As or Save a Copy, choose PDF, click Options in the dialog, and confirm that Document structure tags for accessibility is ticked. On Mac, save as PDF and pick "Best for electronic distribution and accessibility". In Excel for the web, File, Save As, Download as PDF. Microsoft's advice in all three cases is to run the Accessibility Checker first, because the export carries over what is there and cannot invent what is not.

The catch is that a PDF is frozen. A screen reader user cannot re-sort it, filter it, or navigate it by column the way they can a live sheet. Table structure survives the export only when it was real table structure to begin with, and every colour-only signal survives exactly as badly as it did before. If the recipient's actual need is to work with the numbers, the accessible answer is usually to send the workbook and keep the PDF as the summary. When the PDF is the deliverable, the layout work matters as much as the tagging, which is the subject of exporting to PDF without losing formatting.

Frequently asked questions

Do I need to use a real Excel Table for accessibility?

For anything that reads as a table, yes. A formatted range and a real Table look similar and behave completely differently: only the Table carries the header information that tells assistive technology which row holds the column names, and Microsoft's Checker raises a missing column header as an error rather than a warning. The Table also gives you a name to navigate to. The exception is a small block that is genuinely not tabular, like a title area or a note, where a Table would misrepresent what is there.

What font size is readable in a spreadsheet?

There is no standard minimum point size, and any specific figure you see quoted is somebody's preference rather than a requirement. What is testable is contrast and enlargement: hit 4.5:1 for body text, and confirm that at 200 percent zoom nothing gets clipped by a fixed row height or a narrow column. In practice, the sizes that pass that test comfortably are the ones you would already reach for in a document, in a sans serif face like Calibri or Arial. Size matters less than people assume once contrast is right, and matters a lot when it is not.

Are merged cells an accessibility problem?

Yes, and it is the clearest one in the list. A screen reader tracks its position by counting cells, so a merge inside the data means it loses that count and cannot describe the rest of the table reliably. Microsoft's Checker flags non-rectangular tables as a warning for the same reason. Center Across Selection gives you the identical visual result with no structural cost, and there is a full walkthrough of both the replacement and the recovery in the merged cells post.

How do I add alt text to a chart in Excel?

Right-click the chart and choose View Alt Text, which opens the Alt Text pane. You can also reach it from the Review tab through the Check Accessibility dropdown. Write the finding rather than the format: what the chart shows, in a sentence or two, without opening with "a chart of". If the object is genuinely decorative, use Mark as decorative instead, which tells a screen reader to skip it rather than guess. In Google Sheets, select the image or chart, open the three-dot More menu, and choose Alt text.

Start with the file you already have

The structural half of this list is a fixed cost you pay once per file. The visual half is where most sheets quietly fail, and it is the half a checker will not catch for you.

If you want a fast baseline, drop your .xlsx or .csv into the Excel formatter and apply a theme. The themes pair their header, body and totals colours so that text sits well above the 4.5:1 minimum, which takes the contrast row of the audit off your plate before you start. What it will not do is restructure a tab that holds three tables or unmerge cells for you, so run the structural rows yourself, then use the audit table above on the result. If you want the layout rules that sit underneath all of this, Excel table design best practices is the companion piece.

Nothing is uploaded. The file is processed in your browser, which means you can try it on the real thing rather than a sanitised copy.


SuperSheet is a free set of spreadsheet formatting, CSV conversion, and cleanup tools. Your file never leaves the browser.