List Info

Thread: Re: SVG and MathML in text/html




Re: SVG and MathML in text/html
country flaguser name
United States
2008-03-16 10:18:21
Hi, Maciej-

I'm taking this discussion to www-archive, since it affects
a lot of 
groups and a lot of interests.  I'm BCCing related groups
(HTML, SVG, 
MathML, CDF, XHTML2), but discussions should take place on
www-archive. 
  (This is part of a couple of long threads that started on
blogs and 
IRC, and were continued on public-html; I'd suggest that
those 
interested in this review those threads. [1][2])

To broaden the dialog to other audiences, so I'm going to
try to 
summarize the issue along the way.  Please correct me if I
fall astray, 
or expand on points.  I'm going to talk about SVG, but many
of the same 
issues may apply to MathML.

Maciej Stachowiak wrote (on 3/16/08 1:12 AM):
> 
> HTML has the feature of two serializations: a classic
serialization that 
> is error-tolerant, and an XML-based serialization that
has draconian 
> error handling. These have different costs and
benefits, ultimately it 
> is a benefit to HTML authors that they have a choice. I
think SVG 
> deserves to have this feature as well, there's no
reason it should fall 
> short of HTML in this regard. Supporting SVG inline in
text/html seems 
> like a good opportunity to add this feature to SVG.

There are 2 scenarios here: SVG inline (Compound Documents
by 
Inclusion), and external SVG (Compound Documents by
Reference).  Your 
proposal is that, in order to facilitate inline inclusion of
SVG into 
text/html, changes should be made to other uses of SVG,
including those 
intended for SVG-only UAs.  I'll ask you to detail what
changes would be 
required, but the topic of hottest debate so far is the
ability to use 
unquoted attribute values in SVG, when there are no spaces
or other 
ambiguous characters.  This would look something like this:

   <circle id=circle_1 class="category1 medium"
cx=75 cy=25 r=20 
fill=orange stroke=red stroke-dasharray="3 5"
/>

You characterize this as non-draconian error handling; for
the purpose 
of authoring conformance, would this fragment indeed be in
error (and 
therefor in need of error recovery behavior), or would this
be legal 
syntax?


A counter-proposal is that SVG retain its existing
serialization 
(meaning, among other things, that it would require quoted
attributes), 
for inline (in both XHTML and text/html) and for external
SVG documents 
(standalone or externally referenced).  I'm going to argue
for this 
proposal, as a Devil's Advocate, but I'm actually open to
any proposals 
that can be demonstrated as workable.


Given past author practice of copy-paste authoring, SVG that
is written 
inline in HTML is unlikely to stay there exclusively;  it
stands a very 
good chance of being extracted and reused, be it referenced
as an 
external image, or as standalone content in a mobile
SVG-only viewer, or 
pasted into a graphical SVG authoring tool.  Content that
breaks from 
one UA to another is too brittle, and would fracture the SVG
market. 
So, I agree with you here, that we shouldn't burden users,
authors, and 
vendors with multiple non-interoperable serializations.


As you mention, there are indeed known costs to any change
in the 
written form of SVG (the serialization), notably
incompatibility with 
all existing SVG viewers, authoring tools, automatic
generators, and XML 
processors up and down the entire toolchain in general. 
There is an 
enormous infrastructure investment involved in an enterprise
like this, 
which affects not just SVG and MathML, but XML in general,
and which 
would require substantial costs in money, developer hours,
and time to 
market.

On mobile devices in specific, this would require
implementors to write 
a new parser (which has yet to be shown as practical on the
Web in 
general, or with SVG in specific); this may not be a burden
for Apple 
(or certain other desktop browser vendors), which has
already invested 
resources in an HTML UA, but it would certainly be for
multiple other 
mobile vendors (those not on the iPhone), who have a very
large (in the 
upper hundreds of millions) existing SVG UA deployment, and
this could 
have a substantial cost for them.

