RE: [css-regions] Handling circular dependencies between flows

Hey,
A couple of things to consider regarding option #2. IMO, while not rendering the region at all might be more elegant/simple/efficient from an implementation point of view, I believe it's quite a bad experience for the user (web developer).

I agree that this condition error must be signalled, but rendering artifacts (such as a region with nothing in it) are preferable (if not the norm) to no rendering at all. One scenario that comes to mind is having a region for which the user specified a width and a height, maybe even a background and a border, not showing up at all because he accidentaly inserted it before the closing tag of the nodes that make up the content flow (instead of *after* that tag).

Bottom line, you wouldn't want content going away (visually) as if display: none was specified when, in fact, display: none is specified nowhere.

My 2 cents,
m.

PS: Going with #2 might also raise some unpleasantly to crack questions to integrated developer tools (e.g. Chrome WebInspector)

Mihai Balan | Quality Engineer / WebKit team |  mibalan@adobe.com | +4-031.413.3653 / x83653 | Adobe Systems Romania


-----Original Message-----
From: Andrei Bucur [mailto:abucur@adobe.com] 
Sent: Monday, October 08, 2012 5:49 PM
To: www-style@w3.org
Cc: Alan Stearns
Subject: [css-regions] Handling circular dependencies between flows

Hello,

The CSS Regions spec has a paragraph that states how this case should be handled, along the situation of a non-existent flow:
"If there is no flow with name <ident>, then the block container does not format any content visually.
Likewise, if the block container is part of the flow with name <ident>, then the block container does not format any content visually"


Firstly, I want to clarify how implementations should interpret these two statements. I see two options:
1. The region block is rendered, but without any flow content going into it? Basically, the region is skipped when laying out the content of the flow.
2. The region block is not rendered at all. The effect is similar to specifying "display: none" on the region element (no renderer is created).

Secondly, I think the circular dependency should be regarded differently from the non-existent flow situation. A circular dependency is created by an error in the document's stylesheet while referencing a flow without content through flow-from could just mean it will be added later (e.g.
through the OM) and the regions are used to "reserve" space in the page.

>From an implementor standpoint I also think the second option is better
because it simplifies the rendering and the data structures. Basically, the layout of the flow doesn't care about the regions that create circular dependencies and not creating renderers for them is optimal.

Thoughts?

Thanks,
Andrei.

Received on Tuesday, 9 October 2012 15:23:58 UTC