[Bug 12413] New: Handling of <table border=0> is incompatible with the Web

http://www.w3.org/Bugs/Public/show_bug.cgi?id=12413

           Summary: Handling of <table border=0> is incompatible with the
                    Web
           Product: HTML WG
           Version: unspecified
          Platform: All
               URL: http://dev.w3.org/html5/spec/rendering.html#decohints
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P3
         Component: HTML5 spec (editor: Ian Hickson)
        AssignedTo: ian@hixie.ch
        ReportedBy: xn--mlform-iua@xn--mlform-iua.no
         QAContact: public-html-bugzilla@w3.org
                CC: mike@w3.org, public-html-wg-issue-tracking@w3.org,
                    public-html@w3.org


(Relates to ISSUE-155/Bug 7468 - not sure if it shoudl be described as "depends
on".)

ISSUE-155 does not try to change HTML5's Rendering section w.r.t. <table>.
However, while working with ISSUE-155, it become clear that HTML5 is out of
tune with the Web even rendering wise: As <table border="0"> is frequently used
on existing layout tables,  HTML5's Rendering section is simply  incompatible
with the Web when it suggest to render any table with the @border attribute
present (even when its value is "0") with a 1px border.

This is HTML5's style rule for tables with the border attribute:
http://dev.w3.org/html5/spec/rendering.html#decohints

table[border] > tr > td, table[border] > tr > th,
table[border] > thead > tr > td, table[border] > thead > tr > th,
table[border] > tbody > tr > td, table[border] > tbody > tr > th,
table[border] > tfoot > tr > td, table[border] > tfoot > tr > th {
  border-width: 1px;
}

Effectively, this means that  <table border="0"> is to be treated as <table
border="1">.

Use agents: no user agents treats border="0" like that. (Tested in: Webkit
[current last version], Opera 11, Firefox 4)

History - HTML4: 
  * HTML4 says that table@border with an empty value (border="") or a
non-digital value (border="border") for compatibility reasons should be treated
like border="1". And except for a few bugs, user agents do follow HTML4: empty
@border and @border="border" *is* equal to border="1". Thus HTML5 is not
incompatible with whether user agents nor *this* part of of HTML4.
  * However, HTML4 does also say that border="0" is equal to not using the
@border attribute at all.  And not only HTML4, but also the "real Web"  (user
agents and Web authors) do treat border="0" as equal to no @border attribute.
THus, HTML5 deviates from "the Web" when it suggest to see border=0 as
border=1.

Examples of layout tables in the wild which contains border="0",  easily found
via Google: 

 * http://www.ist-inc.com 
 * Any layout-table based Web page produced by Freeway  
    (http://www.softpress.com), including the 2011 release
    (Freeway has a table layout mode in addition to "normal" mode.)
 * http://wiki.services.openoffice.org/wiki/Documentation/
 *
http://wiki.services.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Writer_Guide/Using_tables_for_page_layout
 * http://www.linuxquestions.org/
 * http://www.shire.net/learnwebdesign/nocss/tables1.htm
 *
http://www.at.ufl.edu/_archive/accessibility_cd/AccWeb/tables/layout_tables.html
 * http://www.thewebseye.com/using-tables.htm

Tutorials of layout tables are probably few, since it is a frown-upon thing,
but those pages who explain it, often suggest user of border="0":

 * http://www.w3schools.com/html/html_layout.asp
 * http://html.cita.illinois.edu/style/layout/layout-example.php
 * http://www.quackit.com/html/tutorial/html_layouts.cfm
 * http://www.shire.net/learnwebdesign/nocss/tables1.htm
 * http://www.thewebseye.com/using-tables.htm

Proposed fix of HTML5:  Simply add one more style rule for border="0", after
the current style rule:

table[border=0] > tr > td, table[border=0] > tr > th,
table[border=0] > thead > tr > td, table[border=0] > thead > tr > th,
table[border=0] > tbody > tr > td, table[border=0] > tbody > tr > th,
table[border=0] > tfoot > tr > td, table[border=0] > tfoot > tr > th {
  border-width: 0;
}

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

Received on Monday, 4 April 2011 10:50:33 UTC