New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 180722 link

Starred by 18 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Zero rowspan should span all rows

Reported by canuck3...@gmail.com, Mar 6 2013

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22

Example URL:
Any table with rowspan=0

Steps to reproduce the problem:
1. Create a table with a td with rowspan=0
2. Watch Chrome ignore the rowspan=0 and render the table incorrectly.
3. 

What is the expected behavior?
Chrome should honor rowspan=0.  It is part of the HTML standard and both Firefox and Opera already honor it.  There are cases where it is tricky to calculate row counts when the count is needed for rowspan, so supporting rowspan=0 makes it much easier to code websites for Chrome.

What went wrong?
It renders as if rowspan=1 and the layout is all messed up.

See https://code.google.com/p/chromium/issues/detail?id=58223 for details of an older version of this bug, which got closed, but has never been fixed.

PLEASE FIX!  :-)

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? No 

Does this work in other browsers? Yes Firefox, Opera

Chrome version: 25.0.1364.152  Channel: n/a
OS Version: OS X 10.7.5
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 10 2013

Labels: -Area-Webkit Cr-Content

Comment 2 by tkent@chromium.org, Mar 18 2013

Cc: jchaffraix@chromium.org
Labels: Cr-Content-Rendering
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 5 2013

Labels: -Cr-Content Cr-Blink
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 6 2013

