Allowed Attributes in Wikitext
Wikidot has an arbitrary and inconsistent limit of which attributes are passed from blocks into HTML tags. It’s usually id
, class
, style
, and possibly other attributes when Wikidot developers remembered.
However we shouldn’t just all all attributes through, as they could run trusted scripts or expose other security issues.
Instead we have a premade list of which attributes are permitted and which are not:
Attribute Name | Affected HTML Elements | Allowed? | Rationale |
---|---|---|---|
|
| YES | Affects the behavior of a file picker. |
|
| NO | The character set should be set at the platform level. |
| Global attribute | NO | Could be used to hijack user focus. |
|
| NO | Allows submitting a form to an arbitrary destination. |
|
| YES | Cosmetic attribute. |
|
| NO | Can permit the child iframe to have access to browser resources like the microphone. |
|
| YES | Alt text is important for accessibility. |
| Global attribute | YES | Permits users to add ARIA attributes to enhance accessibility. |
|
| NO | Only affects scripts, which users cannot load. |
| Global attribute | YES | Affects capitalization in input fields. |
|
| NO | Could be used to steal credentials by mimicking username or password fields. |
|
| NO | Could be used to hijack user focus. |
|
| YES | Users can configure their browsers to block this, and it can be used to narrative effect. |
|
| YES | Cosmetic attribute. |
|
| YES | Cosmetic attribute. |
|
| YES | Cosmetic attribute. |
|
| YES | Optimizing media buffering. |
|
| NO | Allows media capture resources (e.g. camera) to be accessed. |
|
| NO | Deprecated and involves a security mechanism. |
|
| NO | The character set should be set at the platform level. |
|
| YES | Affects whether an input starts with a truthy value. |
|
| YES | Allows citing the origin of contained elements. |
| Global attribute. | YES | Cosmetic attribute. |
|
| NO | Applets are not permitted. |
|
| NO | Applets are not permitted. |
|
| NO | Only permitted on |
|
| YES | Cosmetic attribute. |
|
| YES | Cosmetic attribute. |
|
| NO | Meta attributes are set at the site level. |
| Global attribute. | YES | Allows changing intractability of static elements. |
| Global attribute. | NO | Experimental attribute. |
|
| YES | Allows exposing media controls. |
|
| YES | Cosmetic attribute. |
|
| NO | Affecting cross-origin settings is a possible security issue. |
|
| NO | Experimental attribute. |
| Global attribute. | YES | Allows users to add data tags to their DOM elements. |
|
| YES | Useful metadata. |
|
| YES | Allows optimizing page rendering. |
|
| YES | Configures media player behavior. |
|
| NO | Only affects scripts, which users cannot load. |
| Global attribute. | YES | Allows setting text direction for cosmetics and internationalization. |
|
| YES | Input field customization. |
|
| YES | Affects field interactivity. |
|
| YES | Allows links to force a download. |
| Global attribute. | YES | Allows making elements as draggable. |
|
| NO | Forms are not allowed to |
|
| NO | Experimental attribute. |
|
| YES | Allows parenting elements. |
|
| YES | Allows constructing forms. |
|
| NO | Allows setting a form’s action. |
|
| NO | Allows setting a form’s content type. |
|
| NO | Allows setting a form’s method type. |
|
| NO | Allows setting a form’s validation type. |
|
| NO | Allows setting a form’s target. |
|
| YES | Customizing the IDs of table elements. |
|
| YES | Cosmetic attribute. |
| Global attribute. | YES | Cosmetic attribute. |
|
| YES | Allows customizing a meter element. |
|
| YES | Allows creating links. |
|
| YES | Allows specifying the language of the linked resource. |
|
| NO | Meta attributes are set at the site level. |
|
| NO | Command is deprecated. |
| Global attribute. | YES | Cosmetic attribute. |
|
| NO | Experimental attribute. |
|
| NO | Users cannot pull styling or scripts. |
|
| NO | Deprecated attribute. |
|
| YES | Allows setting the type of text input. |
|
| YES | Allows utilizing image maps. |
| Global attribute. | YES | Allows adding properties to elements. |
|
| NO | Deprecated and involves a security mechanism. |
|
| YES | Configures media player behavior. |
|
| YES | Sets a title for this element. |
| Global attribute. | YES | Defines the language used in this element. |
|
| NO | Deprecated, and users cannot load scripts. |
|
| NO | Experimental attribute. |
|
| YES | Allows setting a list of premade options. |
|
| YES | Configures media player behavior. |
|
| YES | Allows customizing a meter element. |
|
| NO | Deprecated and involves document construction. |
|
| YES | Allows customizing element limits. |
|
| YES | Allows customizing element limits. |
|
| YES | Allows customizing element limits. |
|
| NO | Not well-used or supported. |
|
| NO | Allows setting a form’s method. |
|
| YES | Allows customizing element limits. |
|
| YES | Allows multiple values to be selected or inputted. |
|
| YES | Configures media player behavior. |
|
| YES | Names the element. |
|
| NO | Allows setting a form’s validation option. |
|
| NO | Not using details for collapsible elements. |
|
| YES | Allows customizing a meter element. |
|
| YES | Requires that an input field match a particular regular expression. |
|
| NO | Pingbacks are no longer in common use. |
|
| YES | Allows setting a field placeholder hint. |
|
| YES | Configures media player behavior. |
|
| YES | Configures media player behavior. |
|
| NO | Deprecated attribute. |
|
| YES | Allows setting a field’s editability. |
|
| NO | Experimental attribute, restricts referrer. |
|
| NO | Allows setting referrer and opener policy. |
|
| YES | Whether an input element is required or not. |
|
| YES | Cosmetic attribute. |
| Global attribute. | YES | ARIA attribute. |
|
| YES | Cosmetic attribute. |
|
| YES | Cosmetic attribute. |
|
| NO | Can be used to escape iframe sandboxing. |
|
| YES | Cosmetic attribute. |
|
| NO | Deprecated attribute. |
|
| YES | Affects whether an option starts selected. |
|
| YES | Cosmetic attribute. |
|
| YES | Cosmetic attribute. |
|
| YES | Specifies the sizes this element can be. |
| Global attribute. | NO | Further research on web components and slots is needed. |
|
| YES | Cosmetic attribute. |
| Global attribute. | YES | Indicate whether the element should be spellchecked. |
|
| YES | The source of the media or object being included. |
|
| NO | The |
|
| YES | Allows setting subtitle language. |
|
| YES | Responsive media settings. |
|
| YES | Cosmetic attribute. |
|
| YES | Cosmetic attribute. |
| Global attribute. | YES | Cosmetic attribute. |
|
| NO | Deprecated attribute. |
| Global attribute. | YES | Allows setting tab order. |
|
| YES | Allows setting an element’s target. |
| Global attribute. | YES | Allows setting tooltips. |
| Global attribute. | YES | Assists in localization and translation. |
|
| YES | Allows setting the element type. |
|
| YES | Allows utilizing image maps. |
|
| YES | Default value of the element. |
|
| YES | Cosmetic attribute. |
|
| YES | Cosmetic attribute. |
* Item is deprecated.
†Item is experimental.
See also:
https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
https://github.com/cure53/DOMPurify/blob/main/test/fixtures/expect.js
Â