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 `closedby` attribute specifies the types of user actions that can be used to close the associated `<dialog>` element.
183 closedby "closedby",
184 /// The `charset` attribute specifies the character encoding of the HTML document.
185 charset "charset",
186 /// The `checked` attribute indicates whether an input element is checked or not.
187 checked "checked",
188 /// The `cite` attribute contains a URL that points to the source of the quotation or change.
189 cite "cite",
190 // class is handled in ../class.rs instead
191 //class "class",
192 /// The `code` attribute specifies the URL of the applet's class file to be loaded and executed.
193 code "code",
194 /// The `color` attribute specifies the color of an element's text.
195 color "color",
196 /// The `cols` attribute specifies the visible width of a text area.
197 cols "cols",
198 /// The `colspan` attribute defines the number of columns a cell should span.
199 colspan "colspan",
200 /// The `command` attribute defines the command to be invoked when user clicks the `<button>` element which has `commandfor` attribute specified.
201 command "command",
202 /// The `commandfor` attribute defines the id of the element which button is controlling. It is generic version of `popovertarget`.
203 commandfor "commandfor",
204 /// The `content` attribute gives the value associated with the http-equiv or name attribute.
205 content "content",
206 /// The `contenteditable` attribute indicates whether the element's content is editable.
207 contenteditable "contenteditable",
208 /// The `contextmenu` attribute specifies the ID of a `<menu>` element to open as a context menu.
209 contextmenu "contextmenu",
210 /// The `controls` attribute indicates whether the browser should display playback controls for the media.
211 controls "controls",
212 /// The `controlslist` attribute allows the control of which controls to show on the media element whenever the browser shows its native controls.
213 controlslist "controlslist",
214 /// The `coords` attribute specifies the coordinates of an area in an image map.
215 coords "coords",
216 /// The `crossorigin` attribute indicates whether the resource should be fetched with a CORS request.
217 crossorigin "crossorigin",
218 /// The `csp` attribute allows the embedding document to define the Content Security Policy that an embedded document must agree to enforce upon itself.
219 csp "csp",
220 /// The `data` attribute specifies the URL of the resource that is being embedded.
221 data "data",
222 /// The `datetime` attribute specifies the date and time.
223 datetime "datetime",
224 /// The `decoding` attribute indicates the preferred method for decoding images.
225 decoding "decoding",
226 /// The `default` attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate.
227 default "default",
228 /// The `defer` attribute indicates that the script should be executed after the document has been parsed.
229 defer "defer",
230 /// The `dir` attribute specifies the text direction for the content in an element.
231 dir "dir",
232 /// The `dirname` attribute identifies the text directionality of an input element.
233 dirname "dirname",
234 /// The `disabled` attribute indicates whether the element is disabled.
235 disabled "disabled",
236 /// The `disablepictureinpicture` attribute indicates that the element is not allowed to be displayed in Picture-in-Picture mode.
237 disablepictureinpicture "disablepictureinpicture",
238 /// The `disableremoteplayback` attribute indicates that the element is not allowed to be displayed using remote playback.
239 disableremoteplayback "disableremoteplayback",
240 /// The `download` attribute indicates that the linked resource is intended to be downloaded rather than displayed in the browser.
241 download "download",
242 /// The `draggable` attribute indicates whether the element is draggable.
243 draggable "draggable",
244 /// The `elementtiming` attributes marks the element for observation by the `PerformanceElementTiming` API.
245 elementtiming "elementtiming",
246 /// The `enctype` attribute specifies the MIME type of the form submission.
247 enctype "enctype",
248 /// 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.
249 enterkeyhint "enterkeyhint",
250 /// The `exportparts` attribute enables the sharing of parts of an element's shadow DOM with a containing document.
251 exportparts "exportparts",
252 /// The `fetchpriority` attribute allows developers to specify the priority of a resource fetch request.
253 fetchpriority "fetchpriority",
254 /// The `for` attribute specifies which form element a label is bound to.
255 r#for "for",
256 /// The `form` attribute associates the element with a form element.
257 form "form",
258 /// The `formaction` attribute specifies the URL that processes the form submission.
259 formaction "formaction",
260 /// The `formenctype` attribute specifies how the form data should be encoded when submitted.
261 formenctype "formenctype",
262 /// The `formmethod` attribute specifies the HTTP method to use when submitting the form.
263 formmethod "formmethod",
264 /// The `formnovalidate` attribute indicates that the form should not be validated when submitted.
265 formnovalidate "formnovalidate",
266 /// The `formtarget` attribute specifies where to display the response after submitting the form.
267 formtarget "formtarget",
268 /// The `headers` attribute specifies the headers associated with the element.
269 headers "headers",
270 /// The `height` attribute specifies the height of an element.
271 height "height",
272 /// The `hidden` attribute indicates that the element is not yet, or is no longer, relevant.
273 hidden "hidden",
274 /// The `high` attribute specifies the range that is considered to be a high value.
275 high "high",
276 /// The `href` attribute specifies the URL of a linked resource.
277 href "href",
278 /// The `hreflang` attribute specifies the language of the linked resource.
279 hreflang "hreflang",
280 /// The `http-equiv` attribute provides an HTTP header for the information/value of the content attribute.
281 http_equiv "http-equiv",
282 /// The `icon` attribute specifies the URL of an image to be used as a graphical icon for the element.
283 icon "icon",
284 /// The `id` attribute specifies a unique id for an element.
285 id "id",
286 /// The `imagesizes` attribute specifies image sizes for different page layouts.
287 imagesizes "imagesizes",
288 /// The `imagesrcset` attribute specifies the URLs of multiple images to be used in different situations.
289 imagesrcset "imagesrcset",
290 /// The `importance` attribute specifies the relative importance of the element.
291 importance "importance",
292 /// The `inert` attribute indicates that the element is non-interactive and won't be accessible to user interactions or assistive technologies.
293 inert "inert",
294 /// The `inputmode` attribute specifies the type of data that the user will enter.
295 inputmode "inputmode",
296 /// The `integrity` attribute contains a hash value that the browser can use to verify that the resource hasn't been altered.
297 integrity "integrity",
298 /// The `intrinsicsize` attribute specifies the intrinsic size of an image or video.
299 intrinsicsize "intrinsicsize",
300 /// The `is` attribute allows you to specify the name of a custom element.
301 is "is",
302 /// The `ismap` attribute indicates that the image is part of a server-side image map.
303 ismap "ismap",
304 /// The `itemid` attribute assigns a unique identifier to an item.
305 itemid "itemid",
306 /// The `itemprop` attribute adds a property to an item.
307 itemprop "itemprop",
308 /// The `itemref` attribute provides a list of element IDs that have additional properties for the item.
309 itemref "itemref",
310 /// The `itemscope` attribute creates a new item and adds it to the page's items.
311 itemscope "itemscope",
312 /// The `itemtype` attribute specifies the type of an item.
313 itemtype "itemtype",
314 /// The `keytype` attribute specifies the type of key used by the `<keygen>` element.
315 keytype "keytype",
316 /// The `kind` attribute specifies the kind of text track.
317 kind "kind",
318 /// The `label` attribute provides a user-readable title for an element.
319 label "label",
320 /// The `lang` attribute specifies the language of the element's content.
321 lang "lang",
322 /// The `language` attribute specifies the scripting language used for the script.
323 language "language",
324 /// The `list` attribute identifies a `<datalist>` element that contains pre-defined options for an `<input>` element.
325 list "list",
326 /// The `loading` attribute indicates how the browser should load the image.
327 loading "loading",
328 /// The `loop` attribute indicates whether the media should start over again when it reaches the end.
329 r#loop "loop",
330 /// The `low` attribute specifies the range that is considered to be a low value.
331 low "low",
332 /// The `manifest` attribute specifies the URL of a document's cache manifest.
333 manifest "manifest",
334 /// The `max` attribute specifies the maximum value for an input element.
335 max "max",
336 /// The `maxlength` attribute specifies the maximum number of characters that an input element can accept.
337 maxlength "maxlength",
338 /// The `media` attribute specifies what media/device the linked resource is optimized for.
339 media "media",
340 /// The `method` attribute specifies the HTTP method to use when submitting the form.
341 method "method",
342 /// The `min` attribute specifies the minimum value for an input element.
343 min "min",
344 /// The `minlength` attribute specifies the minimum number of characters that an input element can accept.
345 minlength "minlength",
346 /// The `multiple` attribute indicates whether the user can enter more than one value.
347 multiple "multiple",
348 /// The `muted` attribute indicates whether the audio will be initially silenced on page load.
349 muted "muted",
350 /// The `name` attribute specifies the name of the element.
351 name "name",
352 /// The `nomodule` attribute indicates that the script should not be executed in browsers that support ES modules.
353 nomodule "nomodule",
354 /// The `nonce` attribute provides a cryptographic nonce to ensure that a script or style is approved for execution.
355 nonce "nonce",
356 /// The `novalidate` attribute indicates that the form should not be validated when submitted.
357 novalidate "novalidate",
358 /// The `open` attribute indicates whether the details element is open or closed.
359 open "open",
360 /// The `optimum` attribute specifies the range that is considered to be an optimum value.
361 optimum "optimum",
362 /// The `part` attribute identifies the element as a shadow DOM part.
363 part "part",
364 /// The `pattern` attribute specifies a regular expression that the input element's value is checked against.
365 pattern "pattern",
366 /// The `ping` attribute contains a space-separated list of URLs to be notified if the user follows the hyperlink.
367 ping "ping",
368 /// The `placeholder` attribute provides a short hint that describes the expected value of the input element.
369 placeholder "placeholder",
370 /// The `playsinline` attribute indicates that the video should play inline in the element's playback area.
371 playsinline "playsinline",
372 /// The `popover` attribute indicates that an element is a popover and specifies the event that causes the popover to be shown.
373 popover "popover",
374 /// The `popovertarget` attribute specifies the ID of an element to toggle a popover.
375 popovertarget "popovertarget",
376 /// The `popovertargetaction` attribute specifies the action that shows the popover.
377 popovertargetaction "popovertargetaction",
378 /// The `poster` attribute specifies an image to be shown while the video is downloading or until the user hits the play button.
379 poster "poster",
380 /// The `preload` attribute specifies if and how the author thinks that the media file should be loaded when the page loads.
381 preload "preload",
382 /// The `radiogroup` attribute specifies the name of the group to which the element belongs.
383 radiogroup "radiogroup",
384 /// The `readonly` attribute indicates that the user cannot modify the value of the input element.
385 readonly "readonly",
386 /// The `referrerpolicy` attribute specifies which referrer information to include with requests.
387 referrerpolicy "referrerpolicy",
388 /// The `rel` attribute specifies the relationship between the current document and the linked document.
389 rel "rel",
390 /// The `required` attribute indicates that the user must fill in the input element before submitting the form.
391 required "required",
392 /// The `reversed` attribute indicates that the list should be displayed in a descending order.
393 reversed "reversed",
394 /// The `role` attribute defines the role of an element in the context of a web application.
395 role "role",
396 /// The `rows` attribute specifies the number of visible text lines for a text area.
397 rows "rows",
398 /// The `rowspan` attribute defines the number of rows a cell should span.
399 rowspan "rowspan",
400 /// The `sandbox` attribute applies extra restrictions to the content in the `<iframe>`.
401 sandbox "sandbox",
402 /// The `scope` attribute specifies whether a header cell is a header for a column, row, or group of columns or rows.
403 scope "scope",
404 /// The `scoped` attribute indicates that the styles in a `<style>` element are scoped to the parent element.
405 scoped "scoped",
406 /// The `selected` attribute indicates that the option is selected.
407 selected "selected",
408 /// The `shape` attribute specifies the shape of the area.
409 shape "shape",
410 /// The `size` attribute specifies the width of the input element.
411 size "size",
412 /// The `sizes` attribute specifies the sizes of icons for visual media.
413 sizes "sizes",
414 /// The `slot` attribute assigns a slot to an element.
415 slot "slot",
416 /// The `span` attribute defines the number of columns in a `<colgroup>` or the number of rows in a `<rowgroup>`.
417 span "span",
418 /// The `spellcheck` attribute indicates whether spell checking is allowed for the element.
419 spellcheck "spellcheck",
420 /// The `src` attribute specifies the URL of the media resource.
421 src "src",
422 /// The `srcdoc` attribute specifies the HTML content of the page to show in the `<iframe>`.
423 srcdoc "srcdoc",
424 /// The `srclang` attribute specifies the language of the text track.
425 srclang "srclang",
426 /// The `srcset` attribute specifies the URLs of multiple images to be used in different situations.
427 srcset "srcset",
428 /// The `start` attribute specifies the start value of the list.
429 start "start",
430 /// The `step` attribute specifies the legal number intervals for an input element.
431 step "step",
432 // style is handled in ../style.rs instead
433 // style "style",
434 /// The `summary` attribute provides a summary of the content of the table.
435 summary "summary",
436 /// The `tabindex` attribute specifies the tab order of an element.
437 tabindex "tabindex",
438 /// The `target` attribute specifies where to open the linked document.
439 target "target",
440 /// The `title` attribute provides additional information about an element.
441 title "title",
442 /// The `translate` attribute specifies whether the content of an element should be translated or not.
443 translate "translate",
444 /// The `type` attribute specifies the type of the element.
445 r#type "type",
446 /// The `usemap` attribute specifies the image map to be used by an `<img>` element.
447 usemap "usemap",
448 /// The `value` attribute specifies the value of the element.
449 value "value",
450 /// The `virtualkeyboardpolicy` attribute controls the policy for virtual keyboards.
451 virtualkeyboardpolicy "virtualkeyboardpolicy",
452 /// The `width` attribute specifies the width of an element.
453 width "width",
454 /// The `wrap` attribute specifies how the text in a text area is to be wrapped when submitted in a form.
455 wrap "wrap",
456 // Event Handler Attributes
457 /// The `onabort` attribute specifies the event handler for the abort event.
458 onabort "onabort",
459 /// The `onautocomplete` attribute specifies the event handler for the autocomplete event.
460 onautocomplete "onautocomplete",
461 /// The `onautocompleteerror` attribute specifies the event handler for the autocompleteerror event.
462 onautocompleteerror "onautocompleteerror",
463 /// The `onblur` attribute specifies the event handler for the blur event.
464 onblur "onblur",
465 /// The `oncancel` attribute specifies the event handler for the cancel event.
466 oncancel "oncancel",
467 /// The `oncanplay` attribute specifies the event handler for the canplay event.
468 oncanplay "oncanplay",
469 /// The `oncanplaythrough` attribute specifies the event handler for the canplaythrough event.
470 oncanplaythrough "oncanplaythrough",
471 /// The `onchange` attribute specifies the event handler for the change event.
472 onchange "onchange",
473 /// The `onclick` attribute specifies the event handler for the click event.
474 onclick "onclick",
475 /// The `onclose` attribute specifies the event handler for the close event.
476 onclose "onclose",
477 /// The `oncontextmenu` attribute specifies the event handler for the contextmenu event.
478 oncontextmenu "oncontextmenu",
479 /// The `oncuechange` attribute specifies the event handler for the cuechange event.
480 oncuechange "oncuechange",
481 /// The `ondblclick` attribute specifies the event handler for the double click event.
482 ondblclick "ondblclick",
483 /// The `ondrag` attribute specifies the event handler for the drag event.
484 ondrag "ondrag",
485 /// The `ondragend` attribute specifies the event handler for the dragend event.
486 ondragend "ondragend",
487 /// The `ondragenter` attribute specifies the event handler for the dragenter event.
488 ondragenter "ondragenter",
489 /// The `ondragleave` attribute specifies the event handler for the dragleave event.
490 ondragleave "ondragleave",
491 /// The `ondragover` attribute specifies the event handler for the dragover event.
492 ondragover "ondragover",
493 /// The `ondragstart` attribute specifies the event handler for the dragstart event.
494 ondragstart "ondragstart",
495 /// The `ondrop` attribute specifies the event handler for the drop event.
496 ondrop "ondrop",
497 /// The `ondurationchange` attribute specifies the event handler for the durationchange event.
498 ondurationchange "ondurationchange",
499 /// The `onemptied` attribute specifies the event handler for the emptied event.
500 onemptied "onemptied",
501 /// The `onended` attribute specifies the event handler for the ended event.
502 onended "onended",
503 /// The `onerror` attribute specifies the event handler for the error event.
504 onerror "onerror",
505 /// The `onfocus` attribute specifies the event handler for the focus event.
506 onfocus "onfocus",
507 /// The `onformdata` attribute specifies the event handler for the formdata event.
508 onformdata "onformdata",
509 /// The `oninput` attribute specifies the event handler for the input event.
510 oninput "oninput",
511 /// The `oninvalid` attribute specifies the event handler for the invalid event.
512 oninvalid "oninvalid",
513 /// The `onkeydown` attribute specifies the event handler for the keydown event.
514 onkeydown "onkeydown",
515 /// The `onkeypress` attribute specifies the event handler for the keypress event.
516 onkeypress "onkeypress",
517 /// The `onkeyup` attribute specifies the event handler for the keyup event.
518 onkeyup "onkeyup",
519 /// The `onlanguagechange` attribute specifies the event handler for the languagechange event.
520 onlanguagechange "onlanguagechange",
521 /// The `onload` attribute specifies the event handler for the load event.
522 onload "onload",
523 /// The `onloadeddata` attribute specifies the event handler for the loadeddata event.
524 onloadeddata "onloadeddata",
525 /// The `onloadedmetadata` attribute specifies the event handler for the loadedmetadata event.
526 onloadedmetadata "onloadedmetadata",
527 /// The `onloadstart` attribute specifies the event handler for the loadstart event.
528 onloadstart "onloadstart",
529 /// The `onmousedown` attribute specifies the event handler for the mousedown event.
530 onmousedown "onmousedown",
531 /// The `onmouseenter` attribute specifies the event handler for the mouseenter event.
532 onmouseenter "onmouseenter",
533 /// The `onmouseleave` attribute specifies the event handler for the mouseleave event.
534 onmouseleave "onmouseleave",
535 /// The `onmousemove` attribute specifies the event handler for the mousemove event.
536 onmousemove "onmousemove",
537 /// The `onmouseout` attribute specifies the event handler for the mouseout event.
538 onmouseout "onmouseout",
539 /// The `onmouseover` attribute specifies the event handler for the mouseover event.
540 onmouseover "onmouseover",
541 /// The `onmouseup` attribute specifies the event handler for the mouseup event.
542 onmouseup "onmouseup",
543 /// The `onpause` attribute specifies the event handler for the pause event.
544 onpause "onpause",
545 /// The `onplay` attribute specifies the event handler for the play event.
546 onplay "onplay",
547 /// The `onplaying` attribute specifies the event handler for the playing event.
548 onplaying "onplaying",
549 /// The `onprogress` attribute specifies the event handler for the progress event.
550 onprogress "onprogress",
551 /// The `onratechange` attribute specifies the event handler for the ratechange event.
552 onratechange "onratechange",
553 /// The `onreset` attribute specifies the event handler for the reset event.
554 onreset "onreset",
555 /// The `onresize` attribute specifies the event handler for the resize event.
556 onresize "onresize",
557 /// The `onscroll` attribute specifies the event handler for the scroll event.
558 onscroll "onscroll",
559 /// The `onsecuritypolicyviolation` attribute specifies the event handler for the securitypolicyviolation event.
560 onsecuritypolicyviolation "onsecuritypolicyviolation",
561 /// The `onseeked` attribute specifies the event handler for the seeked event.
562 onseeked "onseeked",
563 /// The `onseeking` attribute specifies the event handler for the seeking event.
564 onseeking "onseeking",
565 /// The `onselect` attribute specifies the event handler for the select event.
566 onselect "onselect",
567 /// The `onslotchange` attribute specifies the event handler for the slotchange event.
568 onslotchange "onslotchange",
569 /// The `onstalled` attribute specifies the event handler for the stalled event.
570 onstalled "onstalled",
571 /// The `onsubmit` attribute specifies the event handler for the submit event.
572 onsubmit "onsubmit",
573 /// The `onsuspend` attribute specifies the event handler for the suspend event.
574 onsuspend "onsuspend",
575 /// The `ontimeupdate` attribute specifies the event handler for the timeupdate event.
576 ontimeupdate "ontimeupdate",
577 /// The `ontoggle` attribute specifies the event handler for the toggle event.
578 ontoggle "ontoggle",
579 /// The `onvolumechange` attribute specifies the event handler for the volumechange event.
580 onvolumechange "onvolumechange",
581 /// The `onwaiting` attribute specifies the event handler for the waiting event.
582 onwaiting "onwaiting",
583 /// The `onwebkitanimationend` attribute specifies the event handler for the webkitanimationend event.
584 onwebkitanimationend "onwebkitanimationend",
585 /// The `onwebkitanimationiteration` attribute specifies the event handler for the webkitanimationiteration event.
586 onwebkitanimationiteration "onwebkitanimationiteration",
587 /// The `onwebkitanimationstart` attribute specifies the event handler for the webkitanimationstart event.
588 onwebkitanimationstart "onwebkitanimationstart",
589 /// The `onwebkittransitionend` attribute specifies the event handler for the webkittransitionend event.
590 onwebkittransitionend "onwebkittransitionend",
591 /// The `onwheel` attribute specifies the event handler for the wheel event.
592 onwheel "onwheel",
593
594 // MathML attributes
595 /// The `accent` attribute specifies whether the element should be treated as an accent.
596 accent "accent",
597 /// The `accentunder` attribute specifies whether the element should be treated as an accent under the base element.
598 accentunder "accentunder",
599 /// The `columnalign` attribute specifies the alignment of columns.
600 columnalign "columnalign",
601 /// The `columnlines` attribute specifies the presence of lines between columns.
602 columnlines "columnlines",
603 /// The `columnspacing` attribute specifies the spacing between columns.
604 columnspacing "columnspacing",
605 /// The `columnspan` attribute specifies the number of columns the element should span.
606 columnspan "columnspan",
607 /// The `depth` attribute specifies the depth of the element.
608 depth "depth",
609 /// The `display` attribute specifies the display style of the element.
610 display "display",
611 /// The `displaystyle` attribute specifies whether the element is displayed in display style.
612 displaystyle "displaystyle",
613 /// The `fence` attribute specifies whether the element should act as a fence.
614 fence "fence",
615 /// The `frame` attribute specifies the type of frame for the element.
616 frame "frame",
617 /// The `framespacing` attribute specifies the spacing around frames.
618 framespacing "framespacing",
619 /// The `linethickness` attribute specifies the thickness of lines.
620 linethickness "linethickness",
621 /// The `lspace` attribute specifies the space on the left side of the element.
622 lspace "lspace",
623 /// The `mathbackground` attribute specifies the background color of the element.
624 mathbackground "mathbackground",
625 /// The `mathcolor` attribute specifies the color of the element.
626 mathcolor "mathcolor",
627 /// The `mathsize` attribute specifies the size of the element.
628 mathsize "mathsize",
629 /// The `mathvariant` attribute specifies the mathematical variant of the element.
630 mathvariant "mathvariant",
631 /// The `maxsize` attribute specifies the maximum size of the element.
632 maxsize "maxsize",
633 /// The `minsize` attribute specifies the minimum size of the element.
634 minsize "minsize",
635 /// The `movablelimits` attribute specifies whether the limits of the element are movable.
636 movablelimits "movablelimits",
637 /// The `notation` attribute specifies the type of notation for the element.
638 notation "notation",
639 /// The `rowalign` attribute specifies the alignment of rows.
640 rowalign "rowalign",
641 /// The `rowlines` attribute specifies the presence of lines between rows.
642 rowlines "rowlines",
643 /// The `rowspacing` attribute specifies the spacing between rows.
644 rowspacing "rowspacing",
645 /// The `rspace` attribute specifies the space on the right side of the element.
646 rspace "rspace",
647 /// The `scriptlevel` attribute specifies the script level of the element.
648 scriptlevel "scriptlevel",
649 /// The `separator` attribute specifies whether the element is a separator.
650 separator "separator",
651 /// The `stretchy` attribute specifies whether the element is stretchy.
652 stretchy "stretchy",
653 /// The `symmetric` attribute specifies whether the element is symmetric.
654 symmetric "symmetric",
655 /// The `voffset` attribute specifies the vertical offset of the element.
656 voffset "voffset",
657 /// The `xmlns` attribute specifies the XML namespace of the element.
658 xmlns "xmlns",
659}