A while back I wrote an article about forms and CSS and covered displaying forms in tables, for this impropriety I was immediately lynched by the purists. As an application developer I still maintain that sometimes a table is the most appropriate way to layout a complex form. In fact, very often, a complex form is in itself a representation of tabular data – and in an application is often being inserted straight into a row in a database – as tabular data. So I was interested to see this article (hat tip: Jon Hicks) which puts across this point of view well.
The important thing to remember is that if you do use a table to layout a form, you don’t put your accessibility and semantics brain under the pillow and just “stick it in a table”. Using label properly, setting the tabindex of the fields and keeping the table to a minimum, using CSS to style how it looks in the browser, means that you can maintain accessibility despite the use of a table. As detailed in the above article, there is a good argument that a table is often the most semantic way to describe this data input.