OK, you've convinced me... Only joking, and I'll do my best to respond, but I can guarantee that I won't have arguments against many of your excellent points.
The difference between this:
[snip]
...And this:
[snip]
Is minimal. And I've heard the "yeah but multiply that by 1000 pages" argument many times, but in a real-world setting I'm not really convinced about those 6 extra characters.
I'm not talking about character count, or download size. I am presuming that all fully-featured search engines parse the HTML to rank a page. The relative density of different DOM elements is what counts.
I think you are assuming we are talking about the "one-hulking-table-shell-that-surrounds-everything" approach. When I coded with tables, I didn't really do that. I stacked simpler, individual tables, one after the other when I needed columns, and still used div's when I did not.
I just don't underdstand the objection: columns can be achieved using non-tabular HTML and CSS, so why revert to tables for this specific layout requirement?
the great thing about a table for a horizontal menu was you could automatically space out the items equally without extra CSS declarations (like hard coding padding in pixels, or specifying widths as percentages -- both of which require CSS changes when new items are added).
I would strongly argue that you have to check manually every time you add an item to a horizontal menu because it might have layout issues. Yes, the layout issues in the CSS UL approach are different to those in the table approach. There's a limited amount of horizontal space. I'd always want to check.
But you have to admit -- how much easier is it to make a layout with a mix of fixed and fluid columns if you still used tables? You don't want to admit, but deep down you know it's true.
I really don't. I think of layouts like scholar's margins, which I adopted to use for images, and that would be impossible to achieve sensibly with tables. What is seen as an irritation with CSS - floats coming out of the flow, and hence not being contained by their parent - becomes a useful feature unavailable in tabular HTML. I've not come across a design which it has not been possible to implement with non-tabular HTML and CSS, and I have come across plenty of layouts not possible with non-CSS tabular HTML.
did you ever notice that many people (and even TL by default) place the right column content in front of the main column in their HTML
Sure. Just because many people don't code correctly using a technique does not invalidate the technique, surely? If it did, then tag-soup tabular HTML layouts would be a clinching argument against that approach.
Initially I made the templates with div, floated them and gave them a border in basic.css so they would show in a more intuitive way in tinyMCE. Client came to look at the progress and asked what 4 columns looked like on that page... I could insert a new column using some smart copy and paste actions and show him, but the client would probably not want to learn how to do that and forget because that action is not very frequent.[...] Changing this to tables means he can use tinyMCE to just add or remove columns easily. A thing that CSS alone will not be able to do.
Is this a criticism of CSS-based columns because of how they need to be inplemented in tinyMCE? Again, to me that means that there is a problem with tinyMCE, not a problem with CSS. Forgive me if I am misinterpreting your point - always tricky to visualize these things from a textual description.
The faux columns technique (like the before mentioned perfect fluid layout uses) is the best argument to prove you'd sometimes be better off using tables. The technique is simulating a column, to fix a problem with css.
So is using a table in HTML! It is simulating a column using a table, to work around a limitation of HTML. A limitation which has good reasons for being there. Caveat: I'm not an adherent of the faux columns approach either, so I'm not an apologist for it, as it fixes some column widths in pixels, the last time I looked at it, so it wasn't compatible with elastic layouts.
Perhaps I'm being too idealistic, but to me, the concept that HTML (which, let's remember, is not a new idea, as anyone who has waded through SGML will know) provides only sematic information is such a powerful one. Keep your content in this semantic form, never repurpose it at that source level, but use CSS to present it across multiple channels. OK, so perhaps CSS implementation in user agents is not advanced enough to make this process as painless as it should be (how long has the :hover pseudoclass been an IE issue?), but it has got a lot better in the past few years.
Back atcha!
T