3 ms·
> In a modern web world it is extremely inappropriate to use tables for non-tabular data [even when convenient] Why?
by xlnt 18y ago
> In a modern web world it is extremely inappropriate to use tables for non-tabular data [even when convenient]
Why?
- mbleigh 18y agoFair question. Semantically the <table> tag is created for just that, tabular data. If you use it for layout there are a number of problems. First, it is harder for screen-readers and other accessibility-based tools to decipher a website laid out with tables than one properly laid out using standards-based development. Second, you are adding needless bloat and confusion to your markup, as you will have completely unnecessary tags littered throughout your HTML. Third, you will be going against standards-based development, which is a worthy goal in and of itself. CSS exists to separate markup from style information, that's its entire purpose. To use tables to lay out a page is to explicitly include style information in a place designated only for semantic markup.
- dmoney 18y agoPerhaps the solution is to make a better screen reader, one that can extract semantic data from non-semantic markup.
- olavk 18y agoYeah, screen readers seem pretty useless if they cant handle a web page with tables-for-layout, since these are quite common whether we like it or not. A sensible heuristic would be to treat tables without TH or THEAD elements as layout-tables, ie. just read them serially, while treating tables which contain at least one TH-element as a true semantic table. I'll bet this is the correct interpretation 9/10 times.
- tomjen 18y agoThe <table> tag may have been designed to be used for table, but this is not what it is used for in practice. Hence screen readers should adapt.
- hobbs 18y agoHeh. It's ironic that XML was designed to represent text documents, but is now mostly used to hold data. Maybe if they had named it eXtensible Table Language, they would have enticed people to put text into it like they do with the <table> element.
- shaunxcode 18y agoBate taken. Because it violates the semantics of what a table should be. i.e. a data matrix.
- xlnt 18y agoI don't care what a table "should" be very much. How is that even determined? By what some committee says? I care what, in fact, it does. How browsers and others use it.
- shaunxcode 18y agoOf course you can always do what ever you want/what ever works. But the reality is moving away from tables for your layout will make your site more malleable and easy to maintain the future. It doesn't always mean crazy i.e. only clauses in your css either. see: http://news.ycombinator.com/item?id=219809 http://news.ycombinator.com/item?id=219809
- xlnt 18y agobut didn't the article give an example or two where tables made your site more maintainable?
- elai 18y agoTables give you abritary grids, a very important design tool. CSS doesn't do as well. People turn to CSS frameworks to make it happen.
- pxlpshr 18y agoNo, that was not my interpretation of this article at all. It sounds to me like you've never built a large CSS/XHTML valid website, or you'd understand why the web is driving toward standards. I was like you ~3-4 years ago as I grew up using tables. Believe me, just move on... 99% of the job postings I see require an understanding of XHTML/CSS. And this trend will continue as standards are solidified... Catch up or be left behind.