Why table's border attribute not deprecated in strict DTDs?

There are so many elements and attributes which are presentational in nature have been deprecated. In that sense, why table’s border attribute is not deprecated? To me, border sounds like presentational thing rather than structure. Even if there is no border around a table ( or cell ), still a table is structured. To make it worst, you can specify border size within html.

Pls give me your thoughts.

Sorry, I meant “… when HTML 4.0 was written”. HTML 4.01 did not deprecate further attributes in response to CSS 2.0.

deprecated and obsolete mean the same thing - that it is no longer required and shouldn’t be used.

The difference between HTML 4 and HTML 5 is that HTML 4 made lots of changes like that and most sites still haven’t finished removing all the outdated tags and attributes - time to do so was provided by marking them all as deprecated and providing a transitional doctype to use while in the process of getting rid of them. HTML 5 proposes to only get rid of a very small number of things and so you should be able to easily fix all of those in a day or two before converting to HTML 5 and so no fifteen plus transition period during which the obsolete tags are merely marked as deprecated will be required.

my point was that when html 4.01 became recommendation, css 2 was itself already a recommendation, as a response to

the thread also means all strict: html and xhtml. so your “Yes, but […]” is only a “Yes, and […]” :slight_smile:

and i believe html5 uses basically the same model. it suppose to.

Yes, but HTML 4 first became a recommendation in 1997. HTML 4.01 and XHTML 1.0 use basically the same content model as HTML 4.

Because when HTML 4.01 was written, CSS was only at level 1, which did not cover styling for tables. There was no replacement for border=“” yet, so it couldn’t be deprecated at that time.

In HTML5 it’s labeled as obsolete.

If I gave you the following; a piece of paper and pencil; and a ruler, and then asked you to create a table would it not involve drawn lines and hence borders?

The BORDER is loosely a physical boundary now if you wanted to make it coloured red or something then that is a style. Also it’s to do with “backwards compatibly” and HTML 3.2… So that it gives a ‘visual hint’ to a browser hence the typical attribute value being: “1”.

So it’s not really a true “purist concept” but that’s basically the main reason why it was kept.

Obviously regarding the styling of the border you use CSS nowadays as you have superior control of the table frame, etc.

Yes, but it should be done with CSS, not with a presentational attribute such as “border”. That was the point of his question which I think you missed.

Good question, but I don’t think the “border” attributes have been deprecated for other elements either. Of course a table is still perfectly appropriate for marking up tabular content. But you should do any borders in your CSS and would be wise not use the “border” attribute even if it hasn’t been deprecated.

Actually, since you haven’t quoted any sources it might be deprecated for all I know. Assuming you are right it might be a good idea to deprecate it. But you are asking the question of the wrong people, I think. Read through the W3C documentation and you might be able to suss out their reasons.

CSS level 2 became recommendation in 1998. HTML 4.01 in december 1999 and XHTML 1.0 in 2000.

which one: w3c or whatwg ? :slight_smile:
obsolete it’s a long way from deprecated. if html 4 couldn’t deprecated it (?), how come html5 is only labeling it as obsolete?

yeah, they both could say: “that it is no longer required and shouldn’t be used”. but still, they don’t mean the same thing :slight_smile:

the html 4 != html5 is in that that html5 chose the path of the least resistance. it’s trying to be a Tower of Babel of all sorts: html or xhtml, old or new, strict or transitional.

instead of correcting stuff, it tries to level all out to a ground zero. but this ground zero it’s not a fresh start, but a sum of all good and evil.

we’ll see if it going to be beneficial on the long term. on the short term sounds like a party where everyone’s invited: html programmer, xhtml evangelist, newbie, impious, hardcore or nonconformist user of the web related technologies.

i’m sorry, i don’t see your point :confused:

i didn’t stop to count those situations, specs are saying these may occur.

it’s not that it doesn’t recognize CSS, but that it’s not allowed to using it or you’re not coding any CSS style for the table.

what default borders? you mean a drawing of a border (border=1 html declaration) or an imaginary border (when border attribute declaration it’s missing, the default case)? i thought we were talking about the former.

It would make sense to deprecate the border attribute for tables but only if all browsers defaulted to showing a border around all table cells unless overridden in the CSS. Since browsers don’t all defaultt it makes sense to keep the attribute so that you can force it to display the borders when CSS is disabled in the browsers that don’t do it automatically.

yes, tables should show a border by default. think of a real document table, with real data, not just tabular like in the old dos days. you surely need a clear separation of rows and cols for data.

UAs not showing the border was/is because of the cow path: tables were a solution for layout. do you need border by default when are you using tables for layout?

also, many html documentation are basing their structure on tables, for example for header and footer navigation between previous and next page, and home page. if the border was drawn by default these documentations would look very bad.

those were the things UAa took in consideration when not showing a border by default and why specs are keeping this html attribute in place for controlling border drawing, just in case for when CSS would not be a possibility.

Exactly - and if you look at older browsers you’ll find more of them assumed tables were going to be used correctly and defaulted to showing a border.

Because it is the easiest way for people to see where an element spans rows or columns.

The HTML should be usable without the CSS and a table implies that there are separate elements which may span rows or columns and where borders are therefore required in order to be able to tell where such spanning occurs. If there wasn’t a boundary between the cells in a table then they wouldn’t be separate cells and defaulting to show that boundary using a border is essential to allow people to see where the table cells are. If it doesn’t need borders (or some other means of showing where the boundaries are) then it probably isn’t a table in the first place and so shouldn’t be marked up as one. To be able to distinguish boundaries without using borders requires CSS and so borders should be mandatory on tables when CSS isn’t available.

It is similar to the situation with a textarea requiring rows and cols to be specified and then overridden in the CSS - these things are needed as a part of the basic construct even when there is no attempt being made to give them a particulaer appearance.

Human may need it but not the user agents. Using <table> tag alone generates a table without borders in most of the UAs.

I didn’t mean border attribute for other elements. I meant other presentational elements / attributes have been deprecated in favor of CSS… so, why not for table’s border attribute.

Why tables should show a border by default… you implicitly mean to say that borders are part of the table structure? If tables show the border by default, then border attribute would be left to define the size of the border, hence it can be done from CSS. Most UAs not showing the border may be a good thing as it makes easy to hand over the job to CSS.

i believe is for providing a fallback.

tables are used to

arrange data – text, preformatted text, images, links, forms, form fields, other tables, etc. – into rows and columns of cells.


To help distinguish the cells of a table, we can set the border attribute of the TABLE element.

when no css style allowed or used, there may be situations when data in these rows and cols may not be visually distinct. a border increases visual readability and must be provided when desired, without limitations.

How many situations are there where you have a visual user-agent that doesn’t recognise CSS, does honour the border attribute, and doesn’t give a table borders by default?