Code Monkey home page Code Monkey logo

aria-query's Introduction

ARIA Query

CI

Programmatic access to the WAI-ARIA 1.2 Roles Model. This package tracks the W3C Recommendation (last update: 6 June 2023).

CDN URL: https://unpkg.com/aria-query

Building the src/etc files

The files under src/etc are generated by the breakUpAriaJSON script.

To change them, edit the file scripts/roles.json then run:

node ./scripts/breakUpAriaJSON.js
git add scripts/roles.json src/etc

It should work with Node version 6.11.2 or later.

Utilities

Interface

These methods are available on each export from the module. The typing here in the documentation is pseudo-typed. Each export will have its own specific types for each method signature.

{|
  entries: () => Array<$Item>,
  get: (key: $Key) => ?$Value,
  has: (key: $Key) => boolean,
  keys: () => Array<$Key>,
  values: () => Array<$Value>,
|};

Roles

import { roles } from 'aria-query';

A map of role names to the role definition. For example:

let alertRole = roles.get('alert');
/**
 * Value of alertRole
 * {
 *   "requiredProps": {},
 *   "props": {
 *     "aria-atomic": "true",
 *     "aria-busy": null,
 *     "aria-controls": null,
 *     "aria-current": null,
 *     "aria-describedby": null,
 *     "aria-details": null,
 *     "aria-disabled": null,
 *     "aria-dropeffect": null,
 *     "aria-errormessage": null,
 *     "aria-expanded": null,
 *     "aria-flowto": null,
 *     "aria-grabbed": null,
 *     "aria-haspopup": null,
 *     "aria-hidden": null,
 *     "aria-invalid": null,
 *     "aria-keyshortcuts": null,
 *     "aria-label": null,
 *     "aria-labelledby": null,
 *     "aria-live": "assertive",
 *     "aria-owns": null,
 *     "aria-relevant": null,
 *     "aria-roledescription": null
 *   },
 *   "abstract": false,
 *   "childrenPresentational": false,
 *   "baseConcepts": [],
 *   "relatedConcepts": [ {
 *     "module": "XForms",
 *     "concept": {
 *       "name": "alert"
 *     }
 *   }],
 *   "superClass": [["roletype", "structure", "section"]]
 * }

Elements to Roles

import { elementRoles } from 'aria-query';

HTML Elements with inherent roles are mapped to those roles. In the case of an element like <input>, the element often requires a type attribute to map to an ARIA role.

[
  [ '{"name": "article"}', [ 'article' ] ],
  [ '{"name": "button"}', [ 'button' ] ],
  [ '{"name": "td"}', [ 'cell', 'gridcell' ] ],
  [ '{"name": "input", "attributes": [ {"name": "type", "value": "checkbox"}] }', [ 'checkbox' ] ],
  [ '{"name": "th"}', [ 'columnheader' ] ],
  [ '{"name": "select"}', [ 'combobox', 'listbox' ] ],
  [ '{"name": "menuitem"}', [ 'command', 'menuitem' ] ],
  [ '{"name": "dd"}', [ 'definition' ] ],
  [ '{"name": "figure"}', [ 'figure' ] ],
  [ '{"name": "form"}', [ 'form' ] ],
  [ '{"name": "table"}', [ 'grid', 'table' ] ],
  [ '{"name": "fieldset"}', [ 'group' ] ],
  [ '{"name": "h1"}', [ 'heading' ] ],
  [ '{"name": "h2"}', [ 'heading' ] ],
  [ '{"name": "h3"}', [ 'heading' ] ],
  [ '{"name": "h4"}', [ 'heading' ] ],
  [ '{"name": "h5"}', [ 'heading' ] ],
  [ '{"name": "h6"}', [ 'heading' ] ],
  [ '{"name": "img"}', [ 'img' ] ],
  [ '{"name": "a"}', [ 'link' ] ],
  [ '{"name": "link"}', [ 'link' ] ],
  [ '{"name": "ol"}', [ 'list' ] ],
  [ '{"name": "ul"}', [ 'list' ] ],
  [ '{"name": "li"}', [ 'listitem' ] ],
  [ '{"name": "nav"}', [ 'navigation' ] ],
  [ '{"name": "option"}', [ 'option' ] ],
  [ '{"name": "input", "attributes": [ {"name": "type", "value": "radio"}] }', [ 'radio' ] ],
  [ '{"name": "frame"}', [ 'region' ] ],
  [ '{"name": "rel"}', [ 'roletype' ] ],
  [ '{"name": "tr"}', [ 'row' ] ],
  [ '{"name": "tbody"}', [ 'rowgroup' ] ],
  [ '{"name": "tfoot"}', [ 'rowgroup' ] ],
  [ '{"name": "thead"}', [ 'rowgroup' ] ],
  [ '{"name": "th", "attributes": [ {"name": "scope", "value": "row"}] }', [ 'rowheader' ] ],
  [ '{"name": "input", "attributes": [ {"name": "type", "value": "search"}] }', [ 'searchbox' ] ],
  [ '{"name": "hr"}', [ 'separator' ] ],
  [ '{"name": "dt"}', [ 'term' ] ],
  [ '{"name": "dfn"}', [ 'term' ] ],
  [ '{"name": "textarea"}', [ 'textbox' ] ],
  [ '{"name": "input", "attributes": [ {"name": "type", "value": "text"}] }', [ 'textbox' ] ],
]

The map of elements to roles is keyed by an HTML concept. An HTML concept corresponds to the baseConcepts and relatedConcepts of an ARIA role. Concepts exist in the context of a module: HTML, XForms, Dublin Core, for example. The concept representation is an object literal with a name property (the element name) and an optional attributes array.

The roles are provided in a Set.

Role to element

import { roleElements } from 'aria-query';

ARIA roles are mapped to the HTML Elements with the same inherent role. Some roles, such as columnheader are only mapped to an HTML element that expresses specific attributes. In the case of <input>, the element often requires a type attribute to map to an ARIA role.

[
  [ 'article', [ {"name": "article"} ] ],
  [ 'button', [ {"name": "button"} ] ],
  [ 'cell', [ {"name": "td"} ] ],
  [ 'checkbox', [ {"name": "input", "attributes": [ {"name": "type", "value": "checkbox"}] } ] ],
  [ 'columnheader', [ {"name": "th"} ] ],
  [ 'combobox', [ {"name": "select"} ] ],
  [ 'command', [ {"name": "menuitem"} ] ],
  [ 'definition', [ {"name": "dd"}', '{"name": "dfn"} ] ],
  [ 'figure', [ {"name": "figure"} ] ],
  [ 'form', [ {"name": "form"} ] ],
  [ 'grid', [ {"name": "table"} ] ],
  [ 'gridcell', [ {"name": "td"} ] ],
  [ 'group', [ {"name": "fieldset"} ] ],
  [ 'heading', [ {"name": "h1"}', '{"name": "h2"}', '{"name": "h3"}', '{"name": "h4"}',  '{"name": "h5"}', '{"name": "h6"} ] ],
  [ 'img', [ {"name": "img"} ] ],
  [ 'link', [ {"name": "a"}', '{"name": "link"} ] ],
  [ 'list', [ {"name": "ol"}', '{"name": "ul"} ] ],
  [ 'listbox', [ {"name": "select"} ] ],
  [ 'listitem', [ {"name": "li"} ] ],
  [ 'menuitem', [ {"name": "menuitem"} ] ],
  [ 'navigation', [ {"name": "nav"} ] ],
  [ 'option', [ {"name": "option"} ] ],
  [ 'radio', [ {"name": "input", "attributes": [ {"name": "type", "value": "radio"}] } ] ],
  [ 'region', [ {"name": "frame"} ] ],
  [ 'roletype', [ {"name": "rel"} ] ],
  [ 'row', [ {"name": "tr"} ] ],
  [ 'rowgroup', [ {"name": "tbody"}', '{"name": "tfoot"}', '{"name": "thead"} ] ],
  [ 'rowheader', [ {"name": "th", "attributes": [ {"name": "scope", "value": "row"}] }, {"name": "th", "attributes": [ {"name": "scope", "value": "rowgroup"}] } ] ],
  [ 'searchbox', [ {"name": "input", "attributes": [ {"name": "type", "value": "search"}] } ] ],
  [ 'separator', [ {"name": "hr"} ] ],
  [ 'table', [ {"name": "table"} ] ],
  [ 'term', [ {"name": "dt"} ] ],
  [ 'textbox', [ {"name": "textarea"}', '{"name": "input", "attributes": [ {"name": "type", "value": "text"}] } ] ],
]

License

Copyright (c) 2021 A11yance

aria-query's People

Contributors

aabenoja avatar benmccann avatar bennypowers avatar cycomachead avatar darekkay avatar dependabot[bot] avatar eps1lon avatar gtm-nayan avatar jessebeach avatar jlp-craigmorten avatar marcosvega91 avatar mlc-kurosawatakeshi avatar nschonni avatar timvdlippe avatar wyattdanger avatar xi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aria-query's Issues

Release 5.0.3

The last release (v5.0.2), did not contain various version bumps made on Aug 25th, in particular, #395 bumped several @babel packages, possible enough to resolve this warning:

core-js-pure@npm:3.21.1 is deprecated: core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.

(seen while install dependencies for https://github.com/algolia/docsearch locally)

Thanks!

Missing `title` attribute for region role

Looking at the regionRole file, it's missing a check for the title attribute:
https://github.dev/A11yance/aria-query/blob/b656f28b9ec55bbf263db86cb1afa3b1d1efcf5d/src/etc/roles/literal/regionRole.js

All it looks for is aria-label and aria-labelledby. title is also a valid accessible name.

Proof:
image

I thought this issue was originally from @testing-library/dom (testing-library/dom-testing-library#1146), but after reading through the source, this is the library that needs changed.

Not 100% sure, but we may also need to add this to formRole as well:
https://github.dev/A11yance/aria-query/blob/b656f28b9ec55bbf263db86cb1afa3b1d1efcf5d/src/etc/roles/literal/formRole.js

Copyright Attribution

Hi,

Need a help. We are trying to use @testing-library/react which uses this library as nested dependency. To use "@testing-library/react" we also need to provide attribution for all the nested dependencies (as per Apache license terms). However I am not able to locate copyright statement in the repository. It will be very helpful if you can add a copyright statement in readme or in license file.

Thanks, Raja

Accessible Role for `summary` Element

Is there any possibility of aria-query adding an accessible role for the summary element? As the native, accessible, JS-free solution for "Accordion Components", the details and summary elements are incredibly important when it comes to testing web apps (for instance, with the Testing Library tools or with Playwright). As I pointed out in Playwright's Repository, many user agents are already giving the summary element some kind of "button-like" role in the end. So it would be great if aria-query could expose summary elements as buttons too.

That said, I don't know how aria-query feels about agents driving the role instead of the spec.

(Note: I opened this as its own issue since #44 didn't seem conclusive.)

Broken index.js, missing babel helper

I have a problem with this library.
Index.js requires @babel/runtime-corejs3/helpers/interopRequireDefault but in current version of babel/runtime-corejs3 there is no such file.

`
"use strict";

var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");

var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");

_Object$defineProperty(exports, "__esModule", {
value: true
});

exports.roleElements = exports.elementRoles = exports.roles = exports.dom = exports.aria = void 0;

var _ariaPropsMap = _interopRequireDefault(require("./ariaPropsMap"));

var _domMap = _interopRequireDefault(require("./domMap"));

var _rolesMap = _interopRequireDefault(require("./rolesMap"));

var _elementRoleMap = _interopRequireDefault(require("./elementRoleMap"));

var _roleElementMap = _interopRequireDefault(require("./roleElementMap"));

var aria = _ariaPropsMap.default;
exports.aria = aria;
var dom = _domMap.default;
exports.dom = dom;
var roles = _rolesMap.default;
exports.roles = roles;
var elementRoles = _elementRoleMap.default;
exports.elementRoles = elementRoles;
var roleElements = _roleElementMap.default;
exports.roleElements = roleElements;
`

Currently aria-query uses "@babel/runtime-corejs3": "^7.10.2" but there is no file with the name interopRequireDefault even no helpers directory:
https://github.com/babel/babel/tree/v7.10.2/packages/runtime-corejs3/helpers

Support for landmark roles

Hello,
as described in this issue from dom-testing-library, the <header> element role is not identified correctly. According to the specs, the implicit role for <header> is banner.

As noticed by @OCmilo, aria-query does not handle any landmark roles. Is there a plan to support them? I could also have a look into this.

Incorrect element role mappings

The mappings for hgroup, s, and search elements are missing or are incorrect/outdated.

Updates needed:

  • the hgroup element should have the group role and not the generic role.
  • the s element should have the deletion role.
  • the search element should have the search role.

See https://www.w3.org/TR/html-aria/#docconformance:

HTML element Implicit ARIA semantics (explicitly assigning these in markup is NOT RECOMMENDED) ARIA role, state and property allowances
hgroup role=group Any role, though group SHOULD NOT be used.

Otherwise, global aria-* attributes and any aria-* attributes applicable to the allowed roles.
s role=deletion Any role, though deletion is NOT RECOMMENDED.

Naming Prohibited

Otherwise, global aria-* attributes and any aria-* attributes applicable to the allowed roles.
search role=search Roles: form, group, none, presentation or region. (search is also allowed, but NOT RECOMMENDED.)

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

Other relevant specs:

See also Web Platform Tests for HTML-AAM roles.

Image and combobox are not being detected by the getByRole.

Describe the bug

Image tagged element and combobox are not being detected by the getByRole query.

Aria-query previous working version - 5.1.3
Aria-query upgraded version version - 5.2.1

<img src="/rcore/static/media/AccessDenied_Icon.db53e967.svg" alt="" class="sc-lmJFLr hLGeOl sc-jRBLiq ghkJEk" id="">

Previously before the 'aria-query' upgrade, getByRole query will detect the above element. But after the upgrade this query is not able to detect the above element.

We have many test cases that are breaking due to above issue . This behavior is happening since v5.2.1. Please fix the issue above issue.

5.2.0 regression: Switch to dequal did not propagate into build

In #497 was the switch from deep-equal to dequal.
This made our build fail because the dependency was removed, but it is still used in the build.
(in the source code everything is fine)

https://unpkg.com/browse/[email protected]/lib/elementRoleMap.js
on line 7

Change which made the build fail in our repo: https://github.com/ecamp/ecamp3/pull/3514/files#r1227772593

Failed build: https://github.com/ecamp/ecamp3/actions/runs/5250853099/jobs/9485218864?pr=3514

Error message that others find this issue:

 Cannot find module 'deep-equal' from 'node_modules/aria-query/lib/elementRoleMap.js'

Specification version clarification

In the README it says:

Programmatic access to the WAI-ARIA 1.2 Roles Model. This package tracks the stable editor's draft (last update: 21 July 2020).

However the link takes you to a WAI-ARIA 1.3 spec page. Is this repo now tracking 1.3 editorโ€™s draft, or is the link incorrect?

Appreciate any clarification!

`elementRoleMaps` includes conflicting mapping for complementary

Hi! I'm looking at tests/src/elementRoleMap-test.js, and I noticed that the entries for elementRoleMaps includes both:

[{"name": "aside"}, ["complementary"]],

and later

[{"name": "aside"}, ["generic"]],

These seem to conflict with each other.

Should [{"name": "aside"}, ["complementary"]] be removed? I think this is coming from complementaryRole.js.

Tangentially, which document should I be looking at as the source of truth? I saw both https://www.w3.org/TR/html-aam-1.0/ and https://www.w3.org/TR/wai-aria-1.2/#roles referenced, and wasn't sure which one. Thank you!

Enrich property info

I was wondering if information like type (property/state), short and long descriptions, and value information (type, description of behavior for each value, default value, etc) could be added to the property model. It would be very useful and I would be happy to work in a PR!

input type="search" isn't considered of role "searchbox"

Previously considered the following code as of role "searchbox" but it is now considered as "textbox"

<input type="search" />

Now I have to add a list attribute to have the input with the implicit role of "searchbox".

<input type="search" list="foo" />

Shouldn't this be considered a breaking change? I have an entire project that relies on the previous behavior.

As from MDN Technical summary

Implicit ARIA role

  • type=search
    • with no list attribute: searchbox
    • with list attribute:combobox

This behavior is happening since v5.2.0

Missing attributes

I couldn't quite figure out if this was intentional or not, but three of the ARIA 1.1 props aren't defined (as in, they are listed in some of the roles, but they're not included in the ariaPropsMap. It certainly doesn't seem intentional. The three props are aria-details, aria-errormessage and aria-describedat.

Usability issues

I am the author of aria-api, a library to provide programmatic access to ARIA-related information from JavaScript. For example, my library allows you to call something like aria.querySelectorAll(element, 'landmark'). In order to implement this, I need access to a lot of the information that is available from this project. However, I chose not to use aria-query for now.

I would like to explain why I decided that way and maybe start a discussion on how aria-query could become more useful for developers in general. I understand that a lot of these points will be highly subjective, but still they may be interesting feedback for you.

  • I personally dislike complicated build setups, so I do not use ES6 in many of my projects yet. Is it possible to include a ES5 build in the npm package?
  • I do not do valdation in my project, so I do not need requiredProps and the like. Using aria-query would increase the bundle file size for no reason. As far as I understand, tree shaking would not help much either. Is it possible to provide different builds for different use cases?
  • I need to be able to get the (implicit) role of an HTML element. The concept of "related concepts" seems not to be sufficient to get the implicit role. Is it possible to include information required to get the implicit role of an HTML element?
  • I need to know whether an HTML element has a specific role. Note that roles are hierarchical, so an element can have more than one role. The information for that is available, but the datastructures do not make it particularily easy to get to it. Is it possible to provide simple access to all super-roles, e.g. superClassRecursive?

Add what ARIA module / version a feature is part of

I was wondering if it would be possible to indicate what version of ARIA a role/prop is supported in. For instance, aria-grabbed and aria-dropeffect are deprecated in ARIA 1.1. Also there are of course things that got introduced in ARIA 1.1 that aren't part of 1.0. It'd be helpful if that information was available in aria-query.

This may also help make this project more future proof. Right now neither the graphics module nor the DPUB module seem to be included, which is something that would be a nice addition.

Extra files published with 5.0.0

It looks like [email protected] includes a duplicate of almost every file with ย 2 appended after the file's basename. The presence of files with a space in them breaks projects that build with Bazel, and fixing that requires some gnarly patches to be applied after npm install runs.

Is there any chance you could publish a 5.0.1 without those files? They're not committed so I can't send a Pull Request ๐Ÿ˜„


$ curl https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz | tar tzvf -

-rw-r--r--  0 0      0       10236 Oct 26  1985 package/LICENSE
-rw-r--r--  0 0      0         646 Oct 26  1985 package/lib/etc/roles/literal/alertdialogRole 2.js
-rw-r--r--  0 0      0         646 Oct 26  1985 package/lib/etc/roles/literal/alertdialogRole.js
-rw-r--r--  0 0      0         651 Oct 26  1985 package/lib/etc/roles/literal/alertRole 2.js
-rw-r--r--  0 0      0         651 Oct 26  1985 package/lib/etc/roles/literal/alertRole.js
-rw-r--r--  0 0      0         773 Oct 26  1985 package/lib/etc/roles/literal/applicationRole 2.js
-rw-r--r--  0 0      0         773 Oct 26  1985 package/lib/etc/roles/literal/applicationRole.js
-rw-r--r--  0 0      0        1671 Oct 26  1985 package/lib/etc/roles/ariaAbstractRoles.js
-rw-r--r--  0 0      0        5192 Oct 26  1985 package/lib/etc/roles/ariaDpubRoles.js
-rw-r--r--  0 0      0        9595 Oct 26  1985 package/lib/etc/roles/ariaLiteralRoles.js
-rw-r--r--  0 0      0        5068 Oct 26  1985 package/lib/ariaPropsMap.js
-rw-r--r--  0 0      0         652 Oct 26  1985 package/lib/etc/roles/literal/articleRole 2.js
-rw-r--r--  0 0      0         652 Oct 26  1985 package/lib/etc/roles/literal/articleRole.js
-rw-r--r--  0 0      0         659 Oct 26  1985 package/lib/etc/roles/literal/bannerRole 2.js
-rw-r--r--  0 0      0         659 Oct 26  1985 package/lib/etc/roles/literal/bannerRole.js
-rw-r--r--  0 0      0         534 Oct 26  1985 package/lib/etc/roles/literal/blockquoteRole 2.js
-rw-r--r--  0 0      0         534 Oct 26  1985 package/lib/etc/roles/literal/blockquoteRole.js
-rw-r--r--  0 0      0        1978 Oct 26  1985 package/lib/etc/roles/literal/buttonRole 2.js
-rw-r--r--  0 0      0        1978 Oct 26  1985 package/lib/etc/roles/literal/buttonRole.js
-rw-r--r--  0 0      0         613 Oct 26  1985 package/lib/etc/roles/literal/captionRole 2.js
-rw-r--r--  0 0      0         613 Oct 26  1985 package/lib/etc/roles/literal/captionRole.js
-rw-r--r--  0 0      0         759 Oct 26  1985 package/lib/etc/roles/literal/cellRole 2.js
-rw-r--r--  0 0      0         759 Oct 26  1985 package/lib/etc/roles/literal/cellRole.js
-rw-r--r--  0 0      0         943 Oct 26  1985 package/lib/etc/roles/literal/checkboxRole 2.js
-rw-r--r--  0 0      0         943 Oct 26  1985 package/lib/etc/roles/literal/checkboxRole.js
-rw-r--r--  0 0      0         557 Oct 26  1985 package/lib/etc/roles/literal/codeRole 2.js
-rw-r--r--  0 0      0         557 Oct 26  1985 package/lib/etc/roles/literal/codeRole.js
-rw-r--r--  0 0      0         858 Oct 26  1985 package/lib/etc/roles/literal/columnheaderRole 2.js
-rw-r--r--  0 0      0         858 Oct 26  1985 package/lib/etc/roles/literal/columnheaderRole.js
-rw-r--r--  0 0      0        2563 Oct 26  1985 package/lib/etc/roles/literal/comboboxRole 2.js
-rw-r--r--  0 0      0        2563 Oct 26  1985 package/lib/etc/roles/literal/comboboxRole.js
-rw-r--r--  0 0      0         582 Oct 26  1985 package/lib/etc/roles/abstract/commandRole 2.js
-rw-r--r--  0 0      0         582 Oct 26  1985 package/lib/etc/roles/abstract/commandRole.js
-rw-r--r--  0 0      0         618 Oct 26  1985 package/lib/etc/roles/literal/complementaryRole 2.js
-rw-r--r--  0 0      0         618 Oct 26  1985 package/lib/etc/roles/literal/complementaryRole.js
-rw-r--r--  0 0      0         581 Oct 26  1985 package/lib/etc/roles/abstract/compositeRole 2.js
-rw-r--r--  0 0      0         581 Oct 26  1985 package/lib/etc/roles/abstract/compositeRole.js
-rw-r--r--  0 0      0         669 Oct 26  1985 package/lib/etc/roles/literal/contentinfoRole 2.js
-rw-r--r--  0 0      0         669 Oct 26  1985 package/lib/etc/roles/literal/contentinfoRole.js
-rw-r--r--  0 0      0         597 Oct 26  1985 package/lib/etc/roles/literal/definitionRole 2.js
-rw-r--r--  0 0      0         597 Oct 26  1985 package/lib/etc/roles/literal/definitionRole.js
-rw-r--r--  0 0      0         565 Oct 26  1985 package/lib/etc/roles/literal/deletionRole 2.js
-rw-r--r--  0 0      0         565 Oct 26  1985 package/lib/etc/roles/literal/deletionRole.js
-rw-r--r--  0 0      0         578 Oct 26  1985 package/lib/etc/roles/literal/dialogRole 2.js
-rw-r--r--  0 0      0         578 Oct 26  1985 package/lib/etc/roles/literal/dialogRole.js
-rw-r--r--  0 0      0         571 Oct 26  1985 package/lib/etc/roles/literal/directoryRole 2.js
-rw-r--r--  0 0      0         571 Oct 26  1985 package/lib/etc/roles/literal/directoryRole.js
-rw-r--r--  0 0      0         756 Oct 26  1985 package/lib/etc/roles/dpub/docAbstractRole 2.js
-rw-r--r--  0 0      0         756 Oct 26  1985 package/lib/etc/roles/dpub/docAbstractRole.js
-rw-r--r--  0 0      0         789 Oct 26  1985 package/lib/etc/roles/dpub/docAcknowledgmentsRole.js
-rw-r--r--  0 0      0         771 Oct 26  1985 package/lib/etc/roles/dpub/docAfterwordRole.js
-rw-r--r--  0 0      0         768 Oct 26  1985 package/lib/etc/roles/dpub/docAppendixRole.js
-rw-r--r--  0 0      0         690 Oct 26  1985 package/lib/etc/roles/dpub/docBacklinkRole.js
-rw-r--r--  0 0      0         817 Oct 26  1985 package/lib/etc/roles/dpub/docBiblioentryRole.js
-rw-r--r--  0 0      0         799 Oct 26  1985 package/lib/etc/roles/dpub/docBibliographyRole.js
-rw-r--r--  0 0      0         694 Oct 26  1985 package/lib/etc/roles/dpub/docBibliorefRole.js
-rw-r--r--  0 0      0         765 Oct 26  1985 package/lib/etc/roles/dpub/docChapterRole.js
-rw-r--r--  0 0      0         756 Oct 26  1985 package/lib/etc/roles/dpub/docColophonRole.js
-rw-r--r--  0 0      0         774 Oct 26  1985 package/lib/etc/roles/dpub/docConclusionRole.js
-rw-r--r--  0 0      0         754 Oct 26  1985 package/lib/etc/roles/dpub/docCoverRole.js
-rw-r--r--  0 0      0         750 Oct 26  1985 package/lib/etc/roles/dpub/docCreditRole.js
-rw-r--r--  0 0      0         765 Oct 26  1985 package/lib/etc/roles/dpub/docCreditsRole.js
-rw-r--r--  0 0      0         762 Oct 26  1985 package/lib/etc/roles/dpub/docDedicationRole.js
-rw-r--r--  0 0      0         794 Oct 26  1985 package/lib/etc/roles/dpub/docEndnoteRole.js
-rw-r--r--  0 0      0         784 Oct 26  1985 package/lib/etc/roles/dpub/docEndnotesRole.js
-rw-r--r--  0 0      0         756 Oct 26  1985 package/lib/etc/roles/dpub/docEpigraphRole.js
-rw-r--r--  0 0      0         768 Oct 26  1985 package/lib/etc/roles/dpub/docEpilogueRole.js
-rw-r--r--  0 0      0         762 Oct 26  1985 package/lib/etc/roles/dpub/docErrataRole.js
-rw-r--r--  0 0      0         674 Oct 26  1985 package/lib/etc/roles/dpub/docExampleRole.js
-rw-r--r--  0 0      0         756 Oct 26  1985 package/lib/etc/roles/dpub/docFootnoteRole.js
-rw-r--r--  0 0      0         768 Oct 26  1985 package/lib/etc/roles/dpub/docForewordRole.js
-rw-r--r--  0 0      0         792 Oct 26  1985 package/lib/etc/roles/dpub/docGlossaryRole.js
-rw-r--r--  0 0      0         691 Oct 26  1985 package/lib/etc/roles/dpub/docGlossrefRole.js
-rw-r--r--  0 0      0         773 Oct 26  1985 package/lib/etc/roles/dpub/docIndexRole.js
-rw-r--r--  0 0      0         780 Oct 26  1985 package/lib/etc/roles/dpub/docIntroductionRole.js
-rw-r--r--  0 0      0         688 Oct 26  1985 package/lib/etc/roles/dpub/docNoterefRole.js
-rw-r--r--  0 0      0         758 Oct 26  1985 package/lib/etc/roles/dpub/docNoticeRole.js
-rw-r--r--  0 0      0         732 Oct 26  1985 package/lib/etc/roles/dpub/docPagebreakRole.js
-rw-r--r--  0 0      0         783 Oct 26  1985 package/lib/etc/roles/dpub/docPagelistRole.js
-rw-r--r--  0 0      0         755 Oct 26  1985 package/lib/etc/roles/dpub/docPartRole.js
-rw-r--r--  0 0      0         765 Oct 26  1985 package/lib/etc/roles/dpub/docPrefaceRole.js
-rw-r--r--  0 0      0         768 Oct 26  1985 package/lib/etc/roles/dpub/docPrologueRole.js
-rw-r--r--  0 0      0         591 Oct 26  1985 package/lib/etc/roles/dpub/docPullquoteRole.js
-rw-r--r--  0 0      0         741 Oct 26  1985 package/lib/etc/roles/dpub/docQnaRole.js
-rw-r--r--  0 0      0         760 Oct 26  1985 package/lib/etc/roles/dpub/docSubtitleRole.js
-rw-r--r--  0 0      0         750 Oct 26  1985 package/lib/etc/roles/dpub/docTipRole.js
-rw-r--r--  0 0      0         767 Oct 26  1985 package/lib/etc/roles/dpub/docTocRole.js
-rw-r--r--  0 0      0         660 Oct 26  1985 package/lib/etc/roles/literal/documentRole 2.js
-rw-r--r--  0 0      0         660 Oct 26  1985 package/lib/etc/roles/literal/documentRole.js
-rw-r--r--  0 0      0        6639 Oct 26  1985 package/lib/domMap.js
-rw-r--r--  0 0      0        3821 Oct 26  1985 package/lib/elementRoleMap.js
-rw-r--r--  0 0      0         565 Oct 26  1985 package/lib/etc/roles/literal/emphasisRole 2.js
-rw-r--r--  0 0      0         565 Oct 26  1985 package/lib/etc/roles/literal/emphasisRole.js
-rw-r--r--  0 0      0         541 Oct 26  1985 package/lib/etc/roles/literal/feedRole 2.js
-rw-r--r--  0 0      0         541 Oct 26  1985 package/lib/etc/roles/literal/feedRole.js
-rw-r--r--  0 0      0         593 Oct 26  1985 package/lib/etc/roles/literal/figureRole 2.js
-rw-r--r--  0 0      0         593 Oct 26  1985 package/lib/etc/roles/literal/figureRole.js
-rw-r--r--  0 0      0         996 Oct 26  1985 package/lib/etc/roles/literal/formRole 2.js
-rw-r--r--  0 0      0         996 Oct 26  1985 package/lib/etc/roles/literal/formRole.js
-rw-r--r--  0 0      0         683 Oct 26  1985 package/lib/etc/roles/literal/genericRole 2.js
-rw-r--r--  0 0      0         683 Oct 26  1985 package/lib/etc/roles/literal/genericRole.js
-rw-r--r--  0 0      0         947 Oct 26  1985 package/lib/etc/roles/literal/gridcellRole 2.js
-rw-r--r--  0 0      0         947 Oct 26  1985 package/lib/etc/roles/literal/gridcellRole.js
-rw-r--r--  0 0      0         799 Oct 26  1985 package/lib/etc/roles/literal/gridRole 2.js
-rw-r--r--  0 0      0         799 Oct 26  1985 package/lib/etc/roles/literal/gridRole.js
-rw-r--r--  0 0      0         798 Oct 26  1985 package/lib/etc/roles/literal/groupRole 2.js
-rw-r--r--  0 0      0         798 Oct 26  1985 package/lib/etc/roles/literal/groupRole.js
-rw-r--r--  0 0      0         981 Oct 26  1985 package/lib/etc/roles/literal/headingRole 2.js
-rw-r--r--  0 0      0         981 Oct 26  1985 package/lib/etc/roles/literal/headingRole.js
-rw-r--r--  0 0      0         886 Oct 26  1985 package/lib/etc/roles/literal/imgRole 2.js
-rw-r--r--  0 0      0         886 Oct 26  1985 package/lib/etc/roles/literal/imgRole.js
-rw-r--r--  0 0      0         941 Oct 26  1985 package/lib/index 2.js
-rw-r--r--  0 0      0         941 Oct 26  1985 package/lib/index.js
-rw-r--r--  0 0      0         606 Oct 26  1985 package/lib/etc/roles/abstract/inputRole.js
-rw-r--r--  0 0      0         567 Oct 26  1985 package/lib/etc/roles/literal/insertionRole 2.js
-rw-r--r--  0 0      0         567 Oct 26  1985 package/lib/etc/roles/literal/insertionRole.js
-rw-r--r--  0 0      0         529 Oct 26  1985 package/lib/etc/roles/abstract/landmarkRole.js
-rw-r--r--  0 0      0         965 Oct 26  1985 package/lib/etc/roles/literal/linkRole 2.js
-rw-r--r--  0 0      0         965 Oct 26  1985 package/lib/etc/roles/literal/linkRole.js
-rw-r--r--  0 0      0        1502 Oct 26  1985 package/lib/etc/roles/literal/listboxRole 2.js
-rw-r--r--  0 0      0        1502 Oct 26  1985 package/lib/etc/roles/literal/listboxRole.js
-rw-r--r--  0 0      0         839 Oct 26  1985 package/lib/etc/roles/literal/listitemRole 2.js
-rw-r--r--  0 0      0         839 Oct 26  1985 package/lib/etc/roles/literal/listitemRole.js
-rw-r--r--  0 0      0         729 Oct 26  1985 package/lib/etc/roles/literal/listRole 2.js
-rw-r--r--  0 0      0         729 Oct 26  1985 package/lib/etc/roles/literal/listRole.js
-rw-r--r--  0 0      0         549 Oct 26  1985 package/lib/etc/roles/literal/logRole 2.js
-rw-r--r--  0 0      0         549 Oct 26  1985 package/lib/etc/roles/literal/logRole.js
-rw-r--r--  0 0      0         599 Oct 26  1985 package/lib/etc/roles/literal/mainRole 2.js
-rw-r--r--  0 0      0         599 Oct 26  1985 package/lib/etc/roles/literal/mainRole.js
-rw-r--r--  0 0      0         527 Oct 26  1985 package/lib/etc/roles/literal/marqueeRole 2.js
-rw-r--r--  0 0      0         527 Oct 26  1985 package/lib/etc/roles/literal/marqueeRole.js
-rw-r--r--  0 0      0         587 Oct 26  1985 package/lib/etc/roles/literal/mathRole 2.js
-rw-r--r--  0 0      0         587 Oct 26  1985 package/lib/etc/roles/literal/mathRole.js
-rw-r--r--  0 0      0         853 Oct 26  1985 package/lib/etc/roles/literal/menubarRole 2.js
-rw-r--r--  0 0      0         853 Oct 26  1985 package/lib/etc/roles/literal/menubarRole.js
-rw-r--r--  0 0      0         759 Oct 26  1985 package/lib/etc/roles/literal/menuitemcheckboxRole 2.js
-rw-r--r--  0 0      0         759 Oct 26  1985 package/lib/etc/roles/literal/menuitemcheckboxRole.js
-rw-r--r--  0 0      0         835 Oct 26  1985 package/lib/etc/roles/literal/menuitemradioRole 2.js
-rw-r--r--  0 0      0         835 Oct 26  1985 package/lib/etc/roles/literal/menuitemradioRole.js
-rw-r--r--  0 0      0        1007 Oct 26  1985 package/lib/etc/roles/literal/menuitemRole 2.js
-rw-r--r--  0 0      0        1007 Oct 26  1985 package/lib/etc/roles/literal/menuitemRole.js
-rw-r--r--  0 0      0        1033 Oct 26  1985 package/lib/etc/roles/literal/menuRole 2.js
-rw-r--r--  0 0      0        1033 Oct 26  1985 package/lib/etc/roles/literal/menuRole.js
-rw-r--r--  0 0      0         633 Oct 26  1985 package/lib/etc/roles/literal/meterRole 2.js
-rw-r--r--  0 0      0         633 Oct 26  1985 package/lib/etc/roles/literal/meterRole.js
-rw-r--r--  0 0      0         610 Oct 26  1985 package/lib/etc/roles/literal/navigationRole 2.js
-rw-r--r--  0 0      0         610 Oct 26  1985 package/lib/etc/roles/literal/navigationRole.js
-rw-r--r--  0 0      0         478 Oct 26  1985 package/lib/etc/roles/literal/noneRole 2.js
-rw-r--r--  0 0      0         478 Oct 26  1985 package/lib/etc/roles/literal/noneRole.js
-rw-r--r--  0 0      0         522 Oct 26  1985 package/lib/etc/roles/literal/noteRole 2.js
-rw-r--r--  0 0      0         522 Oct 26  1985 package/lib/etc/roles/literal/noteRole.js
-rw-r--r--  0 0      0         881 Oct 26  1985 package/lib/etc/roles/literal/optionRole 2.js
-rw-r--r--  0 0      0         881 Oct 26  1985 package/lib/etc/roles/literal/optionRole.js
-rw-r--r--  0 0      0         567 Oct 26  1985 package/lib/etc/roles/literal/paragraphRole 2.js
-rw-r--r--  0 0      0         567 Oct 26  1985 package/lib/etc/roles/literal/paragraphRole.js
-rw-r--r--  0 0      0         562 Oct 26  1985 package/lib/etc/roles/literal/presentationRole 2.js
-rw-r--r--  0 0      0         562 Oct 26  1985 package/lib/etc/roles/literal/presentationRole.js
-rw-r--r--  0 0      0         724 Oct 26  1985 package/lib/etc/roles/literal/progressbarRole 2.js
-rw-r--r--  0 0      0         724 Oct 26  1985 package/lib/etc/roles/literal/progressbarRole.js
-rw-r--r--  0 0      0         786 Oct 26  1985 package/lib/etc/roles/literal/radiogroupRole 2.js
-rw-r--r--  0 0      0         786 Oct 26  1985 package/lib/etc/roles/literal/radiogroupRole.js
-rw-r--r--  0 0      0         780 Oct 26  1985 package/lib/etc/roles/literal/radioRole 2.js
-rw-r--r--  0 0      0         780 Oct 26  1985 package/lib/etc/roles/literal/radioRole.js
-rw-r--r--  0 0      0         595 Oct 26  1985 package/lib/etc/roles/abstract/rangeRole.js
-rw-r--r--  0 0      0        1012 Oct 26  1985 package/lib/etc/roles/literal/regionRole 2.js
-rw-r--r--  0 0      0        1012 Oct 26  1985 package/lib/etc/roles/literal/regionRole.js
-rw-r--r--  0 0      0        3471 Oct 26  1985 package/lib/roleElementMap 2.js
-rw-r--r--  0 0      0        3471 Oct 26  1985 package/lib/roleElementMap.js
-rw-r--r--  0 0      0        5637 Oct 26  1985 package/lib/rolesMap 2.js
-rw-r--r--  0 0      0        5637 Oct 26  1985 package/lib/rolesMap.js
-rw-r--r--  0 0      0        1146 Oct 26  1985 package/lib/etc/roles/abstract/roletypeRole.js
-rw-r--r--  0 0      0         794 Oct 26  1985 package/lib/etc/roles/literal/rowgroupRole 2.js
-rw-r--r--  0 0      0         794 Oct 26  1985 package/lib/etc/roles/literal/rowgroupRole.js
-rw-r--r--  0 0      0         860 Oct 26  1985 package/lib/etc/roles/literal/rowheaderRole 2.js
-rw-r--r--  0 0      0         860 Oct 26  1985 package/lib/etc/roles/literal/rowheaderRole.js
-rw-r--r--  0 0      0         948 Oct 26  1985 package/lib/etc/roles/literal/rowRole 2.js
-rw-r--r--  0 0      0         948 Oct 26  1985 package/lib/etc/roles/literal/rowRole.js
-rw-r--r--  0 0      0         756 Oct 26  1985 package/lib/etc/roles/literal/scrollbarRole 2.js
-rw-r--r--  0 0      0         756 Oct 26  1985 package/lib/etc/roles/literal/scrollbarRole.js
-rw-r--r--  0 0      0         748 Oct 26  1985 package/lib/etc/roles/literal/searchboxRole 2.js
-rw-r--r--  0 0      0         748 Oct 26  1985 package/lib/etc/roles/literal/searchboxRole.js
-rw-r--r--  0 0      0         538 Oct 26  1985 package/lib/etc/roles/literal/searchRole 2.js
-rw-r--r--  0 0      0         538 Oct 26  1985 package/lib/etc/roles/literal/searchRole.js
-rw-r--r--  0 0      0         536 Oct 26  1985 package/lib/etc/roles/abstract/sectionheadRole.js
-rw-r--r--  0 0      0         714 Oct 26  1985 package/lib/etc/roles/abstract/sectionRole.js
-rw-r--r--  0 0      0         603 Oct 26  1985 package/lib/etc/roles/abstract/selectRole.js
-rw-r--r--  0 0      0         759 Oct 26  1985 package/lib/etc/roles/literal/separatorRole 2.js
-rw-r--r--  0 0      0         759 Oct 26  1985 package/lib/etc/roles/literal/separatorRole.js
-rw-r--r--  0 0      0         959 Oct 26  1985 package/lib/etc/roles/literal/sliderRole 2.js
-rw-r--r--  0 0      0         959 Oct 26  1985 package/lib/etc/roles/literal/sliderRole.js
-rw-r--r--  0 0      0         911 Oct 26  1985 package/lib/etc/roles/literal/spinbuttonRole 2.js
-rw-r--r--  0 0      0         911 Oct 26  1985 package/lib/etc/roles/literal/spinbuttonRole.js
-rw-r--r--  0 0      0         649 Oct 26  1985 package/lib/etc/roles/literal/statusRole 2.js
-rw-r--r--  0 0      0         649 Oct 26  1985 package/lib/etc/roles/literal/statusRole.js
-rw-r--r--  0 0      0         561 Oct 26  1985 package/lib/etc/roles/literal/strongRole 2.js
-rw-r--r--  0 0      0         561 Oct 26  1985 package/lib/etc/roles/literal/strongRole.js
-rw-r--r--  0 0      0         499 Oct 26  1985 package/lib/etc/roles/abstract/structureRole.js
-rw-r--r--  0 0      0         567 Oct 26  1985 package/lib/etc/roles/literal/subscriptRole 2.js
-rw-r--r--  0 0      0         567 Oct 26  1985 package/lib/etc/roles/literal/subscriptRole.js
-rw-r--r--  0 0      0         571 Oct 26  1985 package/lib/etc/roles/literal/superscriptRole 2.js
-rw-r--r--  0 0      0         571 Oct 26  1985 package/lib/etc/roles/literal/superscriptRole.js
-rw-r--r--  0 0      0         638 Oct 26  1985 package/lib/etc/roles/literal/switchRole 2.js
-rw-r--r--  0 0      0         638 Oct 26  1985 package/lib/etc/roles/literal/switchRole.js
-rw-r--r--  0 0      0         673 Oct 26  1985 package/lib/etc/roles/literal/tableRole 2.js
-rw-r--r--  0 0      0         673 Oct 26  1985 package/lib/etc/roles/literal/tableRole.js
-rw-r--r--  0 0      0         699 Oct 26  1985 package/lib/etc/roles/literal/tablistRole 2.js
-rw-r--r--  0 0      0         699 Oct 26  1985 package/lib/etc/roles/literal/tablistRole.js
-rw-r--r--  0 0      0         529 Oct 26  1985 package/lib/etc/roles/literal/tabpanelRole 2.js
-rw-r--r--  0 0      0         529 Oct 26  1985 package/lib/etc/roles/literal/tabpanelRole.js
-rw-r--r--  0 0      0         743 Oct 26  1985 package/lib/etc/roles/literal/tabRole 2.js
-rw-r--r--  0 0      0         743 Oct 26  1985 package/lib/etc/roles/literal/tabRole.js
-rw-r--r--  0 0      0         651 Oct 26  1985 package/lib/etc/roles/literal/termRole 2.js
-rw-r--r--  0 0      0         651 Oct 26  1985 package/lib/etc/roles/literal/termRole.js
-rw-r--r--  0 0      0        1992 Oct 26  1985 package/lib/etc/roles/literal/textboxRole 2.js
-rw-r--r--  0 0      0        1992 Oct 26  1985 package/lib/etc/roles/literal/textboxRole.js
-rw-r--r--  0 0      0         522 Oct 26  1985 package/lib/etc/roles/literal/timeRole 2.js
-rw-r--r--  0 0      0         522 Oct 26  1985 package/lib/etc/roles/literal/timeRole.js
-rw-r--r--  0 0      0         534 Oct 26  1985 package/lib/etc/roles/literal/timerRole 2.js
-rw-r--r--  0 0      0         534 Oct 26  1985 package/lib/etc/roles/literal/timerRole.js
-rw-r--r--  0 0      0         645 Oct 26  1985 package/lib/etc/roles/literal/toolbarRole 2.js
-rw-r--r--  0 0      0         645 Oct 26  1985 package/lib/etc/roles/literal/toolbarRole.js
-rw-r--r--  0 0      0         539 Oct 26  1985 package/lib/etc/roles/literal/tooltipRole 2.js
-rw-r--r--  0 0      0         539 Oct 26  1985 package/lib/etc/roles/literal/tooltipRole.js
-rw-r--r--  0 0      0         739 Oct 26  1985 package/lib/etc/roles/literal/treegridRole 2.js
-rw-r--r--  0 0      0         739 Oct 26  1985 package/lib/etc/roles/literal/treegridRole.js
-rw-r--r--  0 0      0         711 Oct 26  1985 package/lib/etc/roles/literal/treeitemRole 2.js
-rw-r--r--  0 0      0         711 Oct 26  1985 package/lib/etc/roles/literal/treeitemRole.js
-rw-r--r--  0 0      0         778 Oct 26  1985 package/lib/etc/roles/literal/treeRole 2.js
-rw-r--r--  0 0      0         778 Oct 26  1985 package/lib/etc/roles/literal/treeRole.js
-rw-r--r--  0 0      0         493 Oct 26  1985 package/lib/etc/roles/abstract/widgetRole.js
-rw-r--r--  0 0      0         527 Oct 26  1985 package/lib/etc/roles/abstract/windowRole.js
-rw-r--r--  0 0      0        1789 Oct 26  1985 package/package.json
-rw-r--r--  0 0      0       10689 Oct 26  1985 package/CHANGELOG.md
-rw-r--r--  0 0      0        7069 Oct 26  1985 package/README.md

ARIA 1.1 pattern doesn't require "combobox" to have aria-controls attribute

Hi,

I'm trying to implement accessible component following w3c recommendation and examples and the following line cause jsx-a11y to output an error :

"aria-controls",

According to https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html in ARIA 1.1 pattern the required attribute is aria-owns and the aria-controls attribute should be on the child textbox

regards,
Nicolas

Discussing the new "constraints" in the HTML / ARIA mapping types

From @eps1lon

In flow/aria.js:

};

 type ARIARoleRelationConceptAttribute = {
   name: string,
   value?: string | number,
   // Make these explicit. These values represent quirks of the mapping betweent
   // ARIA and other semantic ontological systems.
 -  constraints?: Array<'unset' | 'isset' | '>1'>,
 +  constraints?: Array<
 +    'undefined' // The attribute does not exist on the node: <a>
 +    | 'set' // The attribute has a value: <a b="c">
 This is confusing to me. It sounds like this should not match empty attribute values e.g. <input > type="text" list="" /> should not be considered a combobox since the list attribute has no value.

On the other hand set would imply to me that the attribute is simply "set". It doesn't make a statement about the type of the value e.g. does it have any value or a certain value etc.

Compare this to a element and its multiple attribute. The wording is the same select (with a multiple [...] vs input type=text [...] with a list attribute but for combobox we constrain the attribute to set and leave the multiple attribute unconstrained for listbox. The current implementation recognizes as a listbox but is not considered a combobox.

I could not find statements about existence of a value in html-aria. Is it fair to assume that these constraints should be ignored when mapping html to aria (since it contains a comment about quirks in other systems)?

also publish a "modern" bundle

Aria-query is currently only publishing the transformed assets to npm. This has 2 issues:

  1. Modern browsers are using transforms when it's not required
  2. The bundle size is larger than strictly required
  3. This project can not be included in any way when using parcel as bundler. See parcel-bundler/parcel#4692

I believe the project would benefit from having a modern bundle as well.

Looking at the build stack being used, I think using microbundle for building the modern bundles would be a good fit, and easy to implement.

Reduce disk footprint of dependencies

When analyzing the disk sizes of various dependencies in the node_modules of Chrome DevTools, I discovered core-js-pure which is our 3rd largest dependency at 6.9MB on disk. It appears that aria-query is the only package having a transitive dependency on core-js-pure via @babel/runtime-corejs3.

This package appears to be supporting Node 6, but Node 10 has recently gone EOL. Could you update your Node version compatibility to support those versions supported by Node itself (https://nodejs.org/en/about/releases/) and drop your usage of @babel/runtime-corejs3? Looking at the implementation of this package, that seems feasible, as it doesn't use very many features that Node 12+ don't support. Hence I think dropping corejs3 usage is feasible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.