hokulea/aria-voyager

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# ARIA Voyager

[![Test Coverage](https://api.codeclimate.com/v1/badges/6bd88c10540e66d94e2a/test_coverage)](https://codeclimate.com/github/hokulea/aria-voyager/test_coverage)
[![Maintainability](https://api.codeclimate.com/v1/badges/6bd88c10540e66d94e2a/maintainability)](https://codeclimate.com/github/hokulea/aria-voyager/maintainability)

_Canoe vessel that navigates your aria._

A framework agnostic / universal package that implements navigation patterns for
various aria roles and features.

## BYOM: Bring Your Own Markup

... and this library will make it interactive, according to applicable [ARIA
patterns](https://www.w3.org/WAI/ARIA/apg/patterns/). This library does not
apply styling, it will operate on the accessibility tree.

## Supported Roles and Features

<table>
<thead>
  <tr>
    <td>Role</td>
    <td>Navigation Patterns</td>
    <td>Features</td>
    <td>Focus Strategy</td>
  </tr>
</thead>
<tbody>
  <tr style="vertical-align: top">
    <td>
      <a href="https://www.w3.org/TR/wai-aria-1.2/#listbox" target="_blank"><code>listbox</code></a>
    </td>
    <td>
      ✅ <code>ArrowUp</code> (prev)<br>
      ✅ <code>ArrowDown</code> (next)<br>
      ✅ <code>Home</code> (first)<br>
      ✅ <code>End</code> (last)<br>
      ✅ Pointer Navigation
    </td>
    <td>
      ✅ Disabled<br>
      ✅ Scroll into view<br>
      ✅ Single selection<br>
      ✅ Multi selection<br>
      ❌ Checked<br>
    </td>
    <td>
      <a href="https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_focus_activedescendant" target="_blank">
      <code>aria-activedescendant</code>
      </a>
    </td>
  </tr>
  <tr style="vertical-align: top">
    <td>
      <a href="https://www.w3.org/TR/wai-aria-1.2/#menu" target="_blank"><code>menu</code></a>
    </td>
    <td>
      ✅ <code>ArrowUp</code> (prev)<br>
      ✅ <code>ArrowDown</code> (next)<br>
      ✅ <code>ArrowRight</code> / <code>Enter</code> (expand)<br>
      ✅ <code>ArrowLeft</code> / <code>Esc</code> (collapse)<br>
      ✅ <code>Home</code> (first)<br>
      ✅ <code>End</code> (last)<br>
      ✅ Pointer Navigation
    </td>
    <td>
      ✅ Disabled<br>
      ❌ Hover Behavior Configurable<br>
      ❌ <a href="https://www.w3.org/TR/wai-aria-1.2/#menuitemcheckbox" target="_blank"><code>role="menuitemcheckbox"</code></a><br>
      ❌ <a href="https://www.w3.org/TR/wai-aria-1.2/#menuitemradio" target="_blank"><code>role="menuitemradio"</code></a>
    </td>
    <td>
      <a href="https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_roving_tabindex" target="_blank">Roving <code>tabindex</code></a>
    </td>
  </tr>
</tbody>
</table>

## Packages

See each package for instructions

- [`aria-voyager`](./packages/aria-voyager/README.md) - universal / framework agnostic package
- [`ember-aria-voyager`](./packages/ember-aria-voyager/package/README.md) - bindings for ember.js