A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.

To request an account, ask an autoconfirmed user on Chat (such as one of these permanent autoconfirmed members).

Text in Canvas

From WHATWG Wiki
Jump to navigation Jump to search

Currently, the Canvas API does not include the ability to draw text strings. That makes several potential Canvas applications, such as dynamic graphs or maps, more complex than necessary. Instead of using the text facilities of the platform, Canvas applications need to bundle their own vector fonts or use inaccessible pre-rendered images for text display. Thus, using Canvas it is unattractive for authors and users are forced to use a proprietary plugin (Flash) for some applications.

Use Case Description

  • Maps (Street names, ...)
  • All kinds of graphs needing labels
  • Games (High score, "Game Over" etc)

Current Limitations

Explanation of why the current markup is insufficient.

Possible workarounds and the associated problems are described in great detail at http://canvaspaint.org/blog/2006/12/rendering-text/

Executive Summary:

  • Images are large and do not scale
  • Vector fonts are large, too

Moreover, the workarounds make accessibility more difficult, and authors need to worry about font copyright, normally addressed by the users operating system vendor

Current Usage and Workarounds

Some evidence that this feature is desperately needed on the web. You may provide a separate examples page for listing these.


Explanation of how and why new markup would be useful.

The problems described in "Current Limitations" would disappear :)

Requests for this Feature

Proposed Solutions

My Solution

Brief description of the solution and of how it address the problem at hand.

see http://rhino-canvas.sourceforge.net/www/drawstring.html#api

Processing Model

Explanation of the changes introduced by this solution. It explains how the document is processed, and how errors are handled. This should be very clear, including things such as event timing if the solution involves events, how to create graphs representing the data in the case of semantic proposals, etc.


Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.


Description of how and why browser vendors would take advantage of this feature.


Reasons why page authors would use this solution.