- From: Michael(tm) Smith <mike@w3.org>
- Date: Fri, 30 Nov 2007 18:06:35 +0900
- To: public-html@w3.org
- Message-ID: <20071130090633.GI1927@sideshowbarker>
In my role as the W3C team contact for the HTML working group, I'm responding here to the following WBS survey: Accept requirement for immediate mode graphics a la canvas element? http://www.w3.org/2002/09/wbs/40318/req-gapi-canvas/ "Do use cases such as games, shared whiteboards, and yahoo pipes and others[1] in the ESW wiki motivate a requirement that HTML 5 provide an immediate mode graphics API and canvas element? This is a proposal to close ISSUE-15[2] immediate-mode-graphics. Possible impact on the charter has been moved to a separate survey[3]. [1] http://esw.w3.org/topic/HTML/AddedElementCanvas [2] http://www.w3.org/html/wg/tracker/issues/15 [3] http://www.w3.org/2002/09/wbs/40318/tactics-gapi-canvas/results I submitted a "Yes" vote. Note that I don't have any special decision-making authority to control the final result of this survey; I am representing my organization and get one vote (just like any other member of the group) and it's the responsibility of the chairs to weigh that vote along with the other 60 or so votes submitted. What follows below are (very) detailed comments related to my response. The comments are quite long. I'm sorry I was not able to make them shorter. But I put a Summary section at the end, so if you don't care to read through all the details (or run out of time and/or patience reading through them), feel free to skip to the end. ----------------------------------------------------------------- Detailed Comments ----------------------------------------------------------------- There is a range of views on the W3C team with regard to the canvas element and its associated immediate-mode graphics API. A number of team members have expressed serious concerns about accessibility considerations (or lack of) in the canvas specification. In some discussions, it has been suggested that canvas is fundamentally broken by design with regard to accessibility considerations and unfixable in that regard, and that SVG should be used instead, because canvas by its natures cannot provide access to semantics of the content -- access that is necessary for providing accessible alternatives to the content. That same view has been expressed in at least one message posted to this list; from Rich Schwerdtfeger on Nov 21: http://lists.w3.org/Archives/Public/public-html/2007Nov/0320.html "I object to having <canvas> in HTML 5. There is no vehicle to apply accessibility semantics to the markup - unlike SVG." http://lists.w3.org/Archives/Public/public-html/2007Nov/0328.html "With Canvas you draw and it goes into the bit bucket. There is no way to capture and access the semantics of what you are doing... I am concerned that we would advocate using canvas over SVG where we would have an opportunity to apply semantics to the base drawing." But also note in that same thread the replies to Rich's message, including this one from Anne van Kesteren: http://lists.w3.org/Archives/Public/public-html/2007Nov/0322.html Anne cites some part of the canvas spec that provides for fallback content: http://www.w3.org/html/wg/html5/#canvas "When authors use the canvas element, they should also provide content that, when presented to the user, conveys essentially the same function or purpose as the bitmap canvas. This content may be placed as content of the canvas element. The contents of the canvas element, if any, are the element's fallback content." Rich's response regarding fallback content: http://lists.w3.org/Archives/Public/public-html/2007Nov/0328.html With a fallback, I may have a text alternative for say a map which is a set of directions. This is fine for someone who is blind. For someone with a cognitive impairment I may need something else. Other team members have expressed concerns that the HTML5 spec is simply not the appropriate place for an immediate-mode graphics API and have suggested that if we spec an immediate-mode graphics API at all it should in a separate spec of its own and be managed by a working group under the W3C Graphics Activity, with graphics experts driving in its development. Along with that concern, it has been pointed out that we already have good open APIs for graphics support -- such as Open GL ES -- support for which is already implemented even in mobile phones, with hardware acceleration even. And there are some who have suggested that it would be better to put resources into work on SVG -- including working on the SVG JavaScript API -- rather than progressing any further with canvas. So some of the discussions (both about the accessibility considerations and about use of resources to work on graphics APIs within the W3C) have become in part "canvas vs. SVG" discussions, or to put it into more general terms "immediate-mode vs. retained-mode graphics" discussions, and along with that discussions about whether it is necessary for the W3C to spec an immediate-mode graphics API (given that there are existing APIs for immediate-mode graphics that are already widely deployed). With regard to the canvas vs. SVG issue, we have had similar discussions within the HTML working group itself and embedded in the comments in the responses to this particular survey; for example, in his response, Gregory Rosmaita expressed concern about whether CANVAS is being forced upon users by developers loathe to provide the same functionality using an extant, proven, standardized and accessible graphical markup mechanism such as SVG" But others have responded to suggest that there is a need for both canvas and SVG; for example, this comment from Matthew Raymond in his response to the survey: Memory concerns, performance considerations and the need for programmable effects will naturally lend themselves to an immediate-mode graphics API. The idea that SVG and <canvas> are competing technologies is in the large a fallacy, and only true in a specific, limited set of use cases... There is no evidence to support that SVG will be displaced by <canvas>. Opera, Mozilla and Apple all support _BOTH_ SVG and <canvas> natively, while IE currently supports neither natively." Looking more at the responses to the survey, there seems to me to be consensus in the working group that there is a need for a spec for immediate-mode graphics -- with even some of those responding "No" to the survey commenting that it would "good" to have a standardized immediate-mode graphics API but questioning whether it is in scope of this working group to produce it; for example, this comment response from Sam Ruby in his response: An immediate mode graphics API and canvas element would clearly be a good thing; my only issue is the scope question... And this comment from Gregory Rosmaita: I do not believe that it falls under the HTML WG's charter to define immediate mode graphics and CANVAS -- this is properly the domain of the W3C's graphics activity And related comment from Matthew Raymond again in his response: The idea that the API is out of scope is weak, given the fact "UI widgets" and "Editing APIs and user-driven WYSIWYG editing features" are already within scope per the charter. At best, you could argue that the API should be JOINTLY developed with another group, but since there are already at least four existing implementations "in the wild" with few compatibility issues between them, such an arrangement would largely be an exercise in bureaucracy. What's more, for compatibility, we can always just keep the existing <canvas> "2d" context as-is and create a "w3c-2d" context at a later date. Along with that comment that 'there are already at least four existing implementations "in the wild" with few compatibility issues between them', there were a number of similar comments in the survey and in discussions on this list. And while it is arguable whether it's accurate to say that there are "few compatibility issues between them", that assertion is itself at least testable, given that a relatively extensive set of test cases (565 tests) exist online for testing any implementation: http://canvex.lazyilluminati.com/tests/tests/ A test report on various implementations is also available: http://canvex.lazyilluminati.com/tests/tests/results.html Also, canvas is already in use in a significant amount of existing content on the Web -- most famously in Yahoo Pipes, but also apparently "average developers", as evidenced by things such as bug reports that get filed if the regression happens in the canvas API in version of a particular UA; for example: Mozilla bug #405584: Canvas.drawImage method is not working https://bugzilla.mozilla.org/show_bug.cgi?id=405584 So in regard to the maturity of the canvas spec, we have: - existence of a testsuite for canvas - multiple implementations of canvas in widely deployed products - canvas already in significant use on the Web, both in large sites and by working developers Those are all things that we usually don't expect to see until a spec reaches Candidate Recommendation or even after. The fact that canvas already has all of those argues strongly for it already being well ready for publication as a First Public Working Draft -- given that a key purpose of publishing a spec as a FPWD is to solicit comments on that spec from as wide a public readership as possible; the canvas spec clearly seems ready for public review. Along with that we have a market reality to consider: the vendors who have already implemented support for the canvas and canvas API specifications are not going to remove that support from their products, regardless of what we (the members of this working group and the W3C) decide to do with the canvas specification. So not spec'ing canvas at all is not a practical option, because if we know the feature is going to continue to be part of those products and of existing websites -- and thus in essence actually part of the Web -- the only choices we have to either ignore it completely (which some might describe as us effectively sticking our heads into the sand) or to work on spec'ing it in such a way (as thoroughly and precisely as possible) so as to help ensure interoperable implementations, and to continue on working to improve the spec as much as possible in areas where limitations are identified (in particular, with regard to accessibility considerations). Another reality we will continue to be faced with is a certain number of Web developers and sites will choose to make use of canvas regardless of whatever any of us or our organizations might do to promote or advocate SVG as a superior solution. And implicit in the scope of the work we are tasked with doing is the goal of providing Web developers with open-standards alternatives to proprietary technologies controlled by single vendors. Supporting canvas as a choice to developers helps us meet that goal. It seems to help us quite a lot, in fact, given that we have developers who have expressed a lot of enthusiasm about it and are very glad to have it as a choice. Also implicit in the work we are doing is the related goal of making it easier for developers to create Web applications that work interoperably across conformant browsers. If developers write Web applications that they want to work as expected across a range of browsers, we want should want to ensure that the set of standards-based features available in those browsers is common across them and is as well specified as possible. canvas, even with its limitations, seems to have already proven itself as a viable feature that many developers would like to have as a choice in building applications that work across browsers. So providing a standard canvas specification to support the choices that Web developers are already making seems to clearly align with the documented goals of this group. ----------------------------------------------------------------- Summary ----------------------------------------------------------------- So, in summary, as a representative of the W3C team in this group and in particular the W3C Interaction domain and the Director -- and as a W3C staff member one of whose primary responsibilities is to help ensure the success of the work of this group -- and after discussion with other members of the team and extensive review of the discussions within this group and in the comments submitted to the survey, I am supporting the decision to provide the canvas element and its associated API in the HTML5 specification. That said, I want to note that going forward, I plan to work with the W3C Web Accessibility Initiative Protocols and Formats working group -- in particular, with that group's chair, Al Gilman -- to make sure that the HTML5 specification and the canvas specification in particular are reviewed thoroughly by members of that group and that the issues identified get communicated back to the HTML working group and addressed. I will also work to ensure that the Status section of the HTML5 specification when it gets published as a First Public Working Draft contains an as-accurate-as-possible description of the open concerns and objections to its content, and that the discussions around those concerns and objections will continue, and that the group is committed to address those concerns and objections before we request transition to CR (which it says in our charter we are scheduled to publish in Q3 of next year). I also want to say that as I understand it at least, a decision to retain the canvas API in HTML5 at this point does not necessarily bind the group to keeping it in the spec forever. I think for now it in part just helps to clear the way for us to go ahead with publishing a FPWD of HTML5 with the canvas spec included, and encouraging the public review of the spec, which is something I think the group should really want to have right now. But existence of the canvas spec in the FPWD of HTML5 does not preclude the group from deciding to move the canvas immediate-mode graphics API out into a separate spec later -- if and when it seems like we have the circumstances necessary for making that a practical option. For more on that, see the comments (from me and others) in the "How should work on the canvas element and immediate mode graphics API proceed?" survey: http://www.w3.org/2002/09/wbs/40318/tactics-gapi-canvas/results That's it. If you managed to read this whole message from beginning to end, well, God bless you. --Mike -- Michael(tm) Smith http://people.w3.org/mike/ http://sideshowbarker.net/
Received on Friday, 30 November 2007 09:19:25 UTC