Network Pipe Manufacturer

    aria-data

    1.0.0 • Public • Published

    aria-data

    Raw JSON data for WAI-ARIA 1.1 roles, attributes (states & properties), and value types

    Install

    yarn add aria-data

    Usage

    const ariaData = require('aria-data');
    // {
    //   roles: {...},
    //   valueTypes: {...},
    //   attributes: {...}
    // }

    Guide

    References

    This dataset uses URLs such as https://www.w3.org/TR/wai-aria-1.1/#alert as reference IDs for entities. For example:

    {
      "ref": "https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant",
      "name": "aria-activedescendant",
      "description": "Identifies the currently active element (...)",
      "valueType": "https://www.w3.org/TR/wai-aria-1.1/#valuetype_idref"
    }

    Interface

    This dataset has the following interface:

    export default interface {
      roles: {
        [ref: string]: {
          ref: string,
          name: string,
          description?: string,
          abstract: boolean,
          superClassRoles: Array<Ref>,
          attributes: Array<Ref>,
        },
      },
      valueTypes: {
        [ref: string]: {
          ref: string,
          name: string,
          description?: string,
        },
      },
      attributes: {
        [ref: string]: {
          ref: string,
          name: string,
          description?: string,
          valueType: Ref,
          values?: Array<{
            value: string,
            isDefault: boolean,
            description?: string,
          }>
        },
      },
    }

    Example

    const { roles, valueTypes, attributes } = require('aria-data');
    const ROLES_ARR = Object.keys(roles).map(ref => roles[ref]);
     
    function findRole(roleName) {
      return ROLES_ARR.find(role => role.name === roleName);
    }
     
    function getAttrs(role) {
      function traverse(role) {
        return role.superClassRoles.reduce((attrs, ref) => {
          return attrs.concat(traverse(roles[ref]));
        }, role.attributes);
      }
     
      return traverse(role).map(ref => attributes[ref].name);
    }
     
    let alert = findRole('alert');
    let alertAttrs = getAttrs(alert);
    // ['aria-expanded', 'aria-atomic', 'aria-busy', 'aria-controls', ...]
    // ['aria-atomic', 'aria-busy', ...]

    Install

    npm i aria-data

    DownloadsWeekly Downloads

    4

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    80.1 kB

    Total Files

    4

    Last publish

    Collaborators

    • thejameskyle