tachys/html/attribute/key.rs
1use super::{Attr, AttributeValue};
2use std::fmt::Debug;
3
4/// An HTML attribute key.
5pub trait AttributeKey: Clone + Send + 'static {
6 /// The name of the attribute.
7 const KEY: &'static str;
8}
9
10macro_rules! attributes {
11 ($(#[$meta:meta] $key:ident $html:literal),* $(,)?) => {
12 paste::paste! {
13 $(
14 #[$meta]
15 #[track_caller]
16 pub fn $key<V>(value: V) -> Attr<[<$key:camel>], V>
17 where V: AttributeValue,
18
19 {
20 Attr([<$key:camel>], value)
21 }
22
23 #[$meta]
24 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
25 pub struct [<$key:camel>];
26
27 impl AttributeKey for [<$key:camel>] {
28 const KEY: &'static str = $html;
29 }
30 )*
31 }
32 }
33}
34
35attributes! {
36 // HTML
37 /// The `abbr` attribute specifies an abbreviated form of the element's content.
38 abbr "abbr",
39 /// The `accept-charset` attribute specifies the character encodings that are to be used for the form submission.
40 accept_charset "accept-charset",
41 /// The `accept` attribute specifies a list of types the server accepts, typically a file type.
42 accept "accept",
43 /// The `accesskey` attribute specifies a shortcut key to activate or focus an element.
44 accesskey "accesskey",
45 /// The `action` attribute defines the URL to which the form data will be sent.
46 action "action",
47 /// The `align` attribute specifies the alignment of an element.
48 align "align",
49 /// The `allow` attribute defines a feature policy for the content in an iframe.
50 allow "allow",
51 /// The `allowfullscreen` attribute allows the iframe to be displayed in fullscreen mode.
52 allowfullscreen "allowfullscreen",
53 /// The `allowpaymentrequest` attribute allows a cross-origin iframe to invoke the Payment Request API.
54 allowpaymentrequest "allowpaymentrequest",
55 /// The `alt` attribute provides alternative text for an image, if the image cannot be displayed.
56 alt "alt",
57 // ARIA
58 /// The `aria-activedescendant` attribute identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.
59 aria_activedescendant "aria-activedescendant",
60 /// The `aria-atomic` attribute indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.
61 aria_atomic "aria-atomic",
62 /// The `aria-autocomplete` attribute indicates whether user input completion suggestions are provided.
63 aria_autocomplete "aria-autocomplete",
64 /// The `aria-busy` attribute indicates whether an element, and its subtree, are currently being updated.
65 aria_busy "aria-busy",
66 /// The `aria-checked` attribute indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
67 aria_checked "aria-checked",
68 /// The `aria-colcount` attribute defines the total number of columns in a table, grid, or treegrid.
69 aria_colcount "aria-colcount",
70 /// The `aria-colindex` attribute defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
71 aria_colindex "aria-colindex",
72 /// The `aria-colspan` attribute defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
73 aria_colspan "aria-colspan",
74 /// The `aria-controls` attribute identifies the element (or elements) whose contents or presence are controlled by the current element.
75 aria_controls "aria-controls",
76 /// The `aria-current` attribute indicates the element representing the current item within a container or set of related elements.
77 aria_current "aria-current",
78 /// The `aria-describedby` attribute identifies the element (or elements) that describes the object.
79 aria_describedby "aria-describedby",
80 /// The `aria-description` attribute provides a string value that describes or annotates the current element.
81 aria_description "aria-description",
82 /// The `aria-details` attribute identifies the element that provides a detailed, extended description for the object.
83 aria_details "aria-details",
84 /// The `aria-disabled` attribute indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
85 aria_disabled "aria-disabled",
86 /// The `aria-dropeffect` attribute indicates what functions can be performed when a dragged object is released on the drop target.
87 aria_dropeffect "aria-dropeffect",
88 /// The `aria-errormessage` attribute identifies the element that provides an error message for the object.
89 aria_errormessage "aria-errormessage",
90 /// The `aria-expanded` attribute indicates whether an element, or another grouping element it controls, is currently expanded or collapsed.
91 aria_expanded "aria-expanded",
92 /// The `aria-flowto` attribute identifies the next element (or elements) in an alternate reading order of content.
93 aria_flowto "aria-flowto",
94 /// The `aria-grabbed` attribute indicates an element's "grabbed" state in a drag-and-drop operation.
95 aria_grabbed "aria-grabbed",
96 /// The `aria-haspopup` attribute indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.
97 aria_haspopup "aria-haspopup",
98 /// The `aria-hidden` attribute indicates whether the element is exposed to an accessibility API.
99 aria_hidden "aria-hidden",
100 /// The `aria-invalid` attribute indicates the entered value does not conform to the format expected by the application.
101 aria_invalid "aria-invalid",
102 /// The `aria-keyshortcuts` attribute indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.
103 aria_keyshortcuts "aria-keyshortcuts",
104 /// The `aria-label` attribute defines a string value that labels the current element.
105 aria_label "aria-label",
106 /// The `aria-labelledby` attribute identifies the element (or elements) that labels the current element.
107 aria_labelledby "aria-labelledby",
108 /// The `aria-live` attribute indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.
109 aria_live "aria-live",
110 /// The `aria-modal` attribute indicates whether an element is modal when displayed.
111 aria_modal "aria-modal",
112 /// The `aria-multiline` attribute indicates whether a text box accepts multiple lines of input or only a single line.
113 aria_multiline "aria-multiline",
114 /// The `aria-multiselectable` attribute indicates that the user may select more than one item from the current selectable descendants.
115 aria_multiselectable "aria-multiselectable",
116 /// The `aria-orientation` attribute indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.
117 aria_orientation "aria-orientation",
118 /// The `aria-owns` attribute identifies an element (or elements) in order to define a relationship between the element with `aria-owns` and the target element.
119 aria_owns "aria-owns",
120 /// The `aria-placeholder` attribute defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
121 aria_placeholder "aria-placeholder",
122 /// The `aria-posinset` attribute defines an element's position within a set or treegrid.
123 aria_posinset "aria-posinset",
124 /// The `aria-pressed` attribute indicates the current "pressed" state of toggle buttons.
125 aria_pressed "aria-pressed",
126 /// The `aria-readonly` attribute indicates that the element is not editable, but is otherwise operable.
127 aria_readonly "aria-readonly",
128 /// The `aria-relevant` attribute indicates what user agent changes to the accessibility tree should be monitored.
129 aria_relevant "aria-relevant",
130 /// The `aria-required` attribute indicates that user input is required on the element before a form may be submitted.
131 aria_required "aria-required",
132 /// The `aria-roledescription` attribute defines a human-readable, author-localized description for the role of an element.
133 aria_roledescription "aria-roledescription",
134 /// The `aria-rowcount` attribute defines the total number of rows in a table, grid, or treegrid.
135 aria_rowcount "aria-rowcount",
136 /// The `aria-rowindex` attribute defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
137 aria_rowindex "aria-rowindex",
138 /// The `aria-rowspan` attribute defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
139 aria_rowspan "aria-rowspan",
140 /// The `aria-selected` attribute indicates the current "selected" state of various widgets.
141 aria_selected "aria-selected",
142 /// The `aria-setsize` attribute defines the number of items in the current set of listitems or treeitems.
143 aria_setsize "aria-setsize",
144 /// The `aria-sort` attribute indicates if items in a table or grid are sorted in ascending or descending order.
145 aria_sort "aria-sort",
146 /// The `aria-valuemax` attribute defines the maximum allowed value for a range widget.
147 aria_valuemax "aria-valuemax",
148 /// The `aria-valuemin` attribute defines the minimum allowed value for a range widget.
149 aria_valuemin "aria-valuemin",
150 /// The `aria-valuenow` attribute defines the current value for a range widget.
151 aria_valuenow "aria-valuenow",
152 /// The `aria-valuetext` attribute defines the human-readable text alternative of aria-valuenow for a range widget.
153 aria_valuetext "aria-valuetext",
154 /// The `as` attribute specifies the type of destination for the content of the link.
155 r#as "as",
156 /// The `async` attribute indicates that the script should be executed asynchronously.
157 r#async "async",
158 /// The `attributionsrc` attribute indicates that you want the browser to send an `Attribution-Reporting-Eligible` header along with a request.
159 attributionsrc "attributionsrc",
160 /// The `autocapitalize` attribute controls whether and how text input is automatically capitalized as it is entered/edited by the user.
161 autocapitalize "autocapitalize",
162 /// The `autocomplete` attribute indicates whether an input field can have its value automatically completed by the browser.
163 autocomplete "autocomplete",
164 /// The `autofocus` attribute indicates that an element should be focused on page load.
165 autofocus "autofocus",
166 /// The `autoplay` attribute indicates that the media should start playing as soon as it is loaded.
167 autoplay "autoplay",
168 /// The `background` attribute sets the URL of the background image for the document.
169 background "background",
170 /// The `bgcolor` attribute sets the background color of an element.
171 bgcolor "bgcolor",
172 /// The `blocking` attribute indicates that the script will block the page loading until it is executed.
173 blocking "blocking",
174 /// The `border` attribute sets the width of an element's border.
175 border "border",
176 /// The `buffered` attribute contains the time ranges that the media has been buffered.
177 buffered "buffered",
178 /// The `capture` attribute indicates that the user must capture media using a camera or microphone instead of selecting a file from the file picker.
179 capture "capture",
180 /// The `challenge` attribute specifies the challenge string that is paired with the keygen element.
181 challenge "challenge",
182 /// The `charset` attribute specifies the character encoding of the HTML document.
183 charset "charset",
184 /// The `checked` attribute indicates whether an input element is checked or not.
185 checked "checked",
186 /// The `cite` attribute contains a URL that points to the source of the quotation or change.
187 cite "cite",
188 // class is handled in ../class.rs instead
189 //class "class",
190 /// The `code` attribute specifies the URL of the applet's class file to be loaded and executed.
191 code "code",
192 /// The `color` attribute specifies the color of an element's text.
193 color "color",
194 /// The `cols` attribute specifies the visible width of a text area.
195 cols "cols",
196 /// The `colspan` attribute defines the number of columns a cell should span.
197 colspan "colspan",
198 /// The `command` attribute defines the command to be invoked when user clicks the `<button>` element which has `commandfor` attribute specified.
199 command "command",
200 /// The `commandfor` attribute defines the id of the element which button is controlling. It is generic version of `popovertarget`.
201 commandfor "commandfor",
202 /// The `content` attribute gives the value associated with the http-equiv or name attribute.
203 content "content",
204 /// The `contenteditable` attribute indicates whether the element's content is editable.
205 contenteditable "contenteditable",
206 /// The `contextmenu` attribute specifies the ID of a `<menu>` element to open as a context menu.
207 contextmenu "contextmenu",
208 /// The `controls` attribute indicates whether the browser should display playback controls for the media.
209 controls "controls",
210 /// The `controlslist` attribute allows the control of which controls to show on the media element whenever the browser shows its native controls.
211 controlslist "controlslist",
212 /// The `coords` attribute specifies the coordinates of an area in an image map.
213 coords "coords",
214 /// The `crossorigin` attribute indicates whether the resource should be fetched with a CORS request.
215 crossorigin "crossorigin",
216 /// The `csp` attribute allows the embedding document to define the Content Security Policy that an embedded document must agree to enforce upon itself.
217 csp "csp",
218 /// The `data` attribute specifies the URL of the resource that is being embedded.
219 data "data",
220 /// The `datetime` attribute specifies the date and time.
221 datetime "datetime",
222 /// The `decoding` attribute indicates the preferred method for decoding images.
223 decoding "decoding",
224 /// The `default` attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate.
225 default "default",
226 /// The `defer` attribute indicates that the script should be executed after the document has been parsed.
227 defer "defer",
228 /// The `dir` attribute specifies the text direction for the content in an element.
229 dir "dir",
230 /// The `dirname` attribute identifies the text directionality of an input element.
231 dirname "dirname",
232 /// The `disabled` attribute indicates whether the element is disabled.
233 disabled "disabled",
234 /// The `disablepictureinpicture` attribute indicates that the element is not allowed to be displayed in Picture-in-Picture mode.
235 disablepictureinpicture "disablepictureinpicture",
236 /// The `disableremoteplayback` attribute indicates that the element is not allowed to be displayed using remote playback.
237 disableremoteplayback "disableremoteplayback",
238 /// The `download` attribute indicates that the linked resource is intended to be downloaded rather than displayed in the browser.
239 download "download",
240 /// The `draggable` attribute indicates whether the element is draggable.
241 draggable "draggable",
242 /// The `elementtiming` attributes marks the element for observation by the `PerformanceElementTiming` API.
243 elementtiming "elementtiming",
244 /// The `enctype` attribute specifies the MIME type of the form submission.
245 enctype "enctype",
246 /// The `enterkeyhint` attribute allows authors to specify what kind of action label or icon will be presented to users in a virtual keyboard's enter key.
247 enterkeyhint "enterkeyhint",
248 /// The `exportparts` attribute enables the sharing of parts of an element's shadow DOM with a containing document.
249 exportparts "exportparts",
250 /// The `fetchpriority` attribute allows developers to specify the priority of a resource fetch request.
251 fetchpriority "fetchpriority",
252 /// The `for` attribute specifies which form element a label is bound to.
253 r#for "for",
254 /// The `form` attribute associates the element with a form element.
255 form "form",
256 /// The `formaction` attribute specifies the URL that processes the form submission.
257 formaction "formaction",
258 /// The `formenctype` attribute specifies how the form data should be encoded when submitted.
259 formenctype "formenctype",
260 /// The `formmethod` attribute specifies the HTTP method to use when submitting the form.
261 formmethod "formmethod",
262 /// The `formnovalidate` attribute indicates that the form should not be validated when submitted.
263 formnovalidate "formnovalidate",
264 /// The `formtarget` attribute specifies where to display the response after submitting the form.
265 formtarget "formtarget",
266 /// The `headers` attribute specifies the headers associated with the element.
267 headers "headers",
268 /// The `height` attribute specifies the height of an element.
269 height "height",
270 /// The `hidden` attribute indicates that the element is not yet, or is no longer, relevant.
271 hidden "hidden",
272 /// The `high` attribute specifies the range that is considered to be a high value.
273 high "high",
274 /// The `href` attribute specifies the URL of a linked resource.
275 href "href",
276 /// The `hreflang` attribute specifies the language of the linked resource.
277 hreflang "hreflang",
278 /// The `http-equiv` attribute provides an HTTP header for the information/value of the content attribute.
279 http_equiv "http-equiv",
280 /// The `icon` attribute specifies the URL of an image to be used as a graphical icon for the element.
281 icon "icon",
282 /// The `id` attribute specifies a unique id for an element.
283 id "id",
284 /// The `imagesizes` attribute specifies image sizes for different page layouts.
285 imagesizes "imagesizes",
286 /// The `imagesrcset` attribute specifies the URLs of multiple images to be used in different situations.
287 imagesrcset "imagesrcset",
288 /// The `importance` attribute specifies the relative importance of the element.
289 importance "importance",
290 /// The `inert` attribute indicates that the element is non-interactive and won't be accessible to user interactions or assistive technologies.
291 inert "inert",
292 /// The `inputmode` attribute specifies the type of data that the user will enter.
293 inputmode "inputmode",
294 /// The `integrity` attribute contains a hash value that the browser can use to verify that the resource hasn't been altered.
295 integrity "integrity",
296 /// The `intrinsicsize` attribute specifies the intrinsic size of an image or video.
297 intrinsicsize "intrinsicsize",
298 /// The `is` attribute allows you to specify the name of a custom element.
299 is "is",
300 /// The `ismap` attribute indicates that the image is part of a server-side image map.
301 ismap "ismap",
302 /// The `itemid` attribute assigns a unique identifier to an item.
303 itemid "itemid",
304 /// The `itemprop` attribute adds a property to an item.
305 itemprop "itemprop",
306 /// The `itemref` attribute provides a list of element IDs that have additional properties for the item.
307 itemref "itemref",
308 /// The `itemscope` attribute creates a new item and adds it to the page's items.
309 itemscope "itemscope",
310 /// The `itemtype` attribute specifies the type of an item.
311 itemtype "itemtype",
312 /// The `keytype` attribute specifies the type of key used by the `<keygen>` element.
313 keytype "keytype",
314 /// The `kind` attribute specifies the kind of text track.
315 kind "kind",
316 /// The `label` attribute provides a user-readable title for an element.
317 label "label",
318 /// The `lang` attribute specifies the language of the element's content.
319 lang "lang",
320 /// The `language` attribute specifies the scripting language used for the script.
321 language "language",
322 /// The `list` attribute identifies a `<datalist>` element that contains pre-defined options for an `<input>` element.
323 list "list",
324 /// The `loading` attribute indicates how the browser should load the image.
325 loading "loading",
326 /// The `loop` attribute indicates whether the media should start over again when it reaches the end.
327 r#loop "loop",
328 /// The `low` attribute specifies the range that is considered to be a low value.
329 low "low",
330 /// The `manifest` attribute specifies the URL of a document's cache manifest.
331 manifest "manifest",
332 /// The `max` attribute specifies the maximum value for an input element.
333 max "max",
334 /// The `maxlength` attribute specifies the maximum number of characters that an input element can accept.
335 maxlength "maxlength",
336 /// The `media` attribute specifies what media/device the linked resource is optimized for.
337 media "media",
338 /// The `method` attribute specifies the HTTP method to use when submitting the form.
339 method "method",
340 /// The `min` attribute specifies the minimum value for an input element.
341 min "min",
342 /// The `minlength` attribute specifies the minimum number of characters that an input element can accept.
343 minlength "minlength",
344 /// The `multiple` attribute indicates whether the user can enter more than one value.
345 multiple "multiple",
346 /// The `muted` attribute indicates whether the audio will be initially silenced on page load.
347 muted "muted",
348 /// The `name` attribute specifies the name of the element.
349 name "name",
350 /// The `nomodule` attribute indicates that the script should not be executed in browsers that support ES modules.
351 nomodule "nomodule",
352 /// The `nonce` attribute provides a cryptographic nonce to ensure that a script or style is approved for execution.
353 nonce "nonce",
354 /// The `novalidate` attribute indicates that the form should not be validated when submitted.
355 novalidate "novalidate",
356 /// The `open` attribute indicates whether the details element is open or closed.
357 open "open",
358 /// The `optimum` attribute specifies the range that is considered to be an optimum value.
359 optimum "optimum",
360 /// The `part` attribute identifies the element as a shadow DOM part.
361 part "part",
362 /// The `pattern` attribute specifies a regular expression that the input element's value is checked against.
363 pattern "pattern",
364 /// The `ping` attribute contains a space-separated list of URLs to be notified if the user follows the hyperlink.
365 ping "ping",
366 /// The `placeholder` attribute provides a short hint that describes the expected value of the input element.
367 placeholder "placeholder",
368 /// The `playsinline` attribute indicates that the video should play inline in the element's playback area.
369 playsinline "playsinline",
370 /// The `popover` attribute indicates that an element is a popover and specifies the event that causes the popover to be shown.
371 popover "popover",
372 /// The `popovertarget` attribute specifies the ID of an element to toggle a popover.
373 popovertarget "popovertarget",
374 /// The `popovertargetaction` attribute specifies the action that shows the popover.
375 popovertargetaction "popovertargetaction",
376 /// The `poster` attribute specifies an image to be shown while the video is downloading or until the user hits the play button.
377 poster "poster",
378 /// The `preload` attribute specifies if and how the author thinks that the media file should be loaded when the page loads.
379 preload "preload",
380 /// The `radiogroup` attribute specifies the name of the group to which the element belongs.
381 radiogroup "radiogroup",
382 /// The `readonly` attribute indicates that the user cannot modify the value of the input element.
383 readonly "readonly",
384 /// The `referrerpolicy` attribute specifies which referrer information to include with requests.
385 referrerpolicy "referrerpolicy",
386 /// The `rel` attribute specifies the relationship between the current document and the linked document.
387 rel "rel",
388 /// The `required` attribute indicates that the user must fill in the input element before submitting the form.
389 required "required",
390 /// The `reversed` attribute indicates that the list should be displayed in a descending order.
391 reversed "reversed",
392 /// The `role` attribute defines the role of an element in the context of a web application.
393 role "role",
394 /// The `rows` attribute specifies the number of visible text lines for a text area.
395 rows "rows",
396 /// The `rowspan` attribute defines the number of rows a cell should span.
397 rowspan "rowspan",
398 /// The `sandbox` attribute applies extra restrictions to the content in the `<iframe>`.
399 sandbox "sandbox",
400 /// The `scope` attribute specifies whether a header cell is a header for a column, row, or group of columns or rows.
401 scope "scope",
402 /// The `scoped` attribute indicates that the styles in a `<style>` element are scoped to the parent element.
403 scoped "scoped",
404 /// The `selected` attribute indicates that the option is selected.
405 selected "selected",
406 /// The `shape` attribute specifies the shape of the area.
407 shape "shape",
408 /// The `size` attribute specifies the width of the input element.
409 size "size",
410 /// The `sizes` attribute specifies the sizes of icons for visual media.
411 sizes "sizes",
412 /// The `slot` attribute assigns a slot to an element.
413 slot "slot",
414 /// The `span` attribute defines the number of columns in a `<colgroup>` or the number of rows in a `<rowgroup>`.
415 span "span",
416 /// The `spellcheck` attribute indicates whether spell checking is allowed for the element.
417 spellcheck "spellcheck",
418 /// The `src` attribute specifies the URL of the media resource.
419 src "src",
420 /// The `srcdoc` attribute specifies the HTML content of the page to show in the `<iframe>`.
421 srcdoc "srcdoc",
422 /// The `srclang` attribute specifies the language of the text track.
423 srclang "srclang",
424 /// The `srcset` attribute specifies the URLs of multiple images to be used in different situations.
425 srcset "srcset",
426 /// The `start` attribute specifies the start value of the list.
427 start "start",
428 /// The `step` attribute specifies the legal number intervals for an input element.
429 step "step",
430 // style is handled in ../style.rs instead
431 // style "style",
432 /// The `summary` attribute provides a summary of the content of the table.
433 summary "summary",
434 /// The `tabindex` attribute specifies the tab order of an element.
435 tabindex "tabindex",
436 /// The `target` attribute specifies where to open the linked document.
437 target "target",
438 /// The `title` attribute provides additional information about an element.
439 title "title",
440 /// The `translate` attribute specifies whether the content of an element should be translated or not.
441 translate "translate",
442 /// The `type` attribute specifies the type of the element.
443 r#type "type",
444 /// The `usemap` attribute specifies the image map to be used by an `<img>` element.
445 usemap "usemap",
446 /// The `value` attribute specifies the value of the element.
447 value "value",
448 /// The `virtualkeyboardpolicy` attribute controls the policy for virtual keyboards.
449 virtualkeyboardpolicy "virtualkeyboardpolicy",
450 /// The `width` attribute specifies the width of an element.
451 width "width",
452 /// The `wrap` attribute specifies how the text in a text area is to be wrapped when submitted in a form.
453 wrap "wrap",
454 // Event Handler Attributes
455 /// The `onabort` attribute specifies the event handler for the abort event.
456 onabort "onabort",
457 /// The `onautocomplete` attribute specifies the event handler for the autocomplete event.
458 onautocomplete "onautocomplete",
459 /// The `onautocompleteerror` attribute specifies the event handler for the autocompleteerror event.
460 onautocompleteerror "onautocompleteerror",
461 /// The `onblur` attribute specifies the event handler for the blur event.
462 onblur "onblur",
463 /// The `oncancel` attribute specifies the event handler for the cancel event.
464 oncancel "oncancel",
465 /// The `oncanplay` attribute specifies the event handler for the canplay event.
466 oncanplay "oncanplay",
467 /// The `oncanplaythrough` attribute specifies the event handler for the canplaythrough event.
468 oncanplaythrough "oncanplaythrough",
469 /// The `onchange` attribute specifies the event handler for the change event.
470 onchange "onchange",
471 /// The `onclick` attribute specifies the event handler for the click event.
472 onclick "onclick",
473 /// The `onclose` attribute specifies the event handler for the close event.
474 onclose "onclose",
475 /// The `oncontextmenu` attribute specifies the event handler for the contextmenu event.
476 oncontextmenu "oncontextmenu",
477 /// The `oncuechange` attribute specifies the event handler for the cuechange event.
478 oncuechange "oncuechange",
479 /// The `ondblclick` attribute specifies the event handler for the double click event.
480 ondblclick "ondblclick",
481 /// The `ondrag` attribute specifies the event handler for the drag event.
482 ondrag "ondrag",
483 /// The `ondragend` attribute specifies the event handler for the dragend event.
484 ondragend "ondragend",
485 /// The `ondragenter` attribute specifies the event handler for the dragenter event.
486 ondragenter "ondragenter",
487 /// The `ondragleave` attribute specifies the event handler for the dragleave event.
488 ondragleave "ondragleave",
489 /// The `ondragover` attribute specifies the event handler for the dragover event.
490 ondragover "ondragover",
491 /// The `ondragstart` attribute specifies the event handler for the dragstart event.
492 ondragstart "ondragstart",
493 /// The `ondrop` attribute specifies the event handler for the drop event.
494 ondrop "ondrop",
495 /// The `ondurationchange` attribute specifies the event handler for the durationchange event.
496 ondurationchange "ondurationchange",
497 /// The `onemptied` attribute specifies the event handler for the emptied event.
498 onemptied "onemptied",
499 /// The `onended` attribute specifies the event handler for the ended event.
500 onended "onended",
501 /// The `onerror` attribute specifies the event handler for the error event.
502 onerror "onerror",
503 /// The `onfocus` attribute specifies the event handler for the focus event.
504 onfocus "onfocus",
505 /// The `onformdata` attribute specifies the event handler for the formdata event.
506 onformdata "onformdata",
507 /// The `oninput` attribute specifies the event handler for the input event.
508 oninput "oninput",
509 /// The `oninvalid` attribute specifies the event handler for the invalid event.
510 oninvalid "oninvalid",
511 /// The `onkeydown` attribute specifies the event handler for the keydown event.
512 onkeydown "onkeydown",
513 /// The `onkeypress` attribute specifies the event handler for the keypress event.
514 onkeypress "onkeypress",
515 /// The `onkeyup` attribute specifies the event handler for the keyup event.
516 onkeyup "onkeyup",
517 /// The `onlanguagechange` attribute specifies the event handler for the languagechange event.
518 onlanguagechange "onlanguagechange",
519 /// The `onload` attribute specifies the event handler for the load event.
520 onload "onload",
521 /// The `onloadeddata` attribute specifies the event handler for the loadeddata event.
522 onloadeddata "onloadeddata",
523 /// The `onloadedmetadata` attribute specifies the event handler for the loadedmetadata event.
524 onloadedmetadata "onloadedmetadata",
525 /// The `onloadstart` attribute specifies the event handler for the loadstart event.
526 onloadstart "onloadstart",
527 /// The `onmousedown` attribute specifies the event handler for the mousedown event.
528 onmousedown "onmousedown",
529 /// The `onmouseenter` attribute specifies the event handler for the mouseenter event.
530 onmouseenter "onmouseenter",
531 /// The `onmouseleave` attribute specifies the event handler for the mouseleave event.
532 onmouseleave "onmouseleave",
533 /// The `onmousemove` attribute specifies the event handler for the mousemove event.
534 onmousemove "onmousemove",
535 /// The `onmouseout` attribute specifies the event handler for the mouseout event.
536 onmouseout "onmouseout",
537 /// The `onmouseover` attribute specifies the event handler for the mouseover event.
538 onmouseover "onmouseover",
539 /// The `onmouseup` attribute specifies the event handler for the mouseup event.
540 onmouseup "onmouseup",
541 /// The `onpause` attribute specifies the event handler for the pause event.
542 onpause "onpause",
543 /// The `onplay` attribute specifies the event handler for the play event.
544 onplay "onplay",
545 /// The `onplaying` attribute specifies the event handler for the playing event.
546 onplaying "onplaying",
547 /// The `onprogress` attribute specifies the event handler for the progress event.
548 onprogress "onprogress",
549 /// The `onratechange` attribute specifies the event handler for the ratechange event.
550 onratechange "onratechange",
551 /// The `onreset` attribute specifies the event handler for the reset event.
552 onreset "onreset",
553 /// The `onresize` attribute specifies the event handler for the resize event.
554 onresize "onresize",
555 /// The `onscroll` attribute specifies the event handler for the scroll event.
556 onscroll "onscroll",
557 /// The `onsecuritypolicyviolation` attribute specifies the event handler for the securitypolicyviolation event.
558 onsecuritypolicyviolation "onsecuritypolicyviolation",
559 /// The `onseeked` attribute specifies the event handler for the seeked event.
560 onseeked "onseeked",
561 /// The `onseeking` attribute specifies the event handler for the seeking event.
562 onseeking "onseeking",
563 /// The `onselect` attribute specifies the event handler for the select event.
564 onselect "onselect",
565 /// The `onslotchange` attribute specifies the event handler for the slotchange event.
566 onslotchange "onslotchange",
567 /// The `onstalled` attribute specifies the event handler for the stalled event.
568 onstalled "onstalled",
569 /// The `onsubmit` attribute specifies the event handler for the submit event.
570 onsubmit "onsubmit",
571 /// The `onsuspend` attribute specifies the event handler for the suspend event.
572 onsuspend "onsuspend",
573 /// The `ontimeupdate` attribute specifies the event handler for the timeupdate event.
574 ontimeupdate "ontimeupdate",
575 /// The `ontoggle` attribute specifies the event handler for the toggle event.
576 ontoggle "ontoggle",
577 /// The `onvolumechange` attribute specifies the event handler for the volumechange event.
578 onvolumechange "onvolumechange",
579 /// The `onwaiting` attribute specifies the event handler for the waiting event.
580 onwaiting "onwaiting",
581 /// The `onwebkitanimationend` attribute specifies the event handler for the webkitanimationend event.
582 onwebkitanimationend "onwebkitanimationend",
583 /// The `onwebkitanimationiteration` attribute specifies the event handler for the webkitanimationiteration event.
584 onwebkitanimationiteration "onwebkitanimationiteration",
585 /// The `onwebkitanimationstart` attribute specifies the event handler for the webkitanimationstart event.
586 onwebkitanimationstart "onwebkitanimationstart",
587 /// The `onwebkittransitionend` attribute specifies the event handler for the webkittransitionend event.
588 onwebkittransitionend "onwebkittransitionend",
589 /// The `onwheel` attribute specifies the event handler for the wheel event.
590 onwheel "onwheel",
591
592 // MathML attributes
593 /// The `accent` attribute specifies whether the element should be treated as an accent.
594 accent "accent",
595 /// The `accentunder` attribute specifies whether the element should be treated as an accent under the base element.
596 accentunder "accentunder",
597 /// The `columnalign` attribute specifies the alignment of columns.
598 columnalign "columnalign",
599 /// The `columnlines` attribute specifies the presence of lines between columns.
600 columnlines "columnlines",
601 /// The `columnspacing` attribute specifies the spacing between columns.
602 columnspacing "columnspacing",
603 /// The `columnspan` attribute specifies the number of columns the element should span.
604 columnspan "columnspan",
605 /// The `depth` attribute specifies the depth of the element.
606 depth "depth",
607 /// The `display` attribute specifies the display style of the element.
608 display "display",
609 /// The `displaystyle` attribute specifies whether the element is displayed in display style.
610 displaystyle "displaystyle",
611 /// The `fence` attribute specifies whether the element should act as a fence.
612 fence "fence",
613 /// The `frame` attribute specifies the type of frame for the element.
614 frame "frame",
615 /// The `framespacing` attribute specifies the spacing around frames.
616 framespacing "framespacing",
617 /// The `linethickness` attribute specifies the thickness of lines.
618 linethickness "linethickness",
619 /// The `lspace` attribute specifies the space on the left side of the element.
620 lspace "lspace",
621 /// The `mathbackground` attribute specifies the background color of the element.
622 mathbackground "mathbackground",
623 /// The `mathcolor` attribute specifies the color of the element.
624 mathcolor "mathcolor",
625 /// The `mathsize` attribute specifies the size of the element.
626 mathsize "mathsize",
627 /// The `mathvariant` attribute specifies the mathematical variant of the element.
628 mathvariant "mathvariant",
629 /// The `maxsize` attribute specifies the maximum size of the element.
630 maxsize "maxsize",
631 /// The `minsize` attribute specifies the minimum size of the element.
632 minsize "minsize",
633 /// The `movablelimits` attribute specifies whether the limits of the element are movable.
634 movablelimits "movablelimits",
635 /// The `notation` attribute specifies the type of notation for the element.
636 notation "notation",
637 /// The `rowalign` attribute specifies the alignment of rows.
638 rowalign "rowalign",
639 /// The `rowlines` attribute specifies the presence of lines between rows.
640 rowlines "rowlines",
641 /// The `rowspacing` attribute specifies the spacing between rows.
642 rowspacing "rowspacing",
643 /// The `rspace` attribute specifies the space on the right side of the element.
644 rspace "rspace",
645 /// The `scriptlevel` attribute specifies the script level of the element.
646 scriptlevel "scriptlevel",
647 /// The `separator` attribute specifies whether the element is a separator.
648 separator "separator",
649 /// The `stretchy` attribute specifies whether the element is stretchy.
650 stretchy "stretchy",
651 /// The `symmetric` attribute specifies whether the element is symmetric.
652 symmetric "symmetric",
653 /// The `voffset` attribute specifies the vertical offset of the element.
654 voffset "voffset",
655 /// The `xmlns` attribute specifies the XML namespace of the element.
656 xmlns "xmlns",
657}