Keys

Client-Side Scripting

Shadi Abou-Zahra, W3C/WAI
http://www.w3.org/People/shadi/

(alternate presentation format available)

WCAG 2 Requirements

Basic Considerations

Rich Applications

Accessible Rich Internet Applications (WAI-ARIA):

Example: Missing Semantics

What is the semantic meaning of the following code?

<div>
  <div>Veggies
    <div>
      <div>Green
        <div>
          <div>Asparagus</div>
          <div>Kale</div>
          <div>Leafy
            <div>
              <div>Lettuce</div>
              <div>Kale</div>
              <div>Spinach</div>
              <div>Chard</div>
            </div>
          </div>
          <div>Green beans</div>
        </div>
      </div>
      <div>Legumes</div>
      <div>Yellow
        <div>
          <div>Bell peppers</div>
          <div>Squash</div>
        </div>
      </div>
    </div>
  </div>
</div>

A Tree-View

The previous code visually represents a Tree-View:

Tree-View generated by the previous code

Solution: WAI-ARIA

Accessible Rich Internet Applications (WAI-ARIA) provides these semantics:

<div role="wairole:tree">
  <div role="wairole:treeitem">Veggies
    <div role="wairole:group">
      <div role="wairole:treeitem">Green
        <div role="wairole:group">
          <div role="wairole:treeitem">Asparagus</div>
          <div role="wairole:treeitem">Kale</div>
          <div role="wairole:treeitem">Leafy
            <div role="wairole:group">
              <div role="wairole:treeitem">Lettuce</div>
              <div role="wairole:treeitem">Kale</div>
              <div role="wairole:treeitem">Spinach</div>
              <div role="wairole:treeitem">Chard</div>
            </div>
          </div>
          <div role="wairole:treeitem">Green beans</div>
        </div>
      </div>
      <div role="wairole:treeitem">Legumes</div>
      <div role="wairole:treeitem">Yellow
        <div role="wairole:group">
          <div role="wairole:treeitem">Bell peppers</div>
          <div role="wairole:treeitem">Squash</div>
        </div>
      </div>
    </div>
  </div>
</div>

Questions?

Quick clarification questions welcome now.
Next: Other Considerations.