This is all very cool in theory; however, browser support for these features is limited. Only Camino (using the Gecko engine) displayed CSS tables properly. Both Safari 1.0 (using a modified KHTML rendering engine) and Internet Explorer 5.2 completely ignored the tags. links and lynx ignore them as well. This means that to a whole lot of E2 users, CSS tables would look like garbage.
An algorithm for verifying the integrity of a table is not that difficult in concept, even for nested tables. (On second thought, though, nested tables might not be a great idea.) The algorithm just has to keep track of all the tags that are opened, and make sure that they are closed in the right order. If the algorithm runs into a missing tag, it can perform one of these actions:
- Add the necessary closing tags to prevent the E2's layout from being completely mangled.
- Skip rendering the table altogether.
... in addition to a friendly alert near where the writeup hints usually show up.
Naturally, the allowed attributes should be kept minimal.
rowspan are necessary. Background colors and images shoudn't be allowed, of course. Column width should be restricted to a percentage, if allowed at all. There is no height attribute in the HTML specifications, so that can't be used.
<colgroup> and similar tags aren't really necessary. Everything else is optional, but should be alright.
The damage caused by missing tags would be minimal, and the voting system should keep things from getting out of hand.
Even though the implementation is very feasible, I'm still not sure which way the addition of tables would affect the overall quality of writeups. The percentage of writeups that could gain a lot from the addition of tables is pretty small, but perhaps it is just me thinking small. If you were to give tables a shot, I think it would be wise to follow TDO's idea and restrict tables to higher level noders (2 or 3
should be enough).