Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default valid_elements field in pattern options adds 40kb for every RichtTextField on an edit page #3204

Open
fredvd opened this issue Oct 31, 2020 · 5 comments · May be fixed by #4060
Open

Comments

@fredvd
Copy link
Member

fredvd commented Oct 31, 2020

Plone 5.2.3 coredev. While checking for something else I noticed a huge list in the pattern-options of the pat-mimetypeselector field. This is a small drop down to switch the mimetype of our RichText fields and it contains the default pattern options for TinyMCE based on settings in the control panel registry.

The vield valid_elements is a huge string which seems to be a matrix for all tags and all theoretically possible attributes on any tag:

"valid_elements": "a[datetime|char|coords|width|cols|shape|rules|rowspan|border|lang|prompt|maxlength|href|hreflang|compact|tabindex|longdesc|size|dir|hspace|media|start|disabled|axis|align|nowrap|rows|accept|usemap|for|type|valign|span|clear|method|target|src|name|accept-charset|id|ismap|headers|nohref|frame|noshade|alt|height|readonly|action|selected|cellspacing|charset|cite|scope|summary|accesskey|label|rev|checked|class|colspan|abbr|color|multiple|enctype|title|value|rel|vspace|cellpadding|charoff|align|style],abbr[datetime|char|coords|width|cols|shape|rules|rowspan|border|lang|prompt|maxlength|href|hreflang|compact|tabindex|longdesc|size|dir|hspace|media|start|disabled|axis|align|nowrap|rows|accept|usemap|for|type|valign|span|clear|method|target|src|name|accept-charset|id|ismap|headers|nohref|frame ....

It adds about 40Kb to the edit page of the default core Plone frontpage, going from 63,98 Kb to 108,48Kb . This edit page only contains 1 rich text area. This string will be added for every RichTextField(widget). It's easy to spot when you turn off javascript and inspect the mimetypeselector pattern html.

I tested the size increate/decrease by escaping the last line from this part of the TinyMCESettingsGenerator, which generates this 40Kb monster::

if not self.filter_settings.disable_filtering:
valid_tags = self.filter_settings.valid_tags
nasty_tags = self.filter_settings.nasty_tags
custom_attributes = self.filter_settings.custom_attributes
safe_attributes = [
safe_unicode(attr) for attr in html.defs.safe_attrs]
valid_attributes = safe_attributes + custom_attributes
# valid_elements : 'a[href|target=_blank],strong/b,div[align],br'
tiny_valid_elements = []
for tag in valid_tags:
tag_str = "{}[{}]".format(tag, "|".join(valid_attributes))
tiny_valid_elements.append(tag_str)
# We want to remove the nasty tag including the content in the
# backend, so TinyMCE should allow them here.
for tag in nasty_tags:
tag_str = "{}[{}]".format(tag, "|".join(valid_attributes))
tiny_valid_elements.append(tag_str)
tiny_config['valid_elements'] = ",".join(tiny_valid_elements)

It seems to me the generated valid_elements is completely incorrect, probably a left over or wrong conversion from the Plone 4 filter control panel where you could list valid attributes per html tag/container. Now it just adds all html.defs.safe_attrs to every valid tag.

But do we really need to pass TinyMCE any valid_elements when all html is filtered on save anyway server side? What's this still doing here?

@jensens
Copy link
Member

jensens commented Nov 2, 2020

OMG m(

@petschki
Copy link
Member

In general I'd say this is needed because otherwise editors create theirs super duper SinglePageApp inside TinyMCE and wonder why its gone when saving it 😉

But this can be improved using the "acquired" pattern options feature from patternslib. This means we can define options on a higher level node which are then used inside every pattern inside this node (like its already done for pickadate and plone-modal which have their defaults set on the body tag) ... this also works for nested keys which is great, so if we define something like this:

<body data-pat-textareamimetypeselector='{
    "widgets": {
        "text/html": {
            "patternOptions": {
                "tiny": {
                    "valid_elements": "a[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],abbr[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],acronym[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],address[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],article[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],aside[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],audio[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],b[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],bdo[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],big[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],blockquote[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],body[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],br[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],canvas[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],caption[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],cite[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],code[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],col[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],colgroup[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],command[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],datalist[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],dd[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],del[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],details[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],dfn[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],dialog[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],div[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],dl[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],dt[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],em[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],figure[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],figcaption[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],footer[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],h1[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],h2[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],h3[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],h4[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],h5[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],h6[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],head[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],header[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],hgroup[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],hr[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],html[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],i[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],iframe[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],img[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],ins[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],kbd[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],keygen[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],li[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],map[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],mark[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],meter[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],nav[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],ol[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],output[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],p[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],pre[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],picture[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],progress[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],q[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],rp[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],rt[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],ruby[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],samp[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],section[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],small[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],source[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],span[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],strong[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],sub[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],summary[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],sup[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],table[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],tbody[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],td[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],tfoot[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],th[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],thead[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],time[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],title[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],tr[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],tt[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],u[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],ul[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],var[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],video[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],style[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],object[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],embed[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],applet[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],script[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open],meta[nohref|charoff|hspace|ismap|span|label|multiple|enctype|tabindex|datetime|cellpadding|char|nowrap|href|media|rules|cellspacing|shape|rev|longdesc|value|title|size|dir|lang|clear|noshade|selected|summary|maxlength|hreflang|name|width|rel|disabled|height|cite|method|start|valign|scope|color|readonly|type|cols|abbr|id|alt|vspace|align|target|compact|usemap|prompt|rowspan|for|colspan|class|accept|accesskey|headers|border|axis|frame|checked|accept-charset|rows|src|action|coords|charset|style|controls|poster|autoplay|loading|srcset|sizes|open]"
                }
            }
        }
    }
}'>

we can remove it from the patterns in the doc ...that said, there might be more options which could be defined globally ...

/cc @plone/classicui-team

@petschki
Copy link
Member

It seems to me the generated valid_elements is completely incorrect, probably a left over or wrong conversion from the Plone 4 filter control panel where you could list valid attributes per html tag/container. Now it just adds all html.defs.safe_attrs to every valid tag.

OTOH you're absolutely right about this. that makes no sense at all.

@petschki
Copy link
Member

Instead of calculating this huge tag/option matrix we could define the general schema="html5" option for tinymce. See https://www.tiny.cloud/docs/tinymce/latest/content-filtering/#schema ... additionally we should implement the filter.nasty_tags early withthe invalid_elements option.

@thet
Copy link
Member

thet commented Nov 13, 2024

Also we could move heavy patternslib config to an JSON endpoint.

@petschki petschki linked a pull request Nov 13, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment