W3C home > Mailing lists > Public > public-svg-issues@w3.org > November 2018

[svgwg] Issue: how should display:contents affect SVG conditional processing attributes? marked as Styling chapter

From: Dirk Schulze via GitHub <sysbot+gh@w3.org>
Date: Thu, 08 Nov 2018 06:36:03 +0000
To: public-svg-issues@w3.org
Message-ID: <issues.labeled-378573287-None-sysbot+gh@w3.org>
dirkschulze has just labeled an issue for https://github.com/w3c/svgwg as "Styling chapter":

== how should display:contents affect SVG conditional processing attributes? ==
https://drafts.csswg.org/css-display/#unbox-svg

The CSS Display spec says that attributes that affect layout or visual formatting should be ignored on SVG elements that are `display: contents`.  Are SVG conditional processing attributes in this category?  For example:

```svg
  <g systemLanguage="zz" style="display: contents">
    <rect width="100" height="100"/>
  </g>
```

Should the rectangle be rendered since `systemLanguage` is an attribute that affects rendering?

```svg
  <switch>
    <g systemLanguage="zz" style="display: contents">
      <rect width="100" height="100"/>
    </g>
  </switch>
```

Should the rectangle be rendered since `systemLanguage` is an attribute that affects rendering, even though it is the `<switch>` that is making the decision about which child to render?

```svg
  <switch>
    <g style="display: contents">
      <rect systemLanguage="zz" width="100" height="100" />
    </g>
    <circle cx="200" cy="200" r="100"/>
  </switch>
```

Should the `systemLanguage` affect the `<switch>`'s choice of which child to render?  (Either both the `<rect>` and `<circle>` should render, or neither should, IMO.)

---

I think my preference is to make conditional processing attributes not influenced by `display: contents`.  For the `<switch>` case, it would otherwise be inconsistent with how `display: none` children are treated when selecting which child to render (i.e., the `<switch>` can select a `display: none` child if its conditional processing attributes evaluate to true).  It also means we don't need to re-evaluate which child is being shown after we restyle elements (since a child could become `display: contents` dynamically).

/cc @emilio @lilles

See https://github.com/w3c/svgwg/issues/579
Received on Thursday, 8 November 2018 06:36:05 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 8 November 2018 06:36:05 UTC