WebAIM - Web Accessibility In Mind

Microsoft Excel
Optimizing Spreadsheet Accessibility

Document Accessibility Online Course

The techniques covered in this article are a subset of the Excel accessibility principles and processes taught in WebAIM's online course on document accessibility.

Introduction

This article will review some high-level techniques for optimizing Excel workbooks. It is important to note that none of these techniques are specifically required to meet current web accessibility guidelines. In the same regard, whether or not a technique is appropriate for a workbook must be determined on a case-by-case basis. Use your best judgement based on the information you have about a workbook's function and intended audience. If you would like to follow along as the techniques are described, please download the Optimizing Workbooks (.xlsx) example file.

Visual Space Around Text

In the context of electronic documents legibility may defined as "How easy text is to see and comprehend based on its visual presentation”. A common legibility issue in Excel workbooks is minimal spacing around text.

When the example file is opened, the "Visual Spacing" sheet should be displayed by default. This sheet shows a table with the default spacing for the columns and rows:

To see the visual impact of increasing the column widths and row heights, switch to the "Freeze Top Row" sheet in the example file:

Some users will find this visual presentation easier to process. To practice these techniques, switch back to the "Visual Spacing" sheet.

To increase the width of columns:

  1. Place focus on the populated columns by selecting their column labels.
  2. Right-click on any selected column and select "Column Width" from the drop-down menu.
  3. Screenshot of 'Column Width' highlighted on the right-click menu.
  4. Increase the numerical value in the "Column Width" dialog box [the column width has been changed from 10 points to 20 points in the example].
  5. Click "OK".
  6. Screenshot of the 'Column width' field labeled with the number 3, and the 'OK' button labeled number 4, on the 'Columns Width' dialog.

To increase the height of rows:

  1. Select the whole sheet with the keyboard shortcut Control + A.
  2. Right-click on any row label and select "Row Height" from the drop-down menu.
  3. Screenshot of 'Row Height' highlighted on the right-click menu.
  4. Increase the numerical value in the "Row Height" dialog box [the row height has been changed from 15 points to 25 points in the example].
  5. Click "OK".
  6. Screenshot of the 'Row Height' field labeled with the number 3, and the 'OK' button labeled with the number 4, on the 'Row Height' dialog.

Columns & Rows

With some spreadsheets, managing how columns and rows function, and their visibility, will provide benefits for some users. These techniques are applied at the sheet level, so the columns and rows in each sheet of a workbook must be evaluated separately.

Freezing Columns & Rows

When a sheet has populated columns and/or rows that extend beyond the visible area, a user must scroll with the keyboard or mouse to see all of the sheet's contents. In this circumstance we recommend that you use one or more of Excel's "freeze" tools.

Switch to the View tab on the Ribbon. In the fourth section from the left there are three "freeze" tools:

  1. Freeze Top Row
  2. Freeze First Column
  3. Freeze Panes
Screenshot of the 'Freeze Panes' menu, with the 'Freeze Top Row' option labeled with the number 1, the 'Freeze First Column' option labeled with the number 2, and the 'Freeze Panes' option labeled with the number 3.

Freeze Top Row

The "Freeze Top Row" sheet on the example file has a table with column headers, and rows of information that extend beyond the visible area:

The column headers are labeled with generic text that corresponds to Excel's built-in labels: Column A, Column B, Column C, etc.—

Starting at the left, the data cells are labeled: A2 data, B2 data, C2 data, etc.

The same convention is used in the other sheets in this workbook.

When a user scrolls down to see the all the rows in the table, the column headers are no longer visible:

To prevent this, click "Freeze Top Row" on the View tab on the Ribbon:

Screenshot of 'Freeze Top Row' option highlighted.

Now when a users scrolls down, the column headers remain visible and the rows appear to slide under them:

Freeze First Column

The "Freeze First Column" sheet has a table with row headers, and columns of information that extend beyond the visible area:

When a user scrolls across to see more columns, the row headers are moved out of the visible area:

Return to the View tab and click "Freeze First Column":

Screenshot of 'Freeze First Column' option highlighted.

Now the row headers remain visible as a user scrolls right:

Freeze Panes

