accessibility-checker-engine
Version:
An automated accessibility checking engine for use by other tools
1,401 lines (1,394 loc) • 4.81 MB
JavaScript
/*!
* Copyright:: 2016,2017,2019,2020- IBM, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var ace;
/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./src/v2/aria/ARIADefinitions.ts":
/*!****************************************!*\
!*** ./src/v2/aria/ARIADefinitions.ts ***!
\****************************************/
/***/ ((__unused_webpack_module, exports) => {
/******************************************************************************
Copyright:: 2020- IBM, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*****************************************************************************/
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ARIADefinitions = void 0;
var ARIADefinitions = /** @class */ (function () {
function ARIADefinitions() {
}
ARIADefinitions.nameFromContent = function (role) {
return (role in ARIADefinitions.designPatterns)
&& ARIADefinitions.designPatterns[role].nameFrom
&& ARIADefinitions.designPatterns[role].nameFrom.includes("contents");
};
/*
* array of WAI-ARIA global states and properties
* @see https://www.w3.org/TR/wai-aria-1.2/#global_states
*/
ARIADefinitions.globalProperties = ["aria-atomic", "aria-busy", "aria-controls", "aria-current", "aria-describedby",
"aria-details", "aria-flowto", "aria-hidden", "aria-keyshortcuts",
"aria-label", "aria-labelledby", "aria-live", "aria-owns", "aria-relevant", "aria-roledescription"
// the following are deprecated in ARIA 1.2, will indicate deprecation in individual role
,
'aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid'
];
//properties contains id(s) that refer to other element(s)
ARIADefinitions.referenceProperties = ["aria-owns", "aria-controls", "aria-describedby", "aria-labelledby", "aria-flowto", "aria-activedescendant"];
// deprecated roles
ARIADefinitions.globalDeprecatedRoles = [
'directory', 'doc-biblioentry', 'doc-endnote'
];
// the following are deprecated in ARIA 1.1 for all the roles
ARIADefinitions.globalDeprecatedProperties = [
'aria-grabbed', 'aria-dropeffect'
];
/*
* XSD data types for all WAI-ARIA properties
* along with valid values when the data type is NMTOKEN
* WAI-ARIA properties data types explaned:
* type: Used to identify the type of values allowed for the WAI-ARIA property
* values: Used to identify specific values of an WAI-ARIA property when type is nmtoken
* hiddenIDRefSupported: Used to identify if the WAI-ARIA property supports referencing hidden ID
* true: refers to WAI-ARIA property supports hidden ID references
* false: refers to WAI-ARIA property does not support hidden ID references
* Default value will be set to false, if not specified.
*/
ARIADefinitions.propertyDataTypes = {
"aria-activedescendant": {
type: "http://www.w3.org/2001/XMLSchema#idref",
hiddenIDRefSupported: true
},
"aria-atomic": {
type: "http://www.w3.org/2001/XMLSchema#boolean"
},
"aria-autocomplete": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["inline", "list", "both", "none", "undefined"] //add undefined to handle value empty
},
"aria-busy": {
type: "http://www.w3.org/2001/XMLSchema#boolean"
},
"aria-checked": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["true", "false", "mixed", "undefined"]
},
"aria-colcount": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-colindex": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-colspan": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-controls": {
type: "http://www.w3.org/2001/XMLSchema#idrefs",
hiddenIDRefSupported: true
},
"aria-current": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["page", "step", "location", "date", "time", "true", "false", "undefined"] //add undefined for empty value
},
"aria-describedby": {
type: "http://www.w3.org/2001/XMLSchema#idrefs",
hiddenIDRefSupported: true
},
"aria-details": {
type: "http://www.w3.org/2001/XMLSchema#idrefs"
},
"aria-disabled": {
type: "http://www.w3.org/2001/XMLSchema#boolean"
},
"aria-dropeffect": {
type: "http://www.w3.org/2001/XMLSchema#nmtokens",
values: ["copy", "move", "link", "execute", "popup", "none"]
},
"aria-errormessage": {
type: "http://www.w3.org/2001/XMLSchema#idref",
hiddenIDRefSupported: true
},
"aria-expanded": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["true", "false", "undefined"]
},
"aria-flowto": {
type: "http://www.w3.org/2001/XMLSchema#idrefs",
hiddenIDRefSupported: false
},
"aria-grabbed": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["true", "false", "undefined"]
},
"aria-haspopup": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["true", "false", "menu", "listbox", "tree", "grid", "dialog"]
},
"aria-hidden": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["true", "false", "undefined"]
},
"aria-invalid": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["true", "false", "spelling", "grammar", "undefined"] //add undefined for empty value
},
"aria-keyshortcuts": {
type: "http://www.w3.org/2001/XMLSchema#string"
},
"aria-label": {
type: "http://www.w3.org/2001/XMLSchema#string"
},
"aria-labelledby": {
type: "http://www.w3.org/2001/XMLSchema#idrefs",
hiddenIDRefSupported: true
},
"aria-level": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-live": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["off", "polite", "assertive"]
},
"aria-modal": {
type: "http://www.w3.org/2001/XMLSchema#boolean"
},
"aria-multiline": {
type: "http://www.w3.org/2001/XMLSchema#boolean"
},
"aria-multiselectable": {
type: "http://www.w3.org/2001/XMLSchema#boolean"
},
"aria-orientation": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["horizontal", "vertical", "undefined"]
},
"aria-owns": {
type: "http://www.w3.org/2001/XMLSchema#idrefs",
hiddenIDRefSupported: true
},
"aria-placeholder": {
type: "http://www.w3.org/2001/XMLSchema#string"
},
"aria-posinset": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-pressed": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["true", "false", "mixed", "undefined"]
},
"aria-readonly": {
type: "http://www.w3.org/2001/XMLSchema#boolean"
},
"aria-relevant": {
type: "http://www.w3.org/2001/XMLSchema#nmtokens",
values: ["additions", "removals", "text", "all"]
},
"aria-required": {
type: "http://www.w3.org/2001/XMLSchema#boolean"
},
"aria-roledescription": {
type: "http://www.w3.org/2001/XMLSchema#string"
},
"aria-rowcount": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-rowindex": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-rowspan": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-selected": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["true", "false", "undefined"]
},
"aria-setsize": {
type: "http://www.w3.org/2001/XMLSchema#int"
},
"aria-sort": {
type: "http://www.w3.org/2001/XMLSchema#nmtoken",
values: ["ascending", "descending", "other", "none"]
},
"aria-valuemax": {
type: "http://www.w3.org/2001/XMLSchema#decimal"
},
"aria-valuemin": {
type: "http://www.w3.org/2001/XMLSchema#decimal"
},
"aria-valuenow": {
type: "http://www.w3.org/2001/XMLSchema#decimal"
},
"aria-valuetext": {
type: "http://www.w3.org/2001/XMLSchema#string"
}
};
/*
* design patterns for concrete WAI-ARIA roles
* legitimate keys for each role include:
*
* - container: appropriate container(s) for that role
* - props: states and properties that may be associated with this role (in addition to the global states and properties listed above)
* - reqProps: required states or properties for this role
* - reqChildren: required children for this role
* - htmlEquiv: HTML equivalent for this role
* - roleType: one of widget, structure, landmark, liveRegion, window (as seen in https://www.w3.org/TR/wai-aria-1.2/#roles_categorization)
* - nameRequired: determines whether an accessible name is required for a widget (see ARIA spec.)
* - nameFrom: determines how an accessible name is supplied (author or content - see ARIA spec.)
* - deprecated: if present, indicates that the role is deprecated, and provides a list of alternative role(s)
*/
ARIADefinitions.designPatterns = {
"alert": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "liveRegion",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"alertdialog": {
container: null,
props: ["aria-modal"],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "window",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"application": {
container: null,
props: ["aria-activedescendant", "aria-expanded"],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: true,
nameFrom: ["author"]
},
"article": {
container: null,
props: ["aria-posinset", "aria-setsize"],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"banner": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"blockquote": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"button": {
container: null,
props: ["aria-expanded", "aria-pressed"],
reqProps: null,
reqChildren: null,
htmlEquiv: "button | input[@type='button']",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"],
presentationalChildren: true,
deprecatedProps: ['aria-errormessage', 'aria-invalid']
},
"caption": {
container: ["figure", "grid", "table", "treegrid"],
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"cell": {
container: ["row"],
props: ["aria-colindex", "aria-colspan", "aria-rowindex", "aria-rowspan"],
reqProps: null,
reqChildren: null,
htmlEquiv: "td",
roleType: "structure",
nameFrom: ["author", "contents"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"checkbox": {
container: null,
props: ["aria-expanded", "aria-readonly", "aria-required"],
reqProps: ["aria-checked"],
reqChildren: null,
htmlEquiv: "input[@type='checkbox']",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"],
presentationalChildren: true,
deprecatedProps: ['aria-haspopup']
},
"code": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"columnheader": {
container: ["row"],
props: ["aria-colindex", "aria-colspan", "aria-expanded", "aria-readonly", "aria-required", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-sort"],
reqProps: null,
reqChildren: null,
htmlEquiv: "th[@scope='col']",
roleType: "structure",
nameRequired: true,
nameFrom: ["author", "contents"]
},
"combobox": {
container: null,
props: ["aria-controls", "aria-activedescendant", "aria-autocomplete", "aria-readonly", "aria-required"],
reqProps: ["aria-expanded"],
reqChildren: [],
htmlEquiv: null,
roleType: "widget",
nameRequired: true,
nameFrom: ["author"]
},
"complementary": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"comment": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: false,
nameFrom: ["author", "contents"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"contentinfo": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"definition": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"deletion": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"dialog": {
container: null,
props: ["aria-modal"],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "window",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"directory": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["author"],
deprecated: true,
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"doc-abstract": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-acknowledgments": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-afterword": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-appendix": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-backlink": {
container: null,
props: ["aria-disabled", "aria-expanded", "aria-haspopup"],
reqProps: null,
reqChildren: null,
htmlEquiv: "a | link",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"]
},
"doc-biblioentry": {
container: ["list"],
props: ["aria-level", "aria-posinset", "aria-setsize"],
reqProps: null,
reqChildren: null,
htmlEquiv: "li",
roleType: "structure",
nameRequired: true,
nameFrom: ["author"]
},
"doc-bibliography": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-biblioref": {
container: null,
props: ["aria-disabled", "aria-expanded", "aria-haspopup"],
reqProps: null,
reqChildren: null,
htmlEquiv: "a | link",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"]
},
"doc-chapter": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-colophon": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: true,
nameFrom: ["author"]
},
"doc-conclusion": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-cover": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: "img",
roleType: "structure",
nameRequired: false,
nameFrom: ["author"],
presentationalChildren: true
},
"doc-credit": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-credits": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-dedication": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-endnote": {
container: ["list"],
props: ["aria-level", "aria-posinset", "aria-setsize"],
reqProps: null,
reqChildren: null,
htmlEquiv: "li",
roleType: "structure",
nameRequired: false,
nameFrom: ["author"]
},
"doc-endnotes": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: true,
nameFrom: ["author"]
},
"doc-epigraph": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-epilogue": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-errata": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-example": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-footnote": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-foreword": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-glossary": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-glossref": {
container: null,
props: ["aria-disabled", "aria-expanded", "aria-haspopup"],
reqProps: null,
reqChildren: null,
htmlEquiv: "a | link",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"]
},
"doc-index": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-introduction": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-noteref": {
container: null,
props: ["aria-disabled", "aria-expanded", "aria-haspopup"],
reqProps: null,
reqChildren: null,
htmlEquiv: "a | link",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"]
},
"doc-notice": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: false,
nameFrom: ["author"]
},
"doc-pagebreak": {
container: null,
props: ["aria-orientation"],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: true,
nameFrom: ["author", "contents"],
presentationalChildren: true
},
"doc-pagelist": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-pagefooter": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
},
"doc-pageheader": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
},
"doc-part": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-preface": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-prologue": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-pullquote": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: false,
nameFrom: ["author"]
},
"doc-qna": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"doc-subtitle": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: false,
nameFrom: ["author", "contents"]
},
"doc-tip": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: false,
nameFrom: ["author"]
},
"doc-toc": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"]
},
"document": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"emphasis": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"feed": {
container: null,
props: null,
reqProps: null,
reqChildren: ["article"],
htmlEquiv: null,
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"figure": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"form": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: "form",
roleType: "landmark",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"generic": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: "div | span",
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby", "aria-roledescription"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"graphics-document": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
nameRequired: true,
nameFrom: ["author"]
},
"graphics-object": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
nameRequired: false,
nameFrom: ["author"]
},
"graphics-symbol": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
nameRequired: true,
nameFrom: ["author"],
presentationalChildren: true
},
"grid": {
container: null,
props: ["aria-activedescendant", "aria-colcount", "aria-multiselectable", "aria-readonly", "aria-rowcount"],
reqProps: null,
reqChildren: ["row", "rowgroup"],
htmlEquiv: "table",
roleType: "widget",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"gridcell": {
container: ["row"],
props: ["aria-colindex", "aria-colspan", "aria-disabled", "aria-errormessage", "aria-expanded", "aria-haspopup", "aria-invalid", "aria-readonly", "aria-required", "aria-rowindex", "aria-rowspan", "aria-selected"],
reqProps: null,
reqChildren: null,
htmlEquiv: "td",
roleType: "widget",
nameFrom: ["author", "contents"]
},
"group": {
container: null,
props: ["aria-activedescendant"],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"heading": {
container: null,
props: null,
reqProps: ["aria-level"],
reqChildren: null,
htmlEquiv: "h1 | h2 | h3 | h4 | h5 | h6",
roleType: "structure",
nameRequired: true,
nameFrom: ["author", "contents"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"img": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: "img",
roleType: "structure",
nameRequired: true,
nameFrom: ["author"],
presentationalChildren: true,
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"image": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: "img",
roleType: "structure",
nameRequired: true,
nameFrom: ["author"],
presentationalChildren: true,
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"insertion": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"link": {
container: null,
props: ["aria-expanded"],
reqProps: null,
reqChildren: null,
htmlEquiv: "a | link",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"],
deprecatedProps: ['aria-errormessage', 'aria-invalid']
},
"list": {
container: null,
props: null,
reqProps: null,
reqChildren: ["listitem"],
htmlEquiv: "ol | ul",
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"listbox": {
container: null,
props: ["aria-activedescendant", "aria-expanded", "aria-multiselectable", "aria-orientation", "aria-readonly", "aria-required"],
reqProps: null,
reqChildren: ["group", "option"],
htmlEquiv: null,
roleType: "widget",
nameRequired: true,
nameFrom: ["author"],
deprecatedProps: ['aria-haspopup']
},
"listitem": {
container: ["list"],
props: ["aria-level", "aria-posinset", "aria-setsize"],
reqProps: null,
reqChildren: null,
htmlEquiv: "li",
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"log": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "liveRegion",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"main": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"mark": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: "mark",
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"marquee": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "liveRegion",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"math": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["author"],
presentationalChildren: false,
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"menu": {
container: null,
props: ["aria-activedescendant", "aria-orientation"],
reqProps: null,
reqChildren: ["group", "menuitem", "menuitemcheckbox", "menuitemradio"],
htmlEquiv: null,
roleType: "widget",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"menubar": {
container: null,
props: ["aria-activedescendant", "aria-orientation"],
reqProps: null,
reqChildren: ["group", "menuitem", "menuitemcheckbox", "menuitemradio"],
htmlEquiv: null,
roleType: "widget",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"menuitem": {
container: ["group", "menu", "menubar"],
props: ["aria-expanded", "aria-posinset", "aria-setsize"],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"],
deprecatedProps: ['aria-errormessage', 'aria-invalid']
},
"menuitemcheckbox": {
container: ["group", "menu", "menubar"],
props: ["aria-expanded", "aria-posinset", "aria-setsize"],
reqProps: ["aria-checked"],
reqChildren: null,
htmlEquiv: null,
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"],
presentationalChildren: true,
deprecatedProps: ['aria-errormessage', 'aria-invalid']
},
"menuitemradio": {
container: ["group", "menu", "menubar"],
props: ["aria-expanded", "aria-posinset", "aria-setsize"],
reqProps: ["aria-checked"],
reqChildren: null,
htmlEquiv: null,
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"],
presentationalChildren: true,
deprecatedProps: ['aria-errormessage', 'aria-invalid']
},
"meter": {
container: null,
props: ["aria-valuemax", "aria-valuemin", "aria-valuetext"],
reqProps: ["aria-valuenow"],
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameRequired: true,
nameFrom: ["author"],
presentationalChildren: true,
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"navigation": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"none": {
container: null,
props: [],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"note": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"option": {
container: ["group", "listbox"],
props: ["aria-selected", "aria-checked", "aria-posinset", "aria-setsize"],
reqProps: null,
reqChildren: null,
htmlEquiv: "option",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"],
presentationalChildren: true,
deprecatedProps: ['aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"paragraph": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"presentation": {
container: null,
props: [],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "structure",
nameFrom: ["prohibited"],
prohibitedProps: ["aria-label", "aria-labelledby"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"progressbar": {
container: null,
props: ["aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext"],
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "widget",
nameRequired: true,
nameFrom: ["author"],
presentationalChildren: true,
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"radio": {
container: null,
props: ["aria-posinset", "aria-setsize"],
reqProps: ["aria-checked"],
reqChildren: null,
htmlEquiv: "input[@type='radio']",
roleType: "widget",
nameRequired: true,
nameFrom: ["author", "contents"],
presentationalChildren: true,
deprecatedProps: ['aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"radiogroup": {
container: null,
props: ["aria-activedescendant", "aria-orientation", "aria-readonly", "aria-required"],
reqProps: null,
reqChildren: ["radio"],
htmlEquiv: null,
roleType: "widget",
nameRequired: false,
nameFrom: ["author"],
deprecatedProps: ['aria-haspopup']
},
"region": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameRequired: true,
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"row": {
container: ["grid", "rowgroup", "table", "treegrid"],
props: ["aria-activedescendant", "aria-colindex", "aria-expanded", "aria-level", "aria-posinset", "aria-rowindex", "aria-selected", "aria-setsize"],
reqProps: null,
reqChildren: ["cell", "columnheader", "gridcell", "rowheader"],
htmlEquiv: "tr",
roleType: "structure",
nameFrom: ["author", "contents"],
deprecatedProps: ['aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"rowgroup": {
container: ["grid", "table", "treegrid"],
props: [],
reqProps: null,
reqChildren: ["row"],
htmlEquiv: "tbody | tfoot | thead",
roleType: "structure",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"rowheader": {
container: ["row"],
props: ["aria-colindex", "aria-colspan", "aria-expanded", "aria-readonly", "aria-required", "aria-rowindex", "aria-rowspan", "aria-selected", "aria-sort"],
reqProps: null,
reqChildren: null,
htmlEquiv: "th[@scope='row']",
roleType: "structure",
nameRequired: true,
nameFrom: ["author", "contents"]
},
"scrollbar": {
container: null,
props: ["aria-orientation", "aria-valuemax", "aria-valuemin", "aria-valuetext"],
reqProps: ["aria-controls", "aria-valuenow"],
reqChildren: null,
htmlEquiv: null,
roleType: "widget",
nameRequired: false,
nameFrom: ["author"],
presentationalChildren: true,
deprecatedProps: ['aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"search": {
container: null,
props: null,
reqProps: null,
reqChildren: null,
htmlEquiv: null,
roleType: "landmark",
nameFrom: ["author"],
deprecatedProps: ['aria-disabled', 'aria-errormessage', 'aria-haspopup', 'aria-invalid']
},
"searchbox": {
container: null,
props: ["aria-activedescendant", "aria-autocomplete", "aria-multiline", "aria-placeholder", "aria-readonly", "aria-required"],
reqProps: null,
reqChildren: null,
htmlEquiv: "input[@type='search']",
roleType: "widget",
nameRequired: true,
nameFrom: ["author"]
},
"separator": {
container: null,
props: ["aria-orientation"],