The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
Odd thing...
We have some Canvas generated tables on a page. We save them. We look at them as a student. We put the cursor in the first cell block. We then try to tab from cell to cell to test keyboard accessible functionality. But rather than tabbing cell to cell, it jumps us to the Next Page button (skipping the entire table). We've tried this repeatedly. It's not an image. It's a table.
We're confused. The only way to 'read' the table is using Immersive Reader.
What is going on?
Solved! Go to Solution.
Except @RobertGibson says that this is a data table, NOT a layout table - so this advice would be the opposite of accessibility in this case. His particular question is about keyboard navigation, but for anyone else who happens by, following the advice to use <divs> for a data table would make it inaccessible to anyone who uses a screen reader.
I would strongly recommend using semantic html for data tables, like Canvas uses. To quote WHATWG, "Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable. Use of more appropriate elements instead of the div element leads to better accessibility for readers and easier maintainability for authors."
To support what Jenn posted; the semantic elements are the <table>, <th>, and <td> elements. CSS class names are not used for accessibility.
Laura
@RobertGibson ...
I don't really have a solution for you at this time, but I do have a question. What is the purpose for your table on the page? Is it for design/layout of the page? If so, tables should really only be used to hold data...at least, that's what I've seen others here in the Community say. If you are using tables for design/layout, are there other ways you can design your page that would eliminate the need for tables? If you have the DesignPLUS product from Cidi Labs, you could use their Columns feature to help in the design of your page.
I think we need more information from you on the purpose of your table so that we can help you further. Thanks!
Chris, it's for holding data
For read-only tables displayed as content, data tables as data tables don't need keyboard accessibility in the individual cells. Keyboard-reliant users can generally see the data in the table and visually read it. There's nothing in the individual table data cells containing data that requires interactivity, and thus don't require keyboard focusability. This is typical and expected table behavior.
The exception is if the application puts action buttons or elements into table data cells. Those action elements in the table must be keyboard focusable.
Screen readers provide a way to navigate and read the table data that isn't reliant on keyboard focusability using screen-reader specific keyboard commands. These users can navigate up and down rows and columns with the screen reader to explore the table. Again, this doesn't use keyboard focusability.
This was actually new to me as I thought all tables required keyboard focus. From ChatGPT:
Yes, tables generally require tab key focus to be accessible, especially when it comes to interactive elements within tables like links, buttons, or form inputs. Here's how this works in terms of web accessibility:
Non-Interactive Content: For tables that are used purely for displaying data (non-interactive), it is not necessary for the table cells themselves to be focusable via the tab key. Instead, ensuring that the table is properly marked up with <table>, <th>, and <td> tags, along with appropriate use of scope attributes, is crucial for screen readers to interpret the table correctly.
Interactive Elements: If a table includes interactive elements such as links, buttons, form controls, or any other widget that requires user interaction, these elements should be focusable with the tab key. This ensures that all users, including those using keyboards and assistive technologies, can access and interact with these elements.
Navigation Aids: For complex tables, especially those used in applications with a lot of data and interactive features (like sorting or filtering), providing additional keyboard navigation aids (such as shortcuts to jump between rows and columns) can enhance usability and accessibility.
Properly coding and structuring tables with clear headers and readable content ensures accessibility for all users, including those with disabilities.
Hi- ChatGPT essentially says the same thing I said, that noninteractive data presented in a table does not need to be keyboard focusable.
There are instances if you are trying to replicate a spreadsheet-type experience in an online application that you might have the web application support keyboard navigation through the various data cells.
Screen reader software has built-in commands to navigate and read table data.
Laura, thank you. For argument sake, let's say the cells contain interactive elements, such as links. Will Canvas automatically make those cells keyboard focusable using the Tab key?
You would need to insert the links using the rich text editor commands like you would any other link in content. If you just type in the web address as content, its not going to automatically convert it to a clickable element like you sometimes have with Word, Google Docs, or gmail.
Laura
Attached image shows the insert link menu item from the rich text editor toolbar.
I just ran a test in one of my courses and realized this is also an issue I am having. With all the accessibility changes coming this year, this concerns me!
Thank you, Robert, for this post!!!
Replace Tables with <div>s in Canvas for the solution and improved ADA Compliance
Reformatting layout tables into <div>-based structures helps improve accessibility, especially for screen reader users. Below are key practices that support ADA and WCAG compliance:
Except @RobertGibson says that this is a data table, NOT a layout table - so this advice would be the opposite of accessibility in this case. His particular question is about keyboard navigation, but for anyone else who happens by, following the advice to use <divs> for a data table would make it inaccessible to anyone who uses a screen reader.
I would strongly recommend using semantic html for data tables, like Canvas uses. To quote WHATWG, "Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable. Use of more appropriate elements instead of the div element leads to better accessibility for readers and easier maintainability for authors."
To support what Jenn posted; the semantic elements are the <table>, <th>, and <td> elements. CSS class names are not used for accessibility.
Laura
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in