There may be times when you want to freeze more than one column and/or row at a time. Click on the "Freeze Panes" sheet. This sheet has descriptive text—"Freeze Panes"—in the upper-left corner, which in this case is cell B1, in the first row of the sheet. The column headers are in cells B2 to Z2, in the second row of the sheet. In this example we recommend freezing the first two rows:

Screenshot of the 'Freeze Panes' sheet with the first two rows highlighted.

The first column of this sheet has been left empty to provide some visual spacing for the table. There are row headers in cells B3 to B10 in the second column of the sheet, so we would recommend also freezing the first two columns:

Screenshot of the 'Freeze Panes' sheet with the first two columns highlighted starting at row 3.
To freeze more than one column and/or row:
  1. Place focus on the first data cell (in the example file, the first data cell is located at C3 and has the text "C3 data").
  2. Screenshot of the 'Freeze Panes' sheet with the C# cell highlighted.
  3. Click "Freeze Panes" on the View tab.
  4. Screenshot of 'Freeze Panes' option highlighted.

Now, when a user scrolls vertically or horizontally, the two columns and rows of interest remain static.

Hiding Unused Columns & Rows

By default, a new Sheet has more than sixteen thousand blank columns and over a million blank rows. The visual information created by the borders of the cells in unused columns and rows may be distracting for some users. This would include users with some cognitive or learning disabilities, which is the largest category of disability.

Open the "Unused Columns & Rows" sheet. Compare the difference between this table surrounded by empty cells—

versus that same table in the "Hidden Columns & Rows" sheet where the unused columns and rows have been hidden—

If you will not be continually adding information to a spreadsheet, consider hiding unused columns or rows as part of the optimization process. Return to the "Unused Columns & Rows" sheet.

To hide multiple unused columns:

  1. Select the first column to hide by clicking on it.
  2. Select the remaining default columns with a keyboard shortcut: Shift + Control + right arrow.
  3. Right-click on any highlighted column label and select "Hide" from the menu.
  4. Screenshot of the column label right-click menu with the 'Hide' option highlighted.

To hide multiple unused rows:

  1. Select the first row to hide by clicking on it.
  2. Select the remaining default rows with a keyboard shortcut: Shift + Control + down arrow.
  3. Right-click on any highlighted row label and select "Hide" from the menu.
  4. Screenshot of the row label right-click menu with the 'Hide' option highlighted.

If I need to unhide all rows or columns, I'll select the entire sheet by clicking where the columns and row labels meet in the top-left corner right-click—

Screenshot of the top-left corner highlighted in the spreadsheet work area.

either the columns or the rows, and select "Unhide":

Screenshot with 'Unhide' highlighted on the right-click menu.

Eliminating Empty Rows

Another potential issue is the presence of empty rows between elements on the same sheet. Click on the "Empty Rows" tab on the example file. On this sheet, there are two tables with generic labels—"Table 1" & "Table 2". The unused columns and the unused rows at the bottom have already been hidden. But there are six empty rows between the last row on Table 1, and the label for Table 2:

Screenshot of the Empty Rows sheet with empty rows 8 - 13 highlighted.

A screen reading software user encountering a series of empty rows may mistakenly assume that there is no more content on this sheet. We recommend selecting and deleting all but one row between elements on the same sheet:

Screenshot of the row label right-click menu with the 'Delete' option highlighted.

Leaving one row between elements as a way to provide some visual space is common and appropriate practice.

Adding a Workbook Title

Adding a Title provides metadata describing the workbook's contents. This information is required if the workbook will be exported to PDF.

To add a Title on Windows:

  1. Click the File tab on the Ribbon.
  2. Select "Info" from the sidebar.
  3. Screenshot of 'Info' highlighted on the File sidebar on Windows.
  4. Add the Title text in the "Title" field in the Properties section (for this example I'll enter the text "Optimizing Workbooks examples).
  5. Screenshot of the Title field highlighted in the Properties section on Mac.

To add a Title on Mac:

  1. Click on File from the application menu, and select "Properties".
  2. Screenshot of 'Properties' highlighted on the File menu.
  3. Click on the "Summary" tab of the document properties dialog.
  4. Add in the Title text.
  5. Click "OK".
  6. Screenshot of the 'Summary' tab labeled number 2, the 'Title' field labeled with number 3, and the 'OK' button labeled number 4, on the 'Properties' dialog.