Labels: -Cr-Content-Rendering Cr-Blink-Rendering
For a testcase still showing this bug, from the webkit bug (https://bugs.webkit.org/show_bug.cgi?id=10300) there's a link to http://csswizardry.com/2011/08/two-titillating-table-tips/ where the problems can still be seen in my Chromium (Version 30.0.1599.114 Ubuntu 12.04 (30.0.1599.114-0ubuntu0.12.04.3)). Opera 12.16 does not deal correctly with the colspans but does with the rowspans. Firefox 25.01 deals with both correctly.

Comment 6 by bfr...@gmail.com, Nov 13 2014

Rendering of `rowspan-0.html` should be identical to the rendering of `rowspan-0-reftest.html` per the spec (https://html.spec.whatwg.org/multipage/tables.html#attr-tdth-rowspan):

> For this attribute, the value zero means that the cell is to span all the remaining rows in the row group.

(See https://bugzilla.mozilla.org/show_bug.cgi?id=1097999#c2.)
rowspan-0-reftest.html
90 bytes View Download
rowspan-0.html
90 bytes View Download

Comment 7 by laforge@google.com, Jan 9 2015

Labels: -Cr-Blink-Rendering Cr-Blink-Layout
Migrate from Cr-Blink-Rendering to Cr-Blink-Layout
How is this over 2 years old and called unconfirmed? Seeing it right now in Chrome 41 Win 7 x64.
I'm also seeing this here on OS X 10.10.4, Chrome 44. Both rowspan="0" and colspan="0" seem to not work, and they just default to spanning 1 row/column.

Comment 10 by akej...@gmail.com, Aug 1 2015

colspan="0" is not valid HTML:
https://html.spec.whatwg.org/multipage/tables.html#attr-tdth-colspan

But yes, the rowspan="0" bug is still open.
Ah, sorry. I was going off the rowspan and colspan specs here: http://www.w3.org/TR/html401/struct/tables.html#adef-rowspan

(I'm not really a HTML-specification person, so that's my fault)

Comment 12 by akej...@gmail.com, Aug 2 2015

Ah, yeah, that's just HTML 4 vs HTML 5 specs--have you tried with a DOCTYPE declaration that sets your page explicitly as HTML4? (See http://www.w3.org/QA/2002/04/valid-dtd-list.html) I'm not sure if that would help get you the colspan="0" behavior you're looking for, but it's worth a try.

In any case, I'm pretty sure the rowspan="0" behavior is incorrect for either doctype.
Labels: -Cr-Blink -Cr-Blink-Layout Cr-Blink-Layout-Table
Labels: -OS-Mac OS-All
Status: Available
We currently allow zero rowspan / colspan but we clamp them to 1 in HTMLTableCell.
 Issue 488617  has been merged into this issue.
Summary: Zero rowspan should span all rows, zero colspan all columns (was: Chrome disregards rowspan=0)
Consolidating rowspan and colspan bugs as those are deeply related and we should behave similarly.
Fwiw, the implementation of colspan=0 in Firefox have been removed:
https://bugzilla.mozilla.org/show_bug.cgi?id=1241840

Cc: -jchaffraix@chromium.org
Labels: -Pri-2 Pri-3
Summary: Zero rowspan should span all rows (was: Zero rowspan should span all rows, zero colspan all columns)
Thanks for the update.
 Issue 671896  has been merged into this issue.
We might delete rowspan=0 from the specification.
https://github.com/whatwg/html/issues/1198

rowspan=0 survived

From https://html.spec.whatwg.org/multipage/tables.html#attributes-common-to-td-and-th-elements

The td and th elements may also have a rowspan content attribute specified, whose value must be a valid non-negative integer less than or equal to 65534. For this attribute, the value zero means that the cell is to span all the remaining rows in the row group.
Owner: robho...@gmail.com
Status: Assigned (was: Available)
Project Member

Comment 23 by bugdroid1@chromium.org, Dec 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8

commit 93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8
Author: Robert Hogan <robhogan@gmail.com>
Date: Tue Dec 12 21:18:41 2017

Implement rowspan=0

Bug:  180722 
Change-Id: I187155b0076d8f4e7d9e7c9e7b80d9686a12ad2c
Reviewed-on: https://chromium-review.googlesource.com/808929
Commit-Queue: Robert Hogan <robhogan@gmail.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523553}
[add] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/external/wpt/css/css-tables/zero-rowspan-001-ref.html
[add] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/external/wpt/css/css-tables/zero-rowspan-001.html
[add] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/external/wpt/css/css-tables/zero-rowspan-002-ref.html
[add] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/external/wpt/css/css-tables/zero-rowspan-002.html
[delete] https://crrev.com/f4aa69223bf74991cf848c7d00554f2e60b736a1/third_party/WebKit/LayoutTests/external/wpt/html/dom/reflection-tabular-expected.txt
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/html/tabular_data/td_rowspan-expected.txt
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/html/tabular_data/td_rowspan.html
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug30332-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug30332-1-expected.txt
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug30332-2-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug30332-2-expected.txt
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug9879-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla/bugs/bug9879-1-expected.txt
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/bugs/bug9879-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/linux/tables/mozilla_expected_failures/bugs/bug9879-1-expected.txt
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/mac/tables/mozilla/bugs/bug30332-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/mac/tables/mozilla/bugs/bug30332-2-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/mac/tables/mozilla/bugs/bug9879-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug9879-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/win/tables/mozilla/bugs/bug30332-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/win/tables/mozilla/bugs/bug30332-2-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/win/tables/mozilla/bugs/bug9879-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/LayoutTests/platform/win/tables/mozilla_expected_failures/bugs/bug9879-1-expected.png
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/Source/core/html/TableConstants.h
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
[modify] https://crrev.com/93609285fd2b0f7fef0d27ad1cf2eca4b9956fc8/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp

I think the only remaining work on this bug is the rename mstensho asked about in https://chromium-review.googlesource.com/c/chromium/src/+/808929/2/third_party/WebKit/Source/core/layout/LayoutTableCell.h#103 ?
Project Member

Comment 25 by bugdroid1@chromium.org, Dec 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d

commit ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d
Author: Robert Hogan <robhogan@gmail.com>
Date: Tue Dec 26 17:19:14 2017

Rename RowSpan() to ResolvedRowSpan()

Bug:  180722 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia8aa783bbdf95348db3ca81ab43d26f9e7f4c896
Reviewed-on: https://chromium-review.googlesource.com/837560
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Robert Hogan <robhogan@gmail.com>
Cr-Commit-Position: refs/heads/master@{#526196}
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/layout/TracedLayoutObject.cpp
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/core/paint/CollapsedBorderPainter.cpp
[modify] https://crrev.com/ab8d0ea46daf7673a53524a3708f0ffd1ea9ee2d/third_party/WebKit/Source/modules/accessibility/AXTableCell.cpp

Status: Fixed (was: Assigned)
Actually, Firefox is considering removing this -- would y'all be open to removing this feature before it hits Chrome Stable if we decide on removing it?

It's currently specced, but only works in Firefox in non-quirks mode (and Chrome Canary).
Posted an intent to unship on mozilla-dev-platform : https://groups.google.com/forum/#!topic/mozilla.dev.platform/d0DartbUFQY
Non-interested observer comment: the change landed in M65, which is going to stable next week, so there's virtually no chance of this not being shipped. M66 branches at the end of this week as well.

Comment 30 by phistuck@gmail.com, Feb 28 2018

#29 - no chance? If disabling this specific bit is a one liner (is it?), why would it not be accepted? Shipping a soon-to-be-removed feature is very bad...
I don't claim to speak for anyone on the Layout Team, but according to https://chromium.googlesource.com/chromium/src/+/lkcr/docs/process/merge_request.md, "merges should only be requested for critical, release blocking issues where the fix is low complexity" for merges during the last two weeks of beta which I don't think this would qualify for. Although I can't be certain of that; the change is ~15 lines + layout tests.
Cc: dgro...@chromium.org manishsm...@gmail.com
Hi Manish, sorry I didn't see this earlier. What's the state of unshipping in Firefox? If it looks like you might proceed, can you cc me on the whatwg issue?
It's iffy, it probably won't happen. I will cc if it ends up getting removed though.

Sign in to add a comment