SVG Tiny 1.2 - 20050413

F Accessibility Support


This appendix is informative, not normative.

F.1 WAI Accessibility Guidelines

This appendix explains how accessibility guidelines published by W3C's Web Accessibility Initiative (WAI) apply to SVG.

  1. The "Web Content Accessibility Guidelines 1.0" [WCAG] explains how authors can create Web content that is accessible to people with disabilities.
  2. The "Authoring Tool Accessibility Guidelines 1.0" [ATAG] explains how developers can design accessible authoring tools such as SVG authoring tools. To conform to the SVG specification, an SVG authoring tool must conform to ATAG (priority 1). SVG support for element grouping and reuse is relevant to designing accessible SVG authoring tools.
  3. The "User Agent Accessibility Guidelines 1.0" [UAAG] explains how developers can design accessible user agents such as SVG-enabled browsers. To conform to the SVG specification, an SVG user agent should conform to UAAG. SVG support for scaling, style sheets, the DOM, and metadata are all relevant to designing accessible SVG user agents.

The W3C Note "Accessibility Features of SVG" [SVG-ACCESS] explains in detail how the requirements of the three guidelines apply to SVG.

F.2 SVG Content Accessibility Guidelines

This section explains briefly how authors can create accessible SVG documents; it summarizes and builds upon "Accessibility Features of SVG" [SVG-ACCESS].

Provide text equivalents for graphics.
  • When the text content of a graphic (e.g., in a 'text' element) explains its function, no text equivalent is required. Use the 'title' child element to explain the function 'text' elements whose meaning is not clear from their text content.
  • When a graphic does not include explanatory text content, it requires a text equivalent. If the equivalent is complex, use the 'desc' element, otherwise use the 'title' child element.
  • If a graphic is built from meaningful parts, build the description from meaningful parts.
Do not rely on color alone.
  • Do not use color alone to convey semantic information.
  • Ensure adequate color contrast.
Use markup correctly.
  • Separate structure from presentation.
  • Use the 'g' element and rich descriptions to structure SVG documents. Reuse named objects.
  • Publish highly-structured documents, not just graphical representations. Documents that are rich in structure may be rendered graphically, as speech, or as Braille. For example, express mathematical relationships in MathML [MATHML] and use SVG for explanatory graphics.
  • Author documents that validate to the SVG RelaxNG grammar.
Use text for text, and graphics for graphics
  • Represent text as character data, not as glyphs, images or curves.
  • Style text with fonts. Authors may describe their own fonts in SVG.
  • Do not use 'pi' fonts or picture fonts to represent small graphics. The resulting garbage text does not conform to [CHARMOD] and confuses text to speech engines.
Provide a default reading order
  • Use 'textArea' elements to provide text that wraps in a box, rather than using script to wrap the text or using a sequence of unrelated 'text' elements.
Clarify natural language usage.
  • Use xml:lang to identify the natural language of content and changes in natural language. This ensures that textual content can be spell-checked, or converted to speech.
  • Use the 'systemLanguage' test attribute to provde language-specific alternative text and/or graphics.
Allow for rich navigation
  • Do not assume that all devices have a pointer device. Allow for keyboard navigation as well.
  • Provide links for 8-way directional navigation.
Ensure that dynamic content is accessible.
  • Ensure that text equivalents for dynamic content are updated when the dynamic content changes.
  • Avoid storing dynamic text in ecmascript arrays or in XSLT stylesheets. This makes it less accessible, and also increases the difficulty of localising the text or providing multilingual alternatives.
  • Ensure that SVG documents are still usable when scripts or other programmatic objects are turned off or not supported.

F.3 SVG User Agent Accessibility Guidelines

This section explains how implementors of SVG User Agents can make their software more accessible.

Provide access to color information
  • SVG User Agents should implement and document APIs so that assistive technologies can have access to color information on individual elements.
  • SVG User Agents should provide an optional high contrast view.
Provide a text-only view
  • SVG user Agents should provide mechanisms that allow assistive technologies to achieve a useful text-only view. Examples include a DOM explorer, a synchronized text only view, or an XSLT stylesheet to convert the textual content to XHTML.
Allow keyboard navigation
  • SVG user Agents should provide keyboard access to zooming and panning
  • SVG user Agents should allow animations, audio, and video to be started, stopped and paused using the keyboard.