- From: Advocate <wotw@inebraska.com>
- Date: Sun, 15 Aug 1999 18:13:09 -0500
- To: html-tidy@w3.org
> Correction to last patch. Where the variable "row" is mentioned, > replace with "element". Side effect of where the patch was originially > applied before it was moved. These would be in the ReportWarning and > InsertNode arguments. I see that a test case is preferred, even if a patch is supplied. Very well. When given the input: <HTML> <HEAD> <TITLE>Bad Elimination of Table Row</TITLE> </HEAD> <BODY> <TABLE BORDER=1 SUMMARY="Demonstration of HTML Tidy's erroneous elimination of empty rows."> <TR> <TD ROWSPAN=2>1</TD> <TD ROWSPAN=2>2</TD> </TR> <TR></TR> <TR> <TD>5</TD> <TD>6</TD> </TR> </TABLE> </BODY> </HTML> MacTidy outputs these errors (only because it is the platform edition most available to me at the moment): MacTidy (vers 26th July 1999) Parsing "EmptyTR.html" line 11 column 5 - Warning: trimming empty <tr> "EmptyTR.html" appears to be HTML 4.0 1 warnings/errors were found! and this output: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html> <head> <title>Bad Elimination of Table Row</title> </head> <body> <table border="1" summary="Demonstration of HTML Tidy's erroneous \ elimination of empty rows."> <tr> <td rowspan="3">1</td> <td rowspan="2">2</td> </tr> <tr> <td>5</td> </tr> </table> </body> </html> which clearly is not the intended result. The result in Netscape for example is quite different between the cases. Clearly the user's intent is to let the cells "5" and "6" be below cells "1" and "2", yet by eliminating the <TR></TR>, HTML Tidy puts them on the same row. Since the output should be compliant, I recommend implying an empty cell in the empty row rather than eliminating the row, thus giving as output: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html> <head> <title>Bad Elimination of Table Row</title> </head> <body> <table border="1" summary="Demonstration of HTML Tidy's erroneous \ elimination of empty rows."> <tr> <td rowspan="3">1</td> <td rowspan="2">2</td> </tr> <tr> <td></td> </tr> <tr> <td>5</td> <td>6</td> </tr> </table> </body> </html> Ideally, HTML Tidy should indeed eliminate the empty row, but would also have to go back to previous rows and reduce any previous row's cell's rowspanning into and through the eliminated row, but the implication of a single cell in the row is better than elimination without adjustment. Rewriting attribute values and, in some cases, eliminating attributes and their values would be required. Also either a running count of rows parsed thus far as well as how wide the table is in cells, otherwise every preceding row would have to be traversed in reverse to be sure all cells spanning the empty row have their rowspanning reduced/removed. (Hmm, I seem to have found a bug in MacTidy 1.0b2, specifically that trailing slash in the summary. That can't be right, can it? No, it isn't being inserted by my mailer, I've double-checked that already. Additionally, when output is set to an existing file, it overwrites it instead of removing the old file before writing the new one; thus, if the old file was bigger, you'll have residual text from it at the end of the new file.) In the previous description, apparently I was incomplete in describing Netscape's error. Netscape will imply at least one empty TD in an empty TR, and will imply one empty TD for every TD whose spanning ends on that row (must be at least one for every set of contiguous empty rows, unless there are an insufficient number of rows in the table to account for the rowspanning). If the empty rows are not completely spanned, then the implied cell(s) fill the places left by the unprovided cells. It would be overkill to simulate all of that; better to imply the minimum required to make the page compliant, i.e. one empty TD cell only. See: <http://lists.w3.org/Archives/Public/html-tidy/1999JulSep/0112.html> for patch and: <http://lists.w3.org/Archives/Public/html-tidy/1999JulSep/0114.html> for correction to patch, or the quoted text above. -- ,=<#)-=# <http://www.war-of-the-worlds.org/> ,_--//--_, _-~_-(####)-_~-_ "Did you see that Parkins boy's body in the tunnels?" "Just (#>_--'~--~`--_<#) the photos. Worst thing I've ever seen; kid had no face."
Received on Sunday, 15 August 1999 19:19:14 UTC