UA stylesheet should require overflow: visible, not hidden

The Styling spec currently requires a UA stylesheet of:

	svg, symbol, image, marker, pattern, foreignObject { overflow: hidden }

http://www.w3.org/TR/SVG2/styling.html

which seems to directly contradict the initial value of "visible" for root level elements recommended ( I believe, correctly, in principle) in clipping and masking:

http://www.w3.org/TR/SVG2/masking.html#OverflowAndClipProperties

Can the UA stylesheet recommendation please be amended to bring these into parity?

Of course it's theoretically possible to have a clipping path that doesn't actually clip anything, because of a "visible" value, but this just muddies the waters. It creates room for argument and interpretation where there shouldn't be any. There are multiple sentences across the spec that explain clipping in terms of overflow, and vice versa. This is understandable, because they're tightly related, but also problematic because clipping and overflow are in fact different things. Saying that a clipping rectangle is drawn *strongly implies* that overflow is clipped. If it isn't being made invisible, that should be made extremely clear.

In short, there simply shouldn't be a initial clipping path on "visible" root level svg content.

(BTW is there really a meaningful semantic distinction between "initial" and "user agent stylesheet" values? In what context are those two things actually different? I would appreciate it if someone could enlighten me.)

A revised UA stylesheet that takes account of descendant elements could start from something as simple as this:

	svg {overflow: visible}

	svg svg,
	svg symbol,
	svg image,
	svg marker,
	svg pattern,
	svg foreignObject {
		overflow: hidden
	}

(adding in @namespace)

Received on Tuesday, 30 July 2013 01:21:04 UTC