Canvas Accessibility Checker - Table Errors

Tables are often used to organize and display information in rows and columns. For students who rely on screen readers, it’s essential that the relationships between headers, rows, and cells are clear. Without proper structure, the information may become confusing or meaningless. Accessible tables are not just visually organized but are also structured to convey relationships between data. Remember, tables should only be used to display structured data (e.g., a schedule or research findings). Avoid using tables for page layout, as this can confuse assistive technologies.

Table Caption Error

There are three different table errors that may appear in the Canvas Accessibility Checker. The first error is if a table doesn’t have a caption. A table caption describes the contents of the table. This brief description helps screen reader users to find a table and to know what it’s about without having to navigate through the whole table. If there is no caption on your table, the Canvas Accessibility Checker will give you a text box to write out a caption. After clicking apply, the caption will be added to your table.

Screenshot of a Canvas Accessibility Checker demo page showing a table that contains data related to various videos. The Accessibility Checker panel on the right highlights an issue: "Tables should include a caption describing the contents of the table," with a text box to add a caption and an "Apply" button.

Screenshot of a Canvas Accessibility Checker demo page showing a table. The Accessibility Checker panel on the right highlights an issue: "Tables should include a caption describing the contents of the table." In the text box below, a caption has been added that says "Videos Captioned".

Table Header

Tables should include at least one header. The purpose of table headers is to clearly label the information in each column or row. For a screen reader, headers act like signposts, helping users understand how the data in a table is organized and how the pieces of information are related. Tables may have a header row, a header column, or both. If there are no headers present in a table, the Canvas Accessibility Checker will flag it and allow you to apply the appropriate type of header. In the dropdown, you can select whether to add a Header row, a Header column, or both.

Screenshot of a Canvas Accessibility Checker demo page showing a table with columns for "Video," "Channel," "Minutes," and "Status." The Accessibility Checker panel on the right highlights an issue: "Tables should include at least one header," with a dropdown menu to set the table header as "No headers," "Header row," "Header column," or "Header row and column." An "Apply" button is below the options.

Once you choose one of the options from the dropdown, select apply.

A table containing the data of various videos, including their channel, minutes, and status. The top row is highlighted with bolded words.

For this table, a header row was applied, so Canvas highlighted the words in the first row. 

Table Header Scope

A table header scope is the connection between the headers and the data they explain. When a screen reader encounters a cell, it uses the scope to identify if the relevant header is in the same row, the same column, or both. This makes it possible for users to quickly grasp the organization of the data without having to manually explore each part of the table. If a table header doesn’t have a scope assigned to it, the Canvas Accessibility Checker will highlight the cell and allow you to select the appropriate scope:

  • Column Header Scope: A column header scope means that the first cell in each column is the header for all the cells in the column. For example, our Videos Captioned Table has four column headers. The cells Video, Channel, Minutes, and Status would all be column headers for their specific columns. A table with column header scopes often has headers in the first row.
    Screenshot of a Canvas Accessibility Checker demo page showing a table with the top row highlighted. The Accessibility Checker panel on the right highlights an issue: "Table headers should specify scope," with a dropdown menu to set the header scope. The menu has "column" selected, and below is an "Apply" button.
  • Row Header Scope: A row header scope means that the first cell in each row is the header for all the cells in a row." For example, a monthly expense table may use a row header for each expense category. In this case, the categories Rent, Groceries, Utilities, Gas, and Food would all be row headers for their specific row. A table with row header scopes often has headers in the first column.
    Screenshot of a Canvas Accessibility Checker demo page showing a table with the items in the first column bolded. The Accessibility Checker panel on the right highlights an issue: "Table headers should specify scope," with a dropdown menu to set the header scope. The menu has "row" selected, and below is an "Apply" button.
  • Column Group Header Scope: These are used to group heading columns together that share a common purpose or meaning. For example, if you have a table with sales data, you might group columns for "Q1," "Q2," "Q3," and "Q4" under a single "Yearly Sales" column group. This helps visually show that these columns belong together
    Screenshot of a Canvas Accessibility Checker demo page showing a table titled "Sales Data" with columns for "Product" and "Yearly Sales" (which is divided into four columns, Q1, Q2, Q3, and Q4). A red arrow points to the "Yearly Sales" header. The Accessibility Checker panel on the right highlights an issue: "Table headers should specify scope," with a dropdown to set the header scope which is set to "Column group," with an "Apply" button below.
  • Row Group Header Scope: These are used to group heading rows together that belong to a similar category or section. For instance, if your table lists employees, you might group rows by department. Each row group could represent a different department, with its rows showing individual employee details
    Screenshot of a Canvas Accessibility Checker demo page showing a table titled "Employees" with columns for "Department," "Name," and "Position." The rows are grouped under "Sales" and "Marketing," with a red arrow pointing to the "Sales" row header. The Accessibility Checker panel on the right highlights an issue: "Table headers should specify scope," with a dropdown to set the header scope which is set to "Column group," with an "Apply" button below.