diff --git a/docs-src/md/changelog.md b/docs-src/md/changelog.md index e478a14..749325f 100644 --- a/docs-src/md/changelog.md +++ b/docs-src/md/changelog.md @@ -1,3 +1,10 @@ +## 1.0.0-RC.1 (2023-03-08) + +First Release Candidate + +* Prevent attributes used for passing props from being added to first node +* Updated docs + ## 1.0.0-beta.16 (2022-11-06) * Fix aware props propagation diff --git a/docs-src/md/introduction.md b/docs-src/md/introduction.md index 37b862c..d5a7366 100644 --- a/docs-src/md/introduction.md +++ b/docs-src/md/introduction.md @@ -1,7 +1,5 @@ $ -> This plugin is still in early stage of development and the current API may change. - ## Installation ```bash @@ -11,7 +9,7 @@ npm i -D posthtml-component ## Introduction This PostHTML plugin provides an HTML-friendly syntax for write components in your templates. -If you are familiar with Blade, you will find similar syntax as this plugin is inspired by it. +If you are familiar with Blade, React, Vue or similar, you will find familiar syntax as this plugin is inspired by them. See below a basic example, as code is worth a thousand words. **See also the first [PostHTML Bootstrap UI](https://github.com/thewebartisan7/posthtml-bootstrap-ui) using this plugin and check also the [starter template here](https://github.com/thewebartisan7/posthtml-bootstrap-ui-starter).** @@ -63,11 +61,11 @@ Result: ``` -You may notice that our `src/button.html` component has a `type` and `class` attribute, and when we use the component in `src/index.html` we add type and class attribute. +You may notice that the `src/button.html` component has a `type` and `class` attribute, and when we use the component in `src/index.html` we pass `type` and `class` attribute. The result is that `type` is override, and `class` is merged. By default `class` and `style` attributes are merged, while all others attribute are override. -You can also override class and style attribute by prepending `override:` to the class attribute. Example: +You can also override `class` and `style` attributes by prepending `override:` to the class attribute. Example: ```html Submit @@ -77,42 +75,49 @@ You can also override class and style attribute by prepending `override:` to the ``` All attributes you pass to the component will be added to the first node of your component or to the node with an attribute names `attributes`, -and only if they are not defined as `props` via ` + + diff --git a/src/index.js b/src/index.js index 3ade0a9..015699e 100644 --- a/src/index.js +++ b/src/index.js @@ -76,7 +76,7 @@ module.exports = (options = {}) => tree => { // Additional element attributes, in case already exist in valid-attributes.js it will replace all attributes // It should be an object with key as tag name and as value a function modifier which receive // the default attributes and return an array of attributes. Example: - // { TAG: (attrsibutes) => { attrsibutes[] = 'attribute-name'; return attributes; } } + // { TAG: (attrsibutes) => { attributes[] = 'attribute-name'; return attributes; } } options.elementAttributes = isPlainObject(options.elementAttributes) ? options.elementAttributes : {}; options.safelistAttributes = Array.isArray(options.safelistAttributes) ? options.safelistAttributes : []; options.blacklistAttributes = Array.isArray(options.blacklistAttributes) ? options.blacklistAttributes : []; @@ -270,6 +270,9 @@ function getComponentPath(currentNode, options) { } } + // Delete attribute used as path + delete currentNode.attrs[options.attribute]; + return componentPath; } diff --git a/src/process-attributes.js b/src/process-attributes.js index 1c80cd2..cea4924 100644 --- a/src/process-attributes.js +++ b/src/process-attributes.js @@ -64,7 +64,7 @@ module.exports = (currentNode, attributes, props, options, aware) => { } // Attributes to be excluded - const excludeAttributes = union(validAttributes.blacklistAttributes, keys(props), [options.attribute], keys(aware), keys(options.props), ['$slots']); + const excludeAttributes = union(validAttributes.blacklistAttributes, keys(props), keys(aware), keys(options.props), ['$slots']); // All valid HTML attributes for the main element const allValidElementAttributes = isString(mainNode.tag) && has(validAttributes.elementAttributes, mainNode.tag.toUpperCase()) ? validAttributes.elementAttributes[mainNode.tag.toUpperCase()] : []; // Valid HTML attributes without the excluded diff --git a/src/valid-attributes.js b/src/valid-attributes.js index ff312f0..0ba0f35 100644 --- a/src/valid-attributes.js +++ b/src/valid-attributes.js @@ -1,94 +1,3549 @@ /** * List of valid HTML attributes that will be passed to first node of component or * to the node with an attribute 'attributes'. - * Generated from https://www.w3.org/TR/html4/index/attributes.html + * Generated from scripts/fetch-attributes.js using + * https://html.spec.whatwg.org/multipage/indices.html and + * https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes * * @see https://jsfiddle.net/1r8czt2h/ */ +/* eslint-disable quote-props */ module.exports = { elementAttributes: { - A: ['accesskey', 'charset', 'class', 'coords', 'dir', 'href', 'hreflang', 'id', 'lang', 'name', 'onblur', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'rel', 'rev', 'shape', 'style', 'tabindex', 'tabindex', 'target', 'title', 'type'], - ABBR: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - ACRONYM: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - ADDRESS: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - AREA: ['alt', 'class', 'coords', 'dir', 'id', 'lang', 'nohref', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'shape', 'style', 'tabindex', 'title'], - B: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - BASE: ['class', 'dir', 'href', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - BDO: ['class', 'dir', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - BIG: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - BLOCKQUOTE: ['cite', 'class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - BODY: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onunload', 'style', 'tabindex', 'title'], - BR: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - BUTTON: ['class', 'dir', 'disabled', 'id', 'lang', 'name', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title', 'type', 'value'], - CAPTION: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - CITE: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - CODE: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - COL: ['align', 'char', 'charoff', 'class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'span', 'style', 'tabindex', 'title', 'valign', 'width'], - COLGROUP: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'span', 'style', 'tabindex', 'title', 'width'], - DD: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - DEL: ['cite', 'class', 'datetime', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - DFN: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - DIV: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - DL: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - DT: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - EM: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - FIELDSET: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - FORM: ['accept', 'accept-charset', 'action', 'class', 'dir', 'enctype', 'id', 'lang', 'method', 'name', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onsubmit', 'style', 'tabindex', 'title'], - FRAME: ['class', 'dir', 'frameborder', 'id', 'lang', 'longdesc', 'marginheight', 'marginwidth', 'name', 'noresize', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'scrolling', 'src', 'style', 'tabindex', 'title'], - FRAMESET: ['class', 'cols', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onunload', 'rows', 'style', 'tabindex', 'title'], - H1: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - H2: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - H3: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - H4: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - H5: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - H6: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - HEAD: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'profile', 'style', 'tabindex', 'title'], - HR: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - HTML: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - I: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - IFRAME: ['class', 'dir', 'height', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title', 'width'], - IMG: ['class', 'dir', 'height', 'id', 'ismap', 'lang', 'longdesc', 'name', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'src', 'style', 'tabindex', 'title', 'usemap', 'width'], - INPUT: ['alt', 'checked', 'class', 'dir', 'id', 'lang', 'maxlength', 'name', 'onchange', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onselect', 'readonly', 'size', 'src', 'style', 'tabindex', 'title', 'type', 'value'], - INS: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - KBD: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - LABEL: ['class', 'dir', 'for', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - LEGEND: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - LI: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - LINK: ['class', 'dir', 'id', 'lang', 'media', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - MAP: ['class', 'dir', 'id', 'lang', 'name', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - META: ['class', 'content', 'dir', 'http-equiv', 'id', 'lang', 'name', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'scheme', 'style', 'tabindex', 'title'], - NOFRAMES: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - NOSCRIPT: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - OBJECT: ['archive', 'class', 'classid', 'codebase', 'codetype', 'data', 'declare', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'standby', 'style', 'tabindex', 'title', 'type'], - OL: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - OPTGROUP: ['class', 'dir', 'id', 'label', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - OPTION: ['class', 'dir', 'id', 'label', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'selected', 'style', 'tabindex', 'title', 'value'], - P: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - PARAM: ['class', 'dir', 'id', 'lang', 'name', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title', 'type', 'value', 'valuetype'], - PRE: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - Q: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - SAMP: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - SCRIPT: ['class', 'defer', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'src', 'style', 'tabindex', 'title', 'type'], - SELECT: ['class', 'dir', 'id', 'lang', 'multiple', 'name', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'size', 'style', 'tabindex', 'title'], - SMALL: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - SPAN: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - STRONG: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - STYLE: ['class', 'dir', 'id', 'lang', 'media', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title', 'type'], - SUB: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - SUP: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - TABLE: ['border', 'cellpadding', 'cellspacing', 'class', 'dir', 'frame', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'rules', 'style', 'summary', 'tabindex', 'title', 'width'], - TBODY: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - TD: ['abbr', 'axis', 'class', 'colspan', 'dir', 'headers', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'rowspan', 'scope', 'style', 'tabindex', 'title'], - TEXTAREA: ['class', 'cols', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'readonly', 'rows', 'style', 'tabindex', 'title'], - TFOOT: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - TH: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - THEAD: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - TITLE: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - TR: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - TT: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - UL: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'], - VAR: ['class', 'dir', 'id', 'lang', 'onclick', 'ondblclick', 'onkeydown', 'onkeypress', 'onkeyup', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'style', 'tabindex', 'title'] + 'A': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'download', + 'draggable', + 'enterkeyhint', + 'hidden', + 'href', + 'hreflang', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'ping', + 'popover', + 'referrerpolicy', + 'rel', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'target', + 'title', + 'translate', + 'type' + ], + 'ABBR': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'ADDRESS': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'AREA': [ + 'accesskey', + 'alt', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'coords', + 'dir', + 'download', + 'draggable', + 'enterkeyhint', + 'hidden', + 'href', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'ping', + 'popover', + 'referrerpolicy', + 'rel', + 'role', + 'shape', + 'spellcheck', + 'style', + 'tabindex', + 'target', + 'title', + 'translate' + ], + 'ARTICLE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'ASIDE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'AUDIO': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'autoplay', + 'class', + 'contenteditable', + 'controls', + 'crossorigin', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'loop', + 'muted', + 'nonce', + 'popover', + 'preload', + 'role', + 'spellcheck', + 'src', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'B': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'BASE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'href', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'target', + 'title', + 'translate' + ], + 'BDI': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'BDO': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'BLOCKQUOTE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'cite', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'BODY': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'onafterprint', + 'onbeforeprint', + 'onbeforeunload', + 'onhashchange', + 'onlanguagechange', + 'onmessage', + 'onmessageerror', + 'onoffline', + 'ononline', + 'onpagehide', + 'onpageshow', + 'onpopstate', + 'onrejectionhandled', + 'onstorage', + 'onunhandledrejection', + 'onunload', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'BR': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'BUTTON': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'disabled', + 'draggable', + 'enterkeyhint', + 'form', + 'formaction', + 'formenctype', + 'formmethod', + 'formnovalidate', + 'formtarget', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'name', + 'nonce', + 'popover', + 'popoverhidetarget', + 'popovershowtarget', + 'popovertoggletarget', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'type', + 'value' + ], + 'CANVAS': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'height', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'width' + ], + 'CAPTION': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'CITE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'CODE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'COL': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'span', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'COLGROUP': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'span', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DATA': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'value' + ], + 'DATALIST': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DD': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DEL': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'cite', + 'class', + 'contenteditable', + 'datetime', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DETAILS': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'open', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DFN': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DIALOG': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'open', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DIV': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DL': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'DT': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'EM': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'EMBED': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'height', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'src', + 'style', + 'tabindex', + 'title', + 'translate', + 'type', + 'width' + ], + 'FIELDSET': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'disabled', + 'draggable', + 'enterkeyhint', + 'form', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'name', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'FIGCAPTION': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'FIGURE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'FOOTER': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'FORM': [ + 'accept-charset', + 'accesskey', + 'action', + 'autocapitalize', + 'autocomplete', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enctype', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'method', + 'name', + 'nonce', + 'novalidate', + 'popover', + 'rel', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'target', + 'title', + 'translate' + ], + 'H1': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'H2': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'H3': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'H4': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'H5': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'H6': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'HEAD': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'HEADER': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'HGROUP': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'HR': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'HTML': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'manifest', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'I': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'IFRAME': [ + 'accesskey', + 'allow', + 'allowfullscreen', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'height', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'loading', + 'name', + 'nonce', + 'popover', + 'referrerpolicy', + 'role', + 'sandbox', + 'spellcheck', + 'src', + 'srcdoc', + 'style', + 'tabindex', + 'title', + 'translate', + 'width' + ], + 'IMG': [ + 'accesskey', + 'alt', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'crossorigin', + 'decoding', + 'dir', + 'draggable', + 'enterkeyhint', + 'fetchpriority', + 'height', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'ismap', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'loading', + 'nonce', + 'popover', + 'referrerpolicy', + 'role', + 'sizes', + 'spellcheck', + 'src', + 'srcset', + 'style', + 'tabindex', + 'title', + 'translate', + 'usemap', + 'width' + ], + 'INPUT': [ + 'accept', + 'accesskey', + 'alt', + 'autocapitalize', + 'autocomplete', + 'autofocus', + 'checked', + 'class', + 'contenteditable', + 'dir', + 'dirname', + 'disabled', + 'draggable', + 'enterkeyhint', + 'form', + 'formaction', + 'formenctype', + 'formmethod', + 'formnovalidate', + 'formtarget', + 'height', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'list', + 'max', + 'maxlength', + 'min', + 'minlength', + 'multiple', + 'name', + 'nonce', + 'pattern', + 'placeholder', + 'popover', + 'popoverhidetarget', + 'popovershowtarget', + 'popovertoggletarget', + 'readonly', + 'required', + 'role', + 'size', + 'spellcheck', + 'src', + 'step', + 'style', + 'tabindex', + 'title', + 'translate', + 'type', + 'value', + 'width' + ], + 'INS': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'cite', + 'class', + 'contenteditable', + 'datetime', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'KBD': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'LABEL': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'for', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'LEGEND': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'LI': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'value' + ], + 'LINK': [ + 'accesskey', + 'as', + 'autocapitalize', + 'autofocus', + 'blocking', + 'class', + 'color', + 'contenteditable', + 'crossorigin', + 'dir', + 'disabled', + 'draggable', + 'enterkeyhint', + 'fetchpriority', + 'hidden', + 'href', + 'hreflang', + 'id', + 'imagesizes', + 'imagesrcset', + 'inert', + 'inputmode', + 'integrity', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'media', + 'nonce', + 'popover', + 'referrerpolicy', + 'rel', + 'role', + 'sizes', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'type' + ], + 'MAIN': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'MAP': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'name', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'MARK': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'MATH': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'MENU': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'META': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'charset', + 'class', + 'content', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'http-equiv', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'media', + 'name', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'METER': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'high', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'low', + 'max', + 'min', + 'nonce', + 'optimum', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'value' + ], + 'NAV': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'NOSCRIPT': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'OBJECT': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'data', + 'dir', + 'draggable', + 'enterkeyhint', + 'form', + 'height', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'name', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'type', + 'width' + ], + 'OL': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'reversed', + 'role', + 'spellcheck', + 'start', + 'style', + 'tabindex', + 'title', + 'translate', + 'type' + ], + 'OPTGROUP': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'disabled', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'label', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'OPTION': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'disabled', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'label', + 'lang', + 'nonce', + 'popover', + 'role', + 'selected', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'value' + ], + 'OUTPUT': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'for', + 'form', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'name', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'P': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'PICTURE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'PRE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'PROGRESS': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'max', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'value' + ], + 'Q': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'cite', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'RP': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'RT': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'RUBY': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'S': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SAMP': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SCRIPT': [ + 'accesskey', + 'async', + 'autocapitalize', + 'autofocus', + 'blocking', + 'class', + 'contenteditable', + 'crossorigin', + 'defer', + 'dir', + 'draggable', + 'enterkeyhint', + 'fetchpriority', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'integrity', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nomodule', + 'nonce', + 'popover', + 'referrerpolicy', + 'role', + 'spellcheck', + 'src', + 'style', + 'tabindex', + 'title', + 'translate', + 'type' + ], + 'SECTION': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SELECT': [ + 'accesskey', + 'autocapitalize', + 'autocomplete', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'disabled', + 'draggable', + 'enterkeyhint', + 'form', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'multiple', + 'name', + 'nonce', + 'popover', + 'required', + 'role', + 'size', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SLOT': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'name', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SMALL': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SOURCE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'height', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'media', + 'nonce', + 'popover', + 'role', + 'sizes', + 'spellcheck', + 'src', + 'srcset', + 'style', + 'tabindex', + 'title', + 'translate', + 'type', + 'width' + ], + 'SPAN': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'STRONG': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'STYLE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'blocking', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'media', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SUB': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SUMMARY': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SUP': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'SVG': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TABLE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TBODY': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TD': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'colspan', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'headers', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'rowspan', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TEMPLATE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TEXTAREA': [ + 'accesskey', + 'autocapitalize', + 'autocomplete', + 'autofocus', + 'class', + 'cols', + 'contenteditable', + 'dir', + 'dirname', + 'disabled', + 'draggable', + 'enterkeyhint', + 'form', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'maxlength', + 'minlength', + 'name', + 'nonce', + 'placeholder', + 'popover', + 'readonly', + 'required', + 'role', + 'rows', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate', + 'wrap' + ], + 'TFOOT': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TH': [ + 'abbr', + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'colspan', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'headers', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'rowspan', + 'scope', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'THEAD': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TIME': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'datetime', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TITLE': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TR': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'TRACK': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'default', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'kind', + 'label', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'src', + 'srclang', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'U': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'UL': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'VAR': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ], + 'VIDEO': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'autoplay', + 'class', + 'contenteditable', + 'controls', + 'crossorigin', + 'dir', + 'draggable', + 'enterkeyhint', + 'height', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'loop', + 'muted', + 'nonce', + 'playsinline', + 'popover', + 'poster', + 'preload', + 'role', + 'spellcheck', + 'src', + 'style', + 'tabindex', + 'title', + 'translate', + 'width' + ], + 'WBR': [ + 'accesskey', + 'autocapitalize', + 'autofocus', + 'class', + 'contenteditable', + 'dir', + 'draggable', + 'enterkeyhint', + 'hidden', + 'id', + 'inert', + 'inputmode', + 'is', + 'itemid', + 'itemprop', + 'itemref', + 'itemscope', + 'itemtype', + 'lang', + 'nonce', + 'popover', + 'role', + 'spellcheck', + 'style', + 'tabindex', + 'title', + 'translate' + ] }, // Safelist and blacklist attributes will be applied to all tags