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

On 10/10/12 8:59 AM, "Alan Stearns" <stearns@adobe.com> wrote:

>I would like to solve the basic circular reference problem by deciding
>that these circular references do not create regions. So I'd change this
>sentence:
>
>---
>Likewise, if the block container is part
>of the flow with name <ident>, then
>the block container does not format
>any content visually.
>---
>
>to this (and move it up in the definition to precede the text that
>describes how regions are created)
>
>---
>If the block container is part
>of the flow with name <ident>,
>then the block container does
>not become a CSS Region.
>---

This wording solves the case where a named flow contains a region for
itself, but does not generally solve more complex circular dependencies
that can arise. Following the advice on this morning's call, I am stealing
some text from css4-images [1] and will replace the current sentence above
with a section that reads:

---
Named flows containing elements with the flow-from property set can
produce nonsensical circular relationships, such as a named flow
containing regions in its own region chain. These relationships can be
easily and reliably detected and resolved, however, by keeping track of a
dependency graph and using common cycle-detection algorithms.

The dependency graph consists of edges such that:

- Every named flow depends on its elements with the flow-from property set
- Every element in a named flow with the flow-from property set to an
<ident> depends on the named flow with the <ident> name.

If the graph contains a cycle, any elements with the flow-from property
set to an <ident> participating in the cycle do not become CSS Regions.
---


Thanks,

Alan

[1] http://dev.w3.org/csswg/css4-images/#element-cycles

Received on Wednesday, 10 October 2012 21:37:14 UTC