For desktop browsers, your proposed content would not work
in the most 
widely deployed SVG UA plugin for Internet Explorer (the
Adobe viewer, 
which though no longer maintained, is still the best and
fastest overall 
SVG UA for browsers); again, I can see this being a benefit
for Apple, 
but not necessarily for SVG.  If Microsoft were to pledge
and deliver 
resources for adding high-quality native SVG support (at
least as good 
as Firefox, Opera, and WebKit), this would certainly
alleviate my 
concerns about desktop browsers.

With the XML serialization of SVG (the way it is now),
authors are 
already able to do inline SVG in the XML serialization of
HTML (XHTML); 
this works even in Internet Explorer using the Adobe viewer,
by use of 
"XML data islands"... and in fact works equally
well in text/html and 
XHTML (though it has to be served as text/html, a known
problem in IE in 
general).


Since it's not clear what changes would have to be made to
SVG, your 
proposal may or may not affect existing SVG content that is
intended for 
insertion into text/html; that is, presumably content can be
made that 
works in all SVG UAs, following the existing rules for SVG. 
So, this is 
a neutral point... neither proposal would break existing
content from 
existing SVG authoring tools and generators.  Still, it
would be best to 
get feedback from known tool vendors that produce SVG, such
as Inkscape, 
Illustrator, CorelDraw, GraphViz, Visio, and others (I'm
probably 
forgetting someone major, sorry).


As far as I know, there has been no implementation of the
HTML5 parser 
by a major browser vendor (though there have been test
implementations 
by others).  The algorithm is relatively untested on the
vast body of 
existing HTML content on the Web, and completely untested
for SVG 
content.  I'm concerned that this is taking an unnecessary
risk with 
SVG's future, in spite of its already growing appeal and
popularity 
across a variety of platforms, since it is competing with
similar 
proprietary technologies.  I argue that this is a bad time
to be taking 
risks for what I see as a largely theoretical benefit to
authors.

As I've stated before, in 8 years of active participation in
the SVG 
community, I've heard no serious request for unquoted
attributes; by 
contrast, I have heard many people extolling the benefits of
the cleaner 
XML model in contrast to the more complex HTML legacy.  As
it happens, 
SVG makes liberal use of spaces in attributes, much more so
than HTML, 
so the analogies between the two are not quite accurate; the
majority of 
SVG content uses not the basic shapes like circles, lines,
rectangles 
and ellipses, but the more complex shapes represented by
paths, 
polygons, and polylines, and those elements use attribute
values most 
clearly represented by space-separated coordinate pairs. 
It's not clear 
that there would be a substantive gain by authors in
real-world content 
by excluding attribute value quotes.  Since SVG doesn't have
the legacy 
content of HTML content's unquoted attributes, there is
little need to 
extend the same rules to SVG as are necessary for HTML.

You state that "SVG deserves to have this feature as
well" and that 
"there's no reason it should fall short of HTML in this
regard" as if 
unquoted attributes are innately a clear benefit, rather
than a burden 
that implementors of HTML vendors and authors have to put up
with, 
because vendors have to deal with legacy content, and
authors have to 
maintain content they didn't create; SVG authors have never
had to deal 
with this before, and it's really not clear they want to. 
You represent 
this as an authoring benefit, but I have not seen the
evidence that this 
is something authors are requesting.  I may be wrong, but
I'd like to be 
proven wrong, rather than take it on faith.

In summary, as I see it, my proposal works today in a larger
number and 
wider variety of user agents, and imposes less burden on
vendors, and 
arguably on authors.


Could you summarize all the changes that you would require
for SVG UAs 
and authors to implement your proposal, and give the
benefits and 
rationales for each?


[1] http://lists.w3.org/Archives/Public/public-html
/2008Mar/0039.html
[2] http://lists.w3.org/Archives/Public/public-html
/2008Mar/0124.html

Regards-
-Doug Schepers
W3C Team Contact, SVG, CDF, and WebAPI


[1]

about | contact  Other archives ( Real Estate discussion Medical topics )