svg2: ACTION-3606: various tweaks for 'overflow'

details:   https://svgwg.org/hg/svg2/rev/cf6f0f844e40
branches:  
changeset: 652:cf6f0f844e40
user:      Erik Dahlstr?m <ed@opera.com>
date:      Thu Apr 10 14:08:21 2014 +0200
description:
ACTION-3606: various tweaks for 'overflow'

RESOLUTION: outer-most svg elements of inline fragments will be overflow: hidden by default.
RESOLUTION: svg:svg elements should allow overflow: scroll to create scrollbars.
RESOLUTION: overflow property on root svg elements still controls if there should be scrollbars but there should be a clipping rectangle that is the size of the svg element's viewport

diffstat:

 master/changes.html |   1 +
 master/masking.html |  33 +++++++++++++++++++++------------
 2 files changed, 22 insertions(+), 12 deletions(-)

diffs (110 lines):

diff --git a/master/changes.html b/master/changes.html
--- a/master/changes.html
+++ b/master/changes.html
@@ -252,16 +252,17 @@ have been made.</p>
 <ul>
   <li>SVG now references CSS Masking [<a href="refs.html#ref-CSS-MASKING">CSS-MASKING</a>] specification.
     <ul>
       <li>Removed definition of clipping/masking properties and elements.</li>
       <li>Keep short introduction to clipping/masking and add reference to CSS Masking</li>
     </ul>
   </li>
   <li>Added reference to Compositing and Blending spec. Simple alpha compositing it mandatory.</li>
+  <li>The <a>'overflow'</a> property should be respected on the outermost svg elements inline in html.</li>
 </ul>
 <h3 id="filters">Filter Effects chapter</h3>
 
 <ul>
   <li>Removed the body of this chapter and replaced it with a link to the
   Filter Effect specification.</li>
 </ul>
 
diff --git a/master/masking.html b/master/masking.html
--- a/master/masking.html
+++ b/master/masking.html
@@ -126,64 +126,73 @@ with a link to <a href="http://www.w3.or
 same meaning <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/visufx.html#propdef-overflow">as defined in CSS 2.1</a>
 ([<a href="refs.html#ref-CSS21">CSS21</a>], section 11.1.1);
 however, the following additional points apply:</p>
 
 <p class="issue">We need to define how 'overflow-x' and 'overflow-y' are
 going to work in the furture. Sadly, these properties belong to CSS3-box.</p>
 
 <ul>
-  <li>The <a>'overflow'</a> property applies to
-  <a href="coords.html#ElementsThatEstablishViewports">elements that establish new viewports</a>
-  (e.g., <a>'svg'</a> elements), <a>'pattern'</a> elements and <a>'marker element'</a>
-  elements. For all other elements, the property has no effect (i.e., a clipping
-  rectangle is not created).</li>
-
   <li>For those elements to which the <a>'overflow'</a> property can apply, if
   the <a>'overflow'</a> property has the value <span class='prop-value'>hidden</span> or <span class='prop-value'>scroll</span>,
   the effect is that a new clipping path in the shape of a rectangle is created.
   The result is equivalent to defining a <a>'clipPath'</a> element whose
   content is a <a>'rect'</a> element which defines the equivalent rectangle,
   and then specifying the &lt;uri&gt; of this <a>'clipPath'</a> element on the
-  <a>'clip-path'</a> property for the given element.</li>
+  <a>'clip-path'</a> property for the given element.
+  </li>
+  
+  <li>
+  When <span class='prop-value'>scroll</span> is specified on an
+  <a>'svg'</a> element and if the user agent uses a scrolling mechanism that
+  is visible on the screen (such as a scroll bar or a panner), that mechanism should
+  be displayed for the viewport whether or not any of its content is clipped.
+  </li>
 
   <li>If the <a>'overflow'</a> property has a value other than
   <span class='prop-value'>hidden</span> or <span class='prop-value'>scroll</span>,
-  the property has no effect (i.e., a clipping rectangle is not created).</li>
+  the property has no effect (i.e., a clipping rectangle is not created).
+  </li>
 
   <li>Within SVG content, the value <span class='prop-value'>auto</span> is
-  equivalent to the value <span class='prop-value'>visible</span>.</li>
+  equivalent to the value <span class='prop-value'>visible</span>.
+  <p class="issue"><a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/visufx.html#propdef-overflow">CSS implies</a> that 'auto' should be clipped rather
+  than visible, do we want to follow that or not?</p>
+  </li>
 
   <li>When an <a>outermost svg element</a> is embedded inline within a
   parent XML grammar which uses <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/visuren.html">CSS layout</a>
   ([<a href="refs.html#ref-CSS21">CSS21</a>], chapter 9)
   or <a href="http://www.w3.org/TR/2006/REC-xsl11-20061205/">XSL formatting</a>
   [<a href="refs.html#ref-XSL">XSL</a>], if the
   <a>'overflow'</a> property has the value <span class='prop-value'>hidden</span>
   or <span class='prop-value'>scroll</span>, then the user agent will
   establish an initial clipping path equal to the bounds of the initial
   <a href="coords.html#SVGViewport">viewport</a>; otherwise, the initial
   clipping path is set according to the <a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/visufx.html#overflow">clipping rules as defined in CSS 2.1</a>
   ([<a href="refs.html#ref-CSS21">CSS21</a>], section 11.1.1).</li>
 
-  <li>When an <a>outermost svg element</a> is stand-alone or embedded
+  <li>When an <a>outermost svg element</a> is standalone or embedded
   inline within a parent XML grammar which does not use CSS layout
   or XSL formatting, the
   <a>'overflow'</a> property on the <a>outermost svg element</a> is ignored
   for the purposes of visual rendering and the initial clipping path is set to
-  the bounds of the initial <a href="coords.html#SVGViewport">viewport</a>.</li>
+  the bounds of the initial <a href="coords.html#SVGViewport">viewport</a>.
+  Note that the value <span class='prop-value'>hidden</span> still means that
+  no scrolling user interface should be provided.
+  </li>
 
   <li>The initial value for <a>'overflow'</a> as defined
   in [<a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/visufx.html#overflow">CSS21-overflow</a>]
   is 'visible', and this applies also to the <a>rootmost 'svg' element</a>; however,
   for child elements of an SVG document, SVG's <a href="styling.html#UAStyleSheet">user agent style sheet</a>
   overrides this initial value and sets the <a>'overflow'</a> property on
   <a href="coords.html#ElementsThatEstablishViewports">elements that establish new viewports</a>
   (e.g., <a>'svg'</a> elements), <a>'pattern'</a> elements and
-  <a>'marker element'</a> elements to the value 'hidden'.</li>
+  <a>'marker element'</a> elements to the value <span class="prop-value">hidden</span>.</li>
 </ul>
 
 <p>As a result of the above, the default behavior of SVG user agents is to
 establish a clipping path to the bounds of the initial
 <a href="coords.html#SVGViewport">viewport</a> and to establish a new clipping
 path for each <a href="coords.html#ElementsThatEstablishViewports">element which
 establishes a new viewport</a> and each <a>'pattern'</a> and
 <a>'marker element'</a> element.</p>

Received on Thursday, 10 April 2014 12:15:44 UTC