Marja-Riitta Koivunen <marja@w3.org>
Copyright © 1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability,
trademark,
document
use and software
licensing rules apply.
SVG offers a number of features which may make graphics on the Web accessible to a wider group of people. This can only occur if these features are correctly used. This very draft note attempts to describe the possibilities offered, and how they can be used.
This is some initial ideas which may be proposed as a note on the accessibility features of SVG. It is a preliminary working draft. It is inapropriate to reference W3C working drafts as anything other than "work in progress". This document is currently highly unstable. It is not expected to be stable before the Scalable Vector Graphics Specification [SVG] becomes a W3C Recommendation. However, comment is invited.
This document is a potential draft W3C Note and has not yet been approved by anyone. In particular no endorsement is implied or made by the World Wide Web Consortium, the Web Accessibility Initiative, nor by the working groups or members thereof. Hopefully it will grow up into a real document one day, or will quietly resign and live out its autumn years in dignity and anonymity.
Publication of a W3C Note does not imply endorsement by the W3C Membership. A list of current W3C technical reports and publications, including working drafts and notes, can be found at http://www.w3.org/TR.
Please send comments to Charles McCathieNevile, Marja-Riitta Koivunen
@@To do list:
Scalable Vector Graphics [SVG] represents a new way of producing graphics for the Web, based on technology which has been used for many years in CAD environments. The principles are also close to those used in so-called turtle-graphics, widely used in school-level education. If SVG, as it is commonly known, replaces raster-based formats such as PNG, JPEG and GIF as the standard on the Web it offers the potential to greatly improve the accessibility of graphic content on the Web. This document highlights the features in SVG which give rise to that potential. The document uses an example which is successively built up to illustrate how various features should be used together to create an accessible SVG graphic. The examples will be readily comprehensible to somebody with a good working knowledge of XML, although a reader with only a basic grasp of HTML should be able to make sense of them.
One of the major benefits of SVG is that it is Scalable - the images can be zoomed and resized as needed by the reader. Unlike conventional raster formats in use today, there is no loss of quality in magnifying an image. This can help people who are using a tactile graphic device, which typically have very low resolution, as well people with low vision. The following example shows an image of a driver's license which has been reduced, saved in reduced size, and then expanded, and which is now unrecognisable. Had it been a scalable graphic there would be no change in the file as it was reduced or expanded.
@@These examples will change I suspect.
Equivalent alternatives in SVG allow users to make use of an image even if they cannot make use of all of its content. For instance, providing textual descriptions of the components of an image will enable someone with blindness to get an understanding of the components and the structure of the image.
Authors specify equivalent alternatives by including the following text elements in any SVG container or graphics element:
The following example is a simple SVG document defining equivalent alternatives for the image but not yet drawing anything:
<?xml version="1.0"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN" "http://www.w3.org/Graphics/SVG/SVG-19990812.dtd"><svg width="6in" height="4.5in" viewBox="0 0 600 450"><title>Network</title> <desc>An example of a hub based computer network.</desc></svg>
An SVG knowledgeable browser can render title and description in various ways. One possibility is to show them as labels for the graphic component containing them. User should be able to control the rendering through the browser or Cascading Style Sheets [CSS].
Like all text elements in SVG, the content of the title or description may contains mark-up from some other XML namespace[NAMESPACE]. In that case the browser may be able to render this content according to its namespace. Mark-up can be used, for instance, to provide multiple language versions of titles, or references to a glossary.
When the equivalent content is marked with an id the same piece of text can be used as a textual label in the image. This helps managing of the equivalent alternatives as the text needs to be changed just in one place.
In the following example, the title element is rendered as part of the image. It is used in a text element that places a caption under the image. (Changes are marked with strong emphasis)
<svg width="6in" height="4.5in" viewBox="0 0 600 450"><title id="mainTitle">Network</title> <desc>An example of a hub based computer network.</desc> <text x="0" y="-16"> <tspan xlink:href="#mainTitle"/> </text></svg>
SVG has a component-based architecture where images can consist of other images and graphical elements. It is possible to give a title and a description for the entire graphic image, and then to provide titles and descriptions for each component of the image.
The component hierarchy and the included equivalents can be used in different ways by different renderers. For instance, a simple non-visual renderer can provide access to the component hierarchy and allow the user to navigate her way up and down or at a certain level of the structure, giving her the equivalent description of each encountered component. A multimedia-capable renderer can name each component that has focus through speech output - much like tooltips are used in some Web browsers to render alternative text for images.
The user looking a document with SVG images can easily get also other information than just the equivalent alternatives. She can see what graphical elements construct the image, what components are re-used by the user and also the hierarchy of the elements. This does not decrease the need of author provided equivalent descriptions but gives additional information when the user needs and is willing to understand it.
SVG provides a number of basic shapes, such as rectangles, squares, circles, ellipses and paths. As they are all easily identifiable by the element name, it is a fairly simple matter to determine the shape or shapes used to represent an image. For instance, a blind user may ask the browser to read the used element names included in an image in addition to the title or description information available.
The following example consists of two rectangles, one inside the other, and a small circle inside the larger rectangle. Together they form an image of a hub with a small led indicator. The sockets are still missing from the image.
<?xml version="1.0"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN" "http://www.w3.org/Graphics/SVG/SVG-19990812.dtd"><svg width="6in" height="4.5in" viewBox="0 0 600 450"><g transform="translate(180 200)><title id="hub">Hub</title> <desc>A typical 10BaseT/100BaseTX network hub</desc> <rect width="253" height="84"/><rect width="230" height="44" x="12" y="10"/><circle x="220" y="64" r="7"/></g></svg>
SVG allows the construction and re-use of graphic components. This makes it easier to understand the structure of complex images as the re-usable components are defined only once. An authoring tool may also utilize this feature to help creating and modifying graphics with the same components. This may help users having difficulties in fine motor control.
Now we want to add five sockets to the hub in the previos example. First we define one socket by using a g element and naming it as "hubPlug" by using an id attribute. All the definitions are done inside a defs element.
<defs>
<g id="hubPlug">
<desc>A 10BaseT/100baseTX socket</desc>
<path d="h5 v-9 h12 v9 h5 v16 h-22 z"/>
</g>
</defs>
Now we can refer to this element by using use element with a link to the socket named "hubPlug". Notice that the title information is given only when the socket is referred so that they can be separated by a sequential number.
<g transform="translate(16 20)" id="sock1">
<title>Socket 1</title>
<use xlink:href="#hubPlug"/>
</g>
Finally we add the hub the definition of the socket and five referencies to the socket. The following document contains the image of the whole hub.
<?xml version="1.0"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN" "http://www.w3.org/Graphics/SVG/SVG-19990812.dtd"><svg width="6in" height="4.5in" viewBox="0 0 600 450"><g transform="translate(180 200)"> /* The definitions */<defs> <g id="hubPlug"> <desc>A 10BaseT/100baseTX socket</desc> <path d="h5 v-9 h12 v9 h5 v16 h-22 z"/> </g> </defs>/* The original Hub */ <title id="hub">Hub</title> <desc>A typical 10BaseT/100BaseTX network hub</desc> <text x="0" y="-16"> <tspan xlink:href="#hub"/> </text> <rect width="253" height="84"/><rect width="230" height="44" x="12" y="10"/><circle x="220" y="64" r="7"/> /* Five copies of th sockets */<g transform="translate(16 20)" id="sock1"> <title>Socket 1</title> <use xlink:href="#hubPlug"/> </g> <g transform="translate(61 20)" id="sock2"> <title>Socket 2</title> <use xlink:href="#hubPlug"/> </g> <g transform="translate(106 20)" id="sock3"> <title>Socket 3</title> <use xlink:href="#hubPlug"/> </g> <g transform="translate(151 20)" id="sock4"> <title>Socket 4</title> <use xlink:href="#hubPlug"/> </g> <g transform="translate(196 20)" id="sock5"> <title>Socket 5</title> <use xlink:href="#hubPlug"/> </g> </g></svg>
Another feature of allowing component-based architecture is the ability to use nested levels of complexity for access to a graphic. For example, an image of a computer might be most readily understood by a person with cognitive disabilities if it is a high-quality visual representation of a computer, while rendering it as a tactile graphic may be easiest if it is simplified to an outline of each component (keyboard, processing unit, output device).
One way to make full use of this is to take advantage of SVG's use of CSS. In the following example we create an image of a computer, which is built from several parts. The image of the computer is defined as a symbol, so that as well as presenting it here we can incorporate it into other compound images, in the same way that our hub used the socket symbol several times. To enable it, or parts of it, to be re-used, it has a URI, which is http://www.w3.org/1999/09/SVG-access/computer.svg.
<?xml version="1.0"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN" "http://www.w3.org/Graphics/SVG/SVG-19990812.dtd"><svg width="6in" height="4.5in" viewBox="0 0 600 450"><g> <defs> <symbol id="terminal"><desc>A common desktop PC</desc> <g id="monitorStand" transform="translate(40 120)"> <title>Monitor stand</title> <desc>One of those cool swivelling monitor stands - the little ones that sit under the moniter</desc> <rect width="44" height="10"/> <path d="m5 10a24 10 0 0 1 10 79z"/> <rect width="14" height="4" x="10" y="18"/> </g> <g id="monitor"> <title>Monitor</title> <desc>A very fancy monitor</desc> <rect width="164" height="120"/> <rect width="142" height="95" x="11 y="12"/> </g> <g id="processor" transform="translate(-37 122)"> <title>The computer</title> <desc>A desktop computer - broad flat box style</desc> <rect width="240" hieght="83"/> <g id="discDrive" transform="translate(140 29)"> <title>disc drive</title> <desc>A built-in disc drive</desc> <rect width="82" height="30"/> <rect width="58" height="8" x="12" y="10"/> <rect width="10" height="4" x="55" y="22"/> </g> <circle x="200" y="68" r="4"/> </g> </symbol> </defs> <g id="ComputerA" transform="translate(180 85)> <title>Computer A</title> <use xlink:href="#terminal"/> </g> </svg>
As well as making use of objects defined within a document, SVG uses XML Linking Language [Xlink] to allow the use of components from other documents, and even the use of complete images. This enables easy construction and re-use of libraries of known objects. For authors, this means being able to use a known graphic component when it cannot be seen. For consumers this offers the ability to build a library of information about known objects, either locally, or on the web. This library can be expanded and shared, for example to allow textual information about an image to be generated by people who can see it, and used by people who cannot. The following example adds a cable to the hub which was constructed earlier, and the computer symbol which was defined in the previous example. Note also that the hub has become just one component of the image, and the sockets have become components of the hub, as with the components for the computer.
<?xml version="1.0"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN" "http://www.w3.org/Graphics/SVG/SVG-19990812.dtd"><svg width="6in" height="4.5in" viewBox="0 0 600 450"><title id="theTitle">Network</title> <desc>An example of a computer network based on a hub</desc> <text x="0" y="-16"> <tspan xlink:href="#theTitle"/> </text> <g id="hub"> <use xlink:href="http://www.w3.org/1999/09/SVG-access/hub#theHub"/> </g> <g id="CableA"> <title>Cable A</title> <desc>10BaseT twisted pair cable</desc> <path d="M207 228c207,250 190,240 170,270"/> </g> <g id="ComputerA" transform="translate(120 270)"> <title>Computer A</title> <use xlink:href="http://www.w3.org/1999/09/SVG-access/computer#terminal" transform="scale(0.75)"/> </g> </svg>
SVG uses CSS syntax and properties to specify formatting effects. As noted in Web Content Accessibliity Guidelines [WAI-WEBCONTENT], and in Accessibility Features of CSS2 [CSS-access], this provides a means for giving the author the abbility to specify rich presentations, while allowing the user to ensure that the document is presented in a way which meets their needs. In the following example we have used the class attribute to add some styles to objects:
<?xml version="1.0"?><?xml-stylesheet href="http://www.w3.org/1999/09/3-svg-style" type="text/css"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN" "http://www.w3.org/Graphics/SVG/SVG-19990812.dtd"><svg width="6in" height="4.5in" viewBox="0 0 600 450"><g transform="translate(180 200)"><defs> <linearGradient id="sockGradient"> <stop offset="100%" style="color:#1E1A16"/> <stop offset="0%" style="color:#0092E0"/> </linearGradient> <g id="hubPlug" class="socket"> <desc>A 10BaseT/100baseTX socket</desc> <path d="h5 v-9 h12 v9 h5 v16 h-22 z"/> </g> </defs><title id="hub">Hub</title> <desc>A typical 10BaseT/100BaseTX network hub</desc> <text x="0" y="-16"> <tspan xlink:href="#hub"/> </text> <rect width="253" height="84" class="outline"/><rect width="230" height="44" x="12" y="10" class="hub"/><circle x="220" y="64" r="7" class="light"/><g transform="translate(16 20)" id="sock1"> <title>Socket 1</title> <use xlink:href="#hubPlug"/> </g> <g transform="translate(61 20)" id="sock2"> <title>Socket 2</title> <use xlink:href="#hubPlug"/> </g> <g transform="translate(106 20)" id="sock3"> <title>Socket 3</title> <use xlink:href="#hubPlug"/> </g> <g transform="translate(151 20)" id="sock4"> <title>Socket 4</title> <use xlink:href="#hubPlug"/> </g> <g transform="translate(196 20)" id="sock5"> <title>Socket 5</title> <use xlink:href="#hubPlug"/> </g> </g></svg>
The stylesheet used, http://www.w3.org/1999/09/3-svg-style is as follows:
.socket { fill: url(http://www.w3.org/1999/09/3-network1#sockGradient) #111 ; stroke: #1E1A16 ; stroke-width: 0.3 }
.hub { fill: #007CC5 ; stroke: #1E1A16; stroke-width: 0.3 }
#hub .outline { fill: #75C5F2 ; stroke: #1E1A16 ; stroke-width: 0.3 }
.light { fill: #83C220 ; stroke: #1E1A16; stroke-width: 0.3 }
.cable { fill: none ; stroke: #D11B1B ; stroke-width: 11 }
<!-- Some style for the styled version of the computer -->
#terminal .outline { fill: #F7EED2 ; stroke: #1E1A16 ; stroke-width: 0.3 }
.computer { fill: #F7EED2 ; stroke: #1E1A16 ; stroke-width: 0.3 }
.screen { fill: url(http://www.w3.org/1999/09/SVG-access/computer-styled#screen) ; stroke: #1E1A16 ; stroke-width: 3 }
.disc { fill: url(http://www.w3.org/1999/09/SVG-access/computer-styled#disc) ; stroke:#1E1A16 ; stroke-width: 0.3 }
Note that this example uses a slightly modified version of the computer. You can download http://www.w3.org/1999/09/3-computer-styled for comparison, but the main differences are similar to those above - there are some gradients defined and some elements have a class attribute.
Some media are suited to high-resolution graphics, some to lower resolution
graphics, or the ability to change between the two. It is also possible to
use CSS to provide a more appropriate default presentation for different sets
of user needs. We can expand our stylesheet to use the special
outline class and the CSS @media rule, as the following example
shows:
@media embossed braille {
g { display: none }
.outline { display: svg }
text {display: svg }
}
@media screen {
.socket { fill: url(http://www.w3.org/1999/09/3-network1#sockGradient) #111 ; stroke: #1E1A16 ; stroke-width: 0.3 }
.hub { fill: #007CC5 ; stroke: #1E1A16; stroke-width: 0.3 }
#hub .outline { fill: #75C5F2 ; stroke: #1E1A16 ; stroke-width: 0.3 }
.light { fill: #83C220 ; stroke: #1E1A16; stroke-width: 0.3 }
.cable { fill: none ; stroke: #D11B1B ; stroke-width: 11 }
<!-- Some style for the styled version of the computer -->
#terminal .outline { fill: #F7EED2 ; stroke: #1E1A16 ; stroke-width: 0.3 }
.computer { fill: #F7EED2 ; stroke: #1E1A16 ; stroke-width: 0.3 }
.screen { fill: url(http://www.w3.org/1999/09/SVG-access/computer-styled#screen) ; stroke: #1E1A16 ; stroke-width: 3 }
.disc { fill: url(http://www.w3.org/1999/09/SVG-access/computer-styled#disc) ; stroke:#1E1A16 ; stroke-width: 0.3 }
}
The animations model which is being jointly developed between SVG and the Synchronised Multimedia Integration Language (SMIL) [SMIL-boston] offers a new approach to dynamic Web content. Because the changes which will take place in an animation are written declaratively, rather than programatically (as is the case with scripting languages like ECMAscript or Javascript) it is much simpler to determine the nature of the changes. Hopefully this will allow user agents to provide much clearer information about what will happen in an animation when rendering to an environment which does not have the media capabilities presumed by the author. At the moment this is theoretical - the authors are not aware of any implementations, and consequently this is not a well-understood area. This feature will need to be understood by User Agents, and information about the changes will need to be made available to the user, if there is to be any accessibility benefit.
In the following example we use animation to connect a new computer to the hub:
<?xml version="1.0"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN" "http://www.w3.org/Graphics/SVG/SVG-19990812.dtd"><svg width="6in" height="4.5in" viewBox="0 0 600 450"><title id="theTitle">Network</title> <desc>An example of a computer network based on a hub</desc> <text x="0" y="-16"> <tspan xlink:href="#theTitle"/> </text> <g id="hub"> <use xlink:href="http://www.w3.org/1999/09/SVG-access/hub#theHub"/> </g> <g id="CableA"> <title>Cable A</title> <desc>10BaseT twisted pair cable</desc> <path d="M207 228c207,250 190,240 170,270"/> </g> <g id="ComputerA" transform="translate(120 270)"> <title>Computer A</title> <use xlink:href="http://www.w3.org/1999/09/SVG-access/computer#terminal" transform="scale(0.75)"/> </g> <g id="hub"> <use xlink:href="http://www.w3.org/1999/09/SVG-access/hub#theHub"/> </g> <animate xlink:href="#CableB" attribute="opacity" from="0" to="1" begin="0s" dur="5s" fill="freeze"/> <g id="CableB"> <title>Cable B</title> <desc>10BaseT twisted pair cable</desc> <path d="M252 228c320,250 400,240 450,270"/> </g> <animate xlink:href="#ComputerB" attribute="opacity" from="0" to="1" begin="5s" dur="5s" fill="freeze"/> <g id="ComputerB" transform="translate(400 270)"> <title>Computer B</title> <use xlink:href="http://www.w3.org/1999/09/SVG-access/computer#terminal" transform="scale(0.75)"/> </g> </svg>
SVG allows new fonts to be created, and subsequently used for rendering textual content. This provides authors with a powerful new mechanism for offering arbitrary fonts of much greater complexity than was previously possible. At the same time the actual text rendered in those fonts can be semantically marked-up in an appropriate XML language, ensuring that a user agent can access the text directly.
@@example - Put the W3C logo onto the graphic, as text, with a defined font.??
Using namespaces there are cool things that can be done. For example, the heading of this document can be identified as such.
DOM means that there is a standard way of interacting with the document that can be used by existing tools and techniques.
The ability to include metadata in a document can be used at a document-wide level, to provide information such as accessibility rating for the document, which can be useful in searching for appropriate material. It can also be used to provide metadata about the components of a document, which can then be used to provide more complex structural information, that cannot be easily expressed in the container model which is part of SVGs "native" structure. The following example uses XML namespaces [NAMESPACE] and RDF metadata [RDF] to include information about the structure of the network graphic which cannot be expressed natively in SVG.
@@fix this example... <?xml version="1.0"?><?xml-stylesheet href="http://www.w3.org/1999/09/3-svg-style" type="text/css"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN" "http://www.w3.org/Graphics/SVG/SVG-19990812.dtd"><svg width="6in" height="4.4in" viewBox="-3434 0 5943 4363"><metadata> <rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns" xmlns:dc = "http://purl.org/dc/elements/1.0/" xmlns:connect = "http://www.w3.org/1999/08/29-svg-connections-in-RDF"> <rdf:Description about="#hub"> <connect:ends> <rdf:Bag> <rdf:li rdf:Resource="#socket1"/> <rdf:li rdf:Resource="#socket2"/> <rdf:li rdf:Resource="#socket3"/> <rdf:li rdf:Resource="#socket4"/> <rdf:li rdf:Resource="#socket5"/> </rdf:Bag> </connect:ends> </rdf:Description> <rdf:Description about="#CableA"> <connect:ends> <rdf:Bag> <rdf:li rdf:Resource="#socket1"/> <rdf:li rdf:Resource="#ComputerA"/> </rdf:Bag> </connect:ends> </rdf:Description> <rdf:Description about="#CableB"> <connect:ends> <rdf:Bag> <rdf:li rdf:Resource="#socket2"/> <rdf:li rdf:Resource="#ComputerB"/> </rdf:Bag> </connect:ends> </rdf:Description> <rdf:Description about=""> <dc:creator> <rdf:Bag> <rdf:li>Chris Lilley</rdf:li> <rdf:li>Daniel Dardailler</rdf:li> <rdf:li>Charles McCN</rdf:li> </rdf:Bag> </dc:creator> </rdf:Description> </rdf:RDF> </metadata> <g> <g id="hub"><defs> <linearGradient id="sockGradient"> <stop offset="100%" style="color:#1E1A16"/> <stop offset="0%" style="color:#0092E0"/> </linearGradient> <g id="hubPlug" class="socket"> <desc>A 10BaseT/100baseTX socket</desc> <path d="l 50 0 0 -89 127 0 0 89 48 0 0 168 -225 0 0 -168z"/> </g> </defs><title>Hub</title> <desc>A typical 10BaseT/100BaseTX network hub</desc> <path d="M-1665 844"/> <rect class="hubBox" width="2528" height="-843"/><path m 124 -298"/><rect class="hubFace" d="2301 -442"/><path d="m 2086 154"/><rect class="light" d="102 -72"/><path d="m 1961 -404"/> <g id="socket1"> <title>socket 1</title> <use xlink:href="#hubPlug"/> </g> <path d="m 454 0"/> <g id="socket2"> <title>socket 2</title> <use xlink:href="#hubPlug"/> </g> <path d="m 454 0"/> <g id="socket3"> <title>socket 3</title> <use xlink:href="#hubPlug"/> </g> <path d="m 454 0"/> <g id="socket4"> <title>socket 4</title> <use xlink:href="#hubPlug"/> </g> <path d="m 454 0"/> <g id="socket5"> <title>socket 5</title> <use xlink:href="#hubPlug"/> </g></g> <g id="CableA" class="cable"> <title>Cable A</title> <desc>10BaseT twisted pair cable</desc> <path d="M-1321 390c0,883 -1178,909 -1178,1834"/> </g> <g id="CableB" class="cable"> <title>Cable B</title> <desc>10BaseT twisted pair cable</desc> <animate xlink:href="bPath" attribute="d" from="M-841 390" to="M-841 390c-17,496 50,833 454,1035 387,193 1371,387 1371,976" begin="2s" dur="5s" fill="freeze"> <path d="M-841 390c-17,496 50,833 454,1035 387,193 1371,387 1371,976"/> </g> <g id="ComputerA"> <title>Computer A</title> <path d="M-2230 3611"/> <use xlink:href="http://www.w3.org/1999/09/3-computer-styled#terminal"/> </g> <g id="ComputerB"> <title>Computer B</title> <path d="M 1305 3611"/> <use xlink:href="http://www.w3.org/1999/09/3-computer-styled#terminal"/> </g> </g></svg>
The specification itself provides benefits to accessibility. It requires conformance to accessibility guidelines as part of conformance for tools. It also provides an appendix on accessibility [SVG-spec-access]. @@and with luck I'll poke into all the examples to make them good examples of accessibility. The first part of that is including images everywhere, which I imagine is a work item for the SVG group.
The first source for information about SVG is the specification itself [SVG]. In addition, the public Web page of the W3C SVG working group [SVG-page] is a good source of information, including articles and papers about SVG, news of implementations, etc.
W3C's Web Accessibility Initiative (WAI) addresses accessibility of the Web through five complementary activities that:
WAI's International Program Office enables partnering of industry, disability organizations, accessibility research organizations, and governments interested in creating an accessible Web. WAI sponsors include the US National Science Foundation and Department of Education's National Institute on Disability and Rehabilitation Research; the European Commission's DG XIII Telematics for Disabled and Elderly Programme; Telematics Applications Programme for Disabled and Elderly; Government of Canada, Industry Canada; IBM, Lotus Development Corporation, and NCR.
Additional information on WAI is available at http://www.w3.org/WAI.
The W3C was created to lead the Web to its full potential by developing common protocols that promote its evolution and ensure its interoperability. It is an international industry consortium jointly run by the MIT Laboratory for Computer Science (LCS) in the USA, the National Institute for Research in Computer Science and Control (INRIA) in France and Keio University in Japan. Services provided by the Consortium include: a repository of information about the World Wide Web for developers and users; reference code implementations to embody and promote standards; and various prototype and sample applications to demonstrate use of new technology. In September 1999, more than 350 organizations are Members of the Consortium. For more information about the World Wide Web Consortium, see http://www.w3.org/
The following people have contributed directly to the content of this document:
Dan Brickley, Daniel Dardailler, Chris Lilley, Eric Prud'hommeaux, Ralph Swick
We have also drawn on the work of:
The SVG Working Group, the WAI Protocols and Formats Working Group, and the IBM and CSIRO SVG viewer projects.