This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 17778 - Undefined term "block equivalent" used in painting order rules in Appendix E
Summary: Undefined term "block equivalent" used in painting order rules in Appendix E
Status: NEW
Alias: None
Product: CSS
Classification: Unclassified
Component: CSS Level 2 (show other bugs)
Version: unspecified
Hardware: All Windows 3.1
: P2 normal
Target Milestone: ---
Assignee: Bert Bos
QA Contact: public-css-bugzilla
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-14 11:16 UTC by Anton P
Modified: 2012-12-04 00:54 UTC (History)
0 users

See Also:


Attachments

Description Anton P 2012-07-14 11:16:11 UTC
Reported by Simon Sapin

Steps 2 and 4 in the painting order rules in Appendix E use the following condition:

  # If the element is a block, list-item, or other block equivalent:

The term "block equivalent" is undefined in CSS21.  We deduce that it must include inline-level block container boxes such as inline-blocks and inline-table wrapper boxes, else such boxes do not have their background and borders painted in the algorithm.

This term should be clarified.


Conversation begins:
Bug description:
http://lists.w3.org/Archives/Public/www-style/2012May/0443.html
Comment 1 Anton P 2012-07-14 12:55:23 UTC
The term must also include block-level replaced elements, for the same reason.

http://lists.w3.org/Archives/Public/www-style/2012Jul/0336.html
Comment 2 Anton P 2012-07-14 13:34:55 UTC
Proposal A:

Replace:
  # Step 2: If the element is a block, list-item, or other block
  #         equivalent:
with
  | Step 2: If the element is a block container or block-level replaced
  |         element:

Similarly, replace:
  # Step 4: For all its in-flow, non-positioned, block-level
  #         descendants in tree order: If the element is a block,
  #         list-item, or other block equivalent:
with:
  | Step 4: For all its in-flow, non-positioned, block-level
  |         descendants in tree order:
  |         If the element is a block container or replaced element:

(Note the line break, which I think adds needed clarity).

The suggested replacement in the former case has a dependency on Bug 17780 since it needs to exclude table cells.

The suggested replacement in the latter case has a dependency on Bug 17779 since since it needs to exclude replaced table boxes.

Proposal: http://lists.w3.org/Archives/Public/www-style/2012May/0498.html
Comment 3 Anton P 2012-07-14 22:48:10 UTC
Since a table element is a block container element (in that its principal table wrapper box is a block container box), Proposal A fails because table elements are caught by the first part of Steps 2 and 4 instead of falling through to the second part.

Proposal B:

In Step 2, replace:

  # If the element is a block, list-item, or other block equivalent:
  #   [...]
  #
  # Otherwise, if the element is a block level table:
  #   [...]

with:

  | If the element is a block level table:
  |   [...]
  |
  | Otherwise, if the element is a block container or block-level
  | replaced element:
  |   [...]

In Step 4, replace:

  # For all its in-flow, non-positioned, block-level descendants in
  # tree order: If the element is a block, list-item, or other block
  # equivalent:
  #   [...]
  #
  # Otherwise, the element is a table:
  #   [...]

with:

  | For all its in-flow, non-positioned, block-level descendants in
  | tree order:
  | If the element is a table:
  |   [...]
  |
  | Otherwise, the element is a block container or replaced element:
  |   [...]

Proposal derived from discussion in http://lists.w3.org/Archives/Public/www-style/2012Jul/0337.html
Comment 4 Anton P 2012-07-14 22:49:33 UTC
Proposal B has the same dependencies as Proposal A.
Comment 5 Anton P 2012-07-14 23:03:41 UTC
Bug 17782 also affects this text.  For a proposal which combines Proposal B above with Proposal A from Bug 17782, see comment #3 in Bug 17782.