UNPKG

accessibility-checker-engine

Version:

An automated accessibility checking engine for use by other tools

1,401 lines (1,394 loc) 4.81 MB
/*! * 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"],