When designing tables for accessibility, we recommend that you keep the table layout simple, with one header row followed by body rows. However, some content may be best presented in a table format rather than other presentation options, but requires a more complex layout. For example, you may need to use cell spanning or more than one header to effectively convey the content.
You can create complex tables by using the table object or by combining subform objects. The table object lets you use features that are intended to help the design process, such as options for inserting and resizing columns and rows.
Depending on your design experience and preferences, you may choose to create complex tables by combining subform objects. For example, you can create one subform that includes two rows and specify this subform as the header for the table and specify another subform for the table body rows.
For rows that convey information about the table or its content but that are not considered to be part of the table, assign the subform role of None. The screen reader will read the row content.
The features supported by the screen reader determine the information read for a complex table. For example, assume that a table includes a header row and a section with a header row. When the user navigates into a body row cell in the table section, the screen reader should read the following content, in order:
See also 

Making complex tables accessible