RE: Formal definition of HTML5 (was Re: Version information)

Ian Hickson wrote:
> On Sat, 14 Apr 2007, Chris Wilson wrote:
> > >
> > > Could you give any concrete examples of vagueness? I'd like to fix any
> > > that are unintentional.
> >
> > <canvas>.  You've specified an entire immediate-mode graphics api, more
> > extensive in some ways than GDI, without describing the parameters or
> > giving rendering rules to get interoperable pixel-perfect rendering.
>
> Could you be more specific? What parameters do you think should be
> specified and which rendering rules do you think are needed to get
> interoperable pixel-perfect rendering?

My understanding is: pixel-perfect rendering is intentionally against
the goals of <canvas> -- e.g. getImageData makes allowances for a
canvas-pixel to be multiple device-pixels. (If I remember correctly,
that was originally asked for by Opera?)
On a 200dpi display you might not want to do antialiasing -- you could
instead have each canvas pixel cover 3x3 device-pixels, and any jagged
edges would be too small to notice. Also, performance is critical for
many interactive uses of canvas: on low-powered mobile devices, the
browser might disable antialiasing or bilinear texture filtering, and
might use 16-bit colours instead of 24-bit; on devices with
hardware-accelerated graphics, the browser may want to use that
hardware without being constrained by pixel-perfect accuracy.
Implementors have the freedom to compete in performance and quality,
without being constrained down to the level of equations to draw a
straight line or subdivide a curve.

But there are certain areas that are still underspecified, without
going into pixel-perfect rendering issues -- globalCompositeAlpha is
the biggest one I've seen so far, and it causes some real
interoperability problems. It would be unacceptable in a
Recommendation, but now is a good time to identify and fix those
problems. It'd be quite nice if everyone in the HTML WG could review
different sections of the HTML5 spec to find any such issues...

For canvas in particular, advice from implementors and graphics
experts would be valuable. Failing that, I've been doing some tests
and making suggestions myself
(http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2007-March/010608.html
for the suggested compositing definition, corresponding tests at
http://canvex.lazyilluminati.com/tests/tests/index.2d.composite.transparent.html)
and I'm happy to trust they will be taken into account in future
drafts. The HTML5 spec is certainly not perfect yet, but it seems to
be aimed in the right direction and hopefully this kind of specific
feedback and testing will allow it to get closer over the next few
years.

-- 
Philip Taylor
excors@gmail.com

Received on Monday, 16 April 2007 11:40:16 UTC