- From: Scooter Morris <scooter@cgl.ucsf.edu>
- Date: Tue, 09 Nov 2004 22:28:01 -0800
- To: www-svg@w3c.org
Here are some comments that I have been working on in response to the SVG 1.2 last call. I've been really trying to read all of the comments and discussion in www-svg, and I frankly have been less and less comfortable about adding my comments to the mix. Why? Well, for two reasons, mainly. I seem to represent a very minor focus of the SVG specification, someone who is attempting to add some SVG functionality to an existing web browser, and I'm probably the least knowledgeable of the folks working on SVG in Mozilla. Second, and perhaps more salient, is my confusion of the tone and WG response to comments made in the list. I will freely admit that Ian Hixie's unfortunate initial response (throw the whole thing out and start over) did not set a really positive tone, the increasing animosity in the list makes me wonder whether the working group really wants comments, or at least comments from folks such as me, who have a very strong need for SVG+MathML+XHTML+Javascript in a browser that scientists are willing to use every day. Note, this is not an accusation, this is a perception. I am also confused by the nature of the "Last Call", and the process. I am not very familiar with the W3C, so I could use some education. When I began putting my comments together, it was my understanding that comments would be submitted to the working group, which would consider them in total, and develop some form of formal, thoughtful reponse. The "Last Call" is, as I understand it, the formal opportunity for "outsiders" who have not been part of the working group's process to read the output of the working group and give their input, which necessarily means that many of the comments will be new to the working group, and will come from views not well represented on the working group. I have concluded that I must be in error concerning the process. It seems like the model is that each of the features of the specification be argued out in the forum until someone is convinced that the "other side" is right, without much opportunity for formal response from the working group as a whole, or even a recognition of the general sentiments being articulated by the posters. I can certainly see the advantages to this more public form of discourse, but it seems like it might lead to more hard feelings than otherwise necessary. In particular, the sense that I have is that those providing comments (in particular the implementors of Opera and Mozilla) are raising some very solid concerns about implementing specific features within the SVG 1.2 specification. Given that we haven't seen any comments so far from Apple or Microsoft, the comments by members of the Opera and Mozilla development team represent a significant population of potential users (users of web browsers), and they seem to be speaking with a certain amount of unity. One response that I've often seen by members of the working group is "we talked about that and discarded it". Is that a valid response? Of course, it may have been discussed, and may have been discarded for completely valid reasons, but without sharing the nature of that discussion, and the reasons for discarding the proposal/approach, its hard for those of us "outside" to understand what the rationale is, so (as a reader), I'm left really struggling to comprehend the positions of the working group. I guess I'm also very confused by the positioning of the working group. It seemed to me that working with Opera, Mozilla, and Apple to implement SVG would be very important to the working group, as it would certainly have a significant impact on the use of SVG as part of general web content. It is my perception, however (don't shoot me, I recognize the difference between perception and fact) that the SVG working group isn't really that interested in whether Mozilla, or Opera, or Apple, or even Microsoft implements SVG or not. My perception is that the working group is working very hard to court the manufacturers of cell phones and other mobile devices, which is why they have defined SVG 1.2 Mobile. Why is there not an SVG 1.2 Web? Is this audience not of at least equal importance? Given the lack of a profile for mixed-namespace web browsers, I can certainly understand the perception of many of my colleagues that SVG is "not meant for use on the web", but for use "within embedded devices". Is this true? If, on the other hand, the developers of mixed-namespace web browsers (note that I'm specifically /not/ using the more generic term "user agent"). Then I would think that the working group would be working more closely with the folks from Mozilla and Opera to see what things they see as hard to implement, and what things they see as easy. Having comments from a plug-in vendor that implementing something in their plug-in was relatively straightforward only serves to minimize the complexities of implementing a specification like SVG into an existing large, cross-platform code base. Again, I may be missing something, here, and if I'm really way off base, let me know. I am honestly confused. End of meta comments... * *General comments* *It is my belief that the focus of SVG should be on Scalable Vector Graphics, regardless of the pressures put on the working group by constuencies that are hoping to provide a broader base upon which to build applications. In Section 5.1 of the Architecture of the World Wide Web, it clearly states that "Orthogonal abstractions benefit from orthogonal specifications" and that "A specification should clearly indicate which features advance into territory rightfully governed by another specification." The example within that section even talks about the historical attempt by an HTML specifications to align with the HTTP specification, only to have the HTTP specification diverge, making "the two specifications awkwardly at odds with each other". In particular, I strongly believe that the SVG Working Group's attempt to introduce networking APIs into the SVG standard is strongly at odds with the principal of orthogonality outlined in the Architecture of the World Wide Web. The subtle changes in the wording between the SVG 1.1 and SVG 1.2 specifications outline this. From SVG 1.1: "This specification defines the features and syntax for Scalable Vector Graphics (SVG) Version 1.1, a modularized language for describing two-dimensional vector and mixed vector/raster graphics in XML." >From SVG 1.2: "SVG is a modularized XML language for describing two-dimensional graphics with animation and interactivity, /and a set of APIs upon which to build graphics-based applications/. This document specifies version 1.2 of Scalable Vector Graphics (SVG)." [emphasis mine] I believe that mixing a modularized XML language for describing two-dimensional graphics and a set of APIs for network interaction is beyond the scope of the SVG Working Group charter. While I recognize the utility of a set of standardized APIs for network interaction, file upload, and persistent storage, I believe that these interfaces should be standardized by a separate working group that will meet the needs of SVG, XHTML, XForms, and other web applications, and not be contained within a specification which should be focused on vector graphics. As such I recommend that Appendix B be reworded to state that these APIs are not part of the SVG 1.2 specification, but are requirements for a future Web Applications working group and may be subject to change by that working group. In this way, the current specification can offer these as guidance to SVG implementers without suggesting that the SVG Specification is now the appropriate home for Web Applications APIs, which requires specific input from the XHTML, XForms, SVG, and many other working groups. Profiling SVG* *This section provides strong guidance to implementors of SVG Viewers by discouraging any profiles other than Tiny, Basic, or Full, yet nowhere do these profiles get defined within this document. If its critical to adhere to these specific profiles, than those profiles must either be defined within this document, or linked to directly from this document. Should there also not be feature strings corresponding to the implemented profile?? This would also be a place where it makes sense to talk about a "Web" profile. There has been a lot of discussion in the www-svg list about the fact that it didn't make sense to "saddle" SVG Mobile implementors with "all of CSS". However, I believe that there is lots of opportunity for an intermediate position when you are certain that CSS is available. XML Binding Language for SVG I'm not qualified to comment on the details of this, but as I understand the discussion, the intent of sXBL is to act as a placeholder or stopgap implementation until XBL is standardized. This has been stated so many times, that it must be true, but shouldn't that be stated in the specification? Implementers could make design decisions based on the existing specification only to be very surprised when a more broadly defined XBL specification is released. Flowing Text and Graphics I am /not/ going to wade into this firepit! Plenty has been written that represents both sides of the multi-line text issue and I don't feel that I have much to add. I do believe that there is a lot of room to simplify the SVG Text design without giving up on the stated requirements for flowing text within a region. As an implementor, the number of elements really seems extreme. As a content author, it seems completely overwhelming, and I honestly fear for the compatability issues that might result when I combine the various SVG text elements with CSS styling (I /do/ want to use CSS within SVG!). One additional point, with all of the conversation surrounding precise line breaking algorithms, etc., I'm a little confused on how that would work when I use my "I'm over 50 and need larger fonts because my eyes are so bad" stylesheet? I think that we may re-introduce some of the consistency problems we used to have when we tried to do pixel-level design of web pages -- authors will make assumptions based on how their device renders the content, only to be surprised when users change font sizes and find that content is no longer visible... I know that an event has been defined to handle this case, but I have serious doubts that most authors will add code to gracefully handle the condition. Multiple Pages I guess someone really wants to define pagination for certain applications, but I don't see this being useful for most of my applications, so I'm going to let others more knowledgeable than I comment. Text enhancements OK, so editable text /really/ makes no sense to me in my mixed-namespace works. So, I can edit text, what do I do with it? Can it live in an HTML Form? Is it available to an XForm control? It seems that the only function value is to have a field that is available for script to get access to. OK, but if I can have editable text, and have to write scripts to take advantage of the editted content, wouldn't I also want buttons, and menus, other widgets? I guess I don't understand the use case in a browser context. Streaming I really think streaming should be left as a UA decision and not made part of the SVG Specification. Other people have already commented on this and the very wording of this chapter indicates that the working group is uncertain themselves. At this point, this is a very complex specification already. Don't add anything not absolutely necessary! Progressive rendering Not sure that this even applies to the work that I'm doing in Mozilla, which doesn't get SAX startElement events (at least that I can see). Looks like this section is making certain assumptions about the underlying implementation, which seems inappropriate, but maybe I'm just confused (a common state). Vector Effects It must be getting late, because I really don't understand the need for all of this complexity. Is there a concise use case that someone can give me that justifies all of these additional elements? As I said, as an author, this spec looks incredibly complex to take advantage of. Perhaps I just need some more examples (with images) that show how it might be used to accomplish something that could not be accomplished in SVG 1.1. Well, I've probably made enough enemies and demonstrated my complete ignorance of the workings of the W3C, SVG, etc., etc. so I'll stop here. I've already given my input on the API additions in the appendices, which I really feel are inappropriate in SVG. I still have never heard of a use case that would makes necessary for SVG, but not equally neccessary for HTML, etc. Maybe these are features that are required for the mobile community, I wouldn't know about that, but perhaps they could be excluded from the "Web" profile. I think that saying that the security is left up to the UA is completely unacceptable. Some of the comments have pointed out the Java has similar functionality, but the Java specification includes a fair amount of documentation about the sandbox model. I think that if it is absolutely necessary for a graphics standard to specify network interfaces, then it should also specify the security model for all of the same reasons. If you don't then it is likely that implementations will diverge and you will get incompatibilities. As specified, I for one would complain bitterly if it was implemented in Mozilla without some mechanism to completely turn it off, which would lead to the exact kind of divergence that the comments in chapter 2 suggested you hoped to avoid. My overall comment is that while it is clear that there is a lot of work that went into this specification, it seems very complicated and not well suited for implementation within an existing browser. As I said before, perhaps that is a secondary audience, which is fine, I'm frankly having enough trouble with implementing my little piece of SVG 1.1 in Mozilla (did gradients /really/ have to be able to refer to other gradients?!? Sheesh!) -- scooter John "Scooter" Morris, Ph.D.
Received on Wednesday, 10 November 2004 06:30:43 UTC