![create responsive columns rows create responsive columns rows](https://reactgo.com/static/7ad12cb0bffbfa1b3e4d38e862cd3c55/72f41/two-column-responsive-layout.png)
The most meaningful markup still comes from non-tabular semantic content. In essence, nothing in the markup tells the screen reader user if the content should be read via rows or columns. VoiceOver at least allows you to navigate in any direction using arrow keys, but you still have no indication which order you should navigate in. The reader steps through the table via rows no matter how your content is arranged., and even scope="row|col" don’t seem to do anything! The only way to get it to recognise a heading is to wrap it in an tag. Neither CromeVox or VoiceOver tells you when you are on a table heading.ChromeVox tells you that you are on a table, while VoiceOver also tells you how many columns and rows the table has (which is helpful).
![create responsive columns rows create responsive columns rows](https://i.pinimg.com/originals/12/f4/b1/12f4b17d04d0e539aa388f0c52190fb8.jpg)
Using a few screen readers ( Chrome Vox and VoiceOver), I attempted to navigate the markup: I did some tests with a simple best practice table. Surely native table markup helps a user with a screen reader understand the order content should be read in and navigated through? One of my main concerns was accessibility. Standard table markup seems to make semantic sense and does a pretty decent job of aligning cells. Examples of comparison tables Is table markup still working for us? I set out to find a flexible and simple solution that could work as a reusable web component, regardless of the content within. The tables I find most frustrating are comparison tables or normal content layout tables, there are really no comprehensive CSS based solutions for making these types of tables responsive. There are many types of tables on websites where content can vary as wildly as the approaches used to make them responsive. This is a great addition to territory we’ve been treading for a while. That’s what I like about this post by Davide Rizzo: it admits that, then gets on with some solutions. There is no single solution to make any appropriately responsive.