Module Html_types
HTML types with variants, goes with Html_sigs.T.
Attribute types.
type cdata = stringCharacter data
type id = stringA document-unique identifier
type idref = stringA reference to a document-unique identifier
type idrefs = idref listA space-separated list of references to document-unique identifiers
type name = stringA name with the same character constraints as ID above
type nmtoken = stringA name composed of only name tokens as defined in XML 1.0
type nmtokens = nmtoken listOne or more whitespace-separated NMTOKEN values
Data Types
type character = charA single character from ISO 10646.
type charset = stringA character encoding, as per RFC2045 (MIME).
type charsets = charset listA space-separated list of character encodings, as per RFC2045 (MIME).
type contenttype = stringA media type, as per RFC2045 (MIME).
type contenttypes = contenttype listA comma-separated list of media types, as per RFC2045 (MIME).
type number = inttype numbers = number listtype coords = string listComma- separated list of coordinates to use in defining areas.
type datetime = stringDate and time information.
Either a number or date and time information.
type fpi = stringA character string representing an SGML Formal Public Identifier.
type frametarget = stringFrame name used as destination for results of certain actions.
type languagecode = stringA language code, as per RFC5646/BCP47.
type linktype = [ | `Alternate| `Archives| `Author| `Bookmark| `Canonical| `Dns_prefetch| `External| `First| `Help| `Icon| `Index| `Last| `License| `Manifest| `Me| `Modulepreload| `Next| `Nofollow| `Noopener| `Noreferrer| `Opener| `Pingback| `Preconnect| `Prefetch| `Prev| `Preload| `Prerender| `Search| `Stylesheet| `Sidebar| `Tag| `Up| `Other of string
]type linktypes = linktype listAuthors may use the following recognized link types, listed here with their conventional interpretations. A LinkTypes value refers to a space-separated list of link types. White space characters are not permitted within link types. These link types are case-insensitive, i.e., "Alternate" has the same meaning as "alternate".
User agents, search engines, etc. may interpret these link types in a variety of ways. For example, user agents may provide access to linked documents through a navigation bar.
`Alternate: Gives alternate representations of the current document.`Archives: Provides a link to a collection of records, documents, or other materials of historical interest.`Author: Gives a link to the current document's author.`Bookmark: Gives the permalink for the nearest ancestor section.`Canonical: Gives the preferred location for accessing the current document.`Dns_prefetch: Specifies that the user agent should preemptively perform DNS resolution for the target resource's origin..`External: Indicates that the referenced document is not part of the same site as the current document.`First: Indicates that the current document is a part of a series, and that the first document in the series is the referenced document.`Help: Provides a link to context-sensitive help.`Icon: Imports an icon to represent the current document.`Index: Gives a link to the document that provides a table of contents or index listing the current document.`Last: Indicates that the current document is a part of a series, and that the last document in the series is the referenced document.`Licence: Indicates that the main content of the current document is covered by the copyright license described by the referenced document.`Manifest: Imports or links to an application manifest.`Me: Indicates that the current document represents the person who owns the linked content.`Modulepreload: Specifies that the user agent must preemptively fetch the module script and store it in the document's module map for later evaluation. Optionally, the module's dependencies can be fetched as well.`Next: Indicates that the current document is a part of a series, and that the next document in the series is the referenced document.`Nofollow: Indicates that the current document's original author or publisher does not endorse the referenced document.`Noopener: Instructs the browser to open the link without granting the new browsing context access to the document that opened it.`Noreferrer: Requires that the user agent not send an HTTP Referer (sic) header if the user follows the hyperlink.`Opener: Creates an auxiliary browsing context if the hyperlink would otherwise create a top-level traversable with a non-auxiliary browsing context (i.e., has "_blank" as target attribute value).`Pingback: Gives the address of the pingback server that handles pingbacks to the current document.`Preconnect: Specifies that the user agent should preemptively connect to the target resource's origin.`Prefetch: Specifies that the target resource should be preemptively cached.`Preload: Specifies that the user agent must preemptively fetch and cache the target resource for current navigation according to the potential destination given by the as attribute (and the priority associated with the corresponding destination).`Prerender: Specifies that the user agent should preemptively fetch the target resource and process it in a way that helps deliver a faster response in the future.`Prev: Indicates that the current document is a part of a series, and that the previous document in the series is the referenced document.`Search: Gives a link to a resource that can be used to search through the current document and its related pages.`Stylesheet: Imports a stylesheet.`Sidebar: Specifies that the referenced document, if retrieved, is intended to be shown in the browser's sidebar (if it has one).`Tag: Gives a tag (identified by the given address) that applies to the current document.`Up: Provides a link to a document giving the context for the current document.
type mediadesc_token = [ | `All| `Aural| `Braille| `Embossed| `Handheld| `Print| `Projection| `Screen| `Speech| `Tty| `Tv| `Raw_mediadesc of string
]type mediadesc = mediadesc_token listThe MediaDesc attribute is a comma-separated list of media descriptors. The following is a list of recognized media descriptors:
`Screen: For non-paged computer screens.`TTY: For media using a fixed-pitch character grid (like teletypes, terminals, or devices with limited display capabilities).`TV: For TV-type devices (low resolution, limited scrollability).`Projection: For projectors.`Handheld: For handheld devices (small screen, limited bandwidth).`Print: For paged and for documents viewed on screen in print preview mode.`Braille: For braille tactile feedback devices.`Aural: For speech synthesizers.`All: For speech synthesizers.`Raw_mediadesc: For more complex (untyped) media descriptors.
type float_number = floattype pixels = intThe value is an integer that represents the number of pixels of the canvas (screen, paper). Thus, the value "50" means fifty pixels. For normative information about the definition of a pixel, please consult CSS2.
type script_ = stringScript data can be the content of the "script" element and the value of intrinsic event attributes. User agents must not evaluate script data as HTML markup but instead must pass it on as data to a script engine.
The case-sensitivity of script data depends on the scripting language.
Please note that script data that is element content may not contain character references, but script data that is the value of an attribute may contain them.
type text = stringArbitrary textual data, likely meant to be human-readable.
Core
type i18n = [ | `XML_lang| `Lang
]type core = [ | `Accesskey| `Class| `Contenteditable| `Dir| `Draggable| `Hidden| `Id| i18n| `Spellcheck| `Style_Attr| `Tabindex| `Translate| `Title| `User_data| `XMLns
]Events
type events = [ | `OnAbort| `OnBlur| `OnCanPlay| `OnCanPlayThrough| `OnChange| `OnClick| `OnClose| `OnContextMenu| `OnDblClick| `OnDrag| `OnDragEnd| `OnDragEnter| `OnDragLeave| `OnDragOver| `OnDragStart| `OnDrop| `OnDurationChange| `OnEmptied| `OnEnded| `OnError| `OnFocus| `OnFormChange| `OnFormInput| `OnInput| `OnInvalid| `OnMouseDown| `OnMouseUp| `OnMouseOver| `OnMouseMove| `OnMouseOut| `OnMouseWheel| `OnPause| `OnPlay| `OnPlaying| `OnProgress| `OnRateChange| `OnReadyStateChange| `OnScroll| `OnSeeked| `OnSeeking| `OnSelect| `OnShow| `OnStalled| `OnSubmit| `OnSuspend| `OnTimeUpdate| `OnTouchStart| `OnTouchEnd| `OnTouchMove| `OnTouchCancel| `OnVolumeChange| `OnWaiting| `OnKeyPress| `OnKeyDown| `OnKeyUp| `OnLoad| `OnLoadedData| `OnLoadedMetaData| `OnLoadStart
]Javascript events
ARIA
type aria = [ | `Role| `Aria
]Categories of HTML elements
These category are mainly subdivised in
- interactive,
- phrasing,
- flow5, these categories may overlap
type heading = [ | `H1| `H2| `H3| `H4| `H5| `H6| `Hgroup
]type sectioning = [ | `Section| `Aside| `Article
]type resetable = [ | `Textarea| `Select| `Output| `Keygen| `Input
]type submitable = [ | `Textarea| `Select| `Keygen| `Input| `Button
]type labelable_without_interactive = [ | `Progress| `Meter
]type sectionningroot = [ | `Td| `Figure| `Fieldset| `Details| `Body| `Blockquote| `Dialog
]type subresource_integrity = [ | `Crossorigin| `Integrity
]type (+'interactive, +'noscript, +'regular, +'media) transparent = [ | `A of 'interactive| `Noscript of 'noscript| `Canvas of 'regular| `Map of 'regular| `Ins of 'regular| `Del of 'regular| `Object of 'regular| `Object_interactive of 'regular| `Audio_interactive of 'media| `Video_interactive of 'media| `Audio of 'media| `Video of 'media
]Transparent elements. Such elements have a part of they children in their data and behaves like them. We could do something like a: 'a elt list -> 'a elt but the information about the node name would be forgotten and would allow things like that : p [a [a []]]. This system allow to build non-conforming terms such as a [a []] but when passed to a standard element (such as p), it will yield an error. Exception to that : if you embdedd the element in another transparent (of an another kind) : p [noscript (a [a []])] will be correctly typed.
type (+'noscript, +'regular, +'media) transparent_without_interactive = [ | `Noscript of 'noscript| `Ins of 'regular| `Del of 'regular| `Object of 'regular| `Canvas of 'regular| `Map of 'regular| `Audio of 'media| `Video of 'media
]type (+'interactive, +'regular, +'media) transparent_without_noscript = [ | `A of 'interactive| `Ins of 'regular| `Del of 'regular| `Canvas of 'regular| `Map of 'regular| `Object of 'regular| `Object_interactive of 'regular| `Video of 'media| `Audio of 'media| `Video_interactive of 'media| `Audio_interactive of 'media
]type (+'interactive, +'noscript, +'regular) transparent_without_media = [ | `A of 'interactive| `Noscript of 'noscript| `Ins of 'regular| `Del of 'regular| `Map of 'regular| `Canvas of 'regular| `Object of 'regular| `Object_interactive of 'regular
]type metadata_without_title = [ | `Template| `Style| `Script| `Noscript of [ `Meta | `Link | `Style ]| `Meta| `Link| `Command| `Base
]Metadata without title
Metadata contents. Used specially in <head>
Interactive contents : contents that require user-interaction (Forms, link, etc.)
type core_interactive = [ | `Textarea| `Select| `Menu| `Label| `Keygen| `Input| `Img_interactive| `Iframe| `Embed| `Details| `Button
]Core element types are element types without transparent.
type interactive = [ ]type core_phrasing = [ | labelable| submitable| `Wbr| `Var| `U| `Svg| `Time| `Template| `Sup| `Sub| `Strong| `Span| `Small| `Script| `Samp| `Ruby| `Q| `Mark| `Label| `Kbd| `Iframe| `I| `Embed| `Em| `Dfn| `Datalist| `Command| `Code| `Cite| `Br| `Bdo| `B| `Abbr| `Img| `Img_interactive| `Picture| `PCDATA
]Phrasing contents is inline contents : bold text, span, and so on.
type core_phrasing_without_noscript = [ | labelable| submitable| `Wbr| `Var| `U| `Time| `Template| `Sup| `Sub| `Svg| `Strong| `Span| `Small| `Script| `Samp| `Ruby| `Q| `Mark| `Label| `Kbd| `Iframe| `I| `Embed| `Em| `Dfn| `Datalist| `Command| `Code| `Cite| `Br| `Bdo| `Img| `Img_interactive| `Picture| `B| `Abbr| `PCDATA
]type core_phrasing_without_interactive = [ | labelable_without_interactive| `Wbr| `Var| `U| `Time| `Template| `Sup| `Sub| `Strong| `Span| `Small| `Script| `Svg| `Samp| `Ruby| `Q| `Mark| `Kbd| `Img| `Picture| `I| `Em| `Dfn| `Datalist| `Command| `Code| `Cite| `Br| `Bdo| `B| `Abbr| `PCDATA
]type core_phrasing_without_media = [ | labelable| submitable| `Wbr| `Var| `U| `Time| `Template| `Svg| `Sup| `Sub| `Strong| `Span| `Small| `Script| `Samp| `Ruby| `Q| `Mark| `Label| `Kbd| `Img| `Img_interactive| `Picture| `Iframe| `I| `Embed| `Em| `Dfn| `Datalist| `Command| `Code| `Cite| `Br| `Bdo| `B| `Abbr| `PCDATA
]type phrasing_without_noscript =
(phrasing_without_interactive, phrasing, phrasing_without_media)
transparent_without_noscriptand phrasing_without_media = [ | core_phrasing_without_media| (phrasing_without_interactive, phrasing_without_noscript, phrasing) transparent_without_media
]and phrasing_without_interactive = [ | core_phrasing_without_interactive| (phrasing_without_noscript, phrasing, phrasing_without_media) transparent_without_interactive
]and phrasing = [ | (phrasing_without_interactive, phrasing_without_noscript, phrasing, phrasing_without_media) transparent| core_phrasing
]type (+'a, +'b) between_phrasing_and_phrasing_without_interactive =
[< core_phrasing
| ([< phrasing_without_interactive ] as 'b,
phrasing_without_noscript,
phrasing,
phrasing_without_media)
transparent Abbr B Bdo Br Canvas Cite Code Command Datalist Del Dfn Em I Img Picture Ins Kbd Map Mark Meter Noscript Object PCDATA Progress Q Ruby Samp Script Small Span Strong Sub Sup Svg Template Time U Var Wbr ] as 'atype phrasing_without_dfn = [ | labelable| submitable| `Wbr| `Var| `U| `Time| `Template| `Sup| `Sub| `Strong| `Span| `Small| `Script| `Samp| `Ruby| `Q| `Mark| `Label| `Img| `Img_interactive| `Picture| `Kbd| `I| `Em| `Datalist| `Command| `Code| `Cite| `Br| `Bdo| `B| `Abbr| `PCDATA| (phrasing_without_interactive, phrasing_without_noscript, phrasing_without_dfn, phrasing_without_media) transparent
]Phrasing without the interactive markups
type phrasing_without_label = [ | labelable| submitable| `Wbr| `Var| `U| `Time| `Template| `Sup| `Sub| `Strong| `Span| `Img| `Img_interactive| `Picture| `Small| `Script| `Samp| `Ruby| `Q| `Mark| `Kbd| `I| `Em| `Dfn| `Datalist| `Command| `Code| `Cite| `Br| `Bdo| `B| `Abbr| `PCDATA| (phrasing_without_interactive, phrasing_without_noscript, phrasing_without_label, phrasing_without_media) transparent
]type phrasing_without_progress = [ | resetable| submitable| `Wbr| `Var| `U| `Time| `Template| `Sup| `Sub| `Strong| `Span| `Small| `Script| `Samp| `Img| `Img_interactive| `Picture| `Ruby| `Q| `Meter| `Mark| `Label| `Kbd| `I| `Em| `Dfn| `Datalist| `Command| `Code| `Cite| `Button| `Br| `Bdo| `B| `Abbr| `PCDATA| (phrasing_without_interactive, phrasing_without_noscript, phrasing_without_progress, phrasing_without_media) transparent
]type phrasing_without_time = [ | labelable| submitable| `Wbr| `Var| `U| `Template| `Sup| `Sub| `Strong| `Img| `Img_interactive| `Picture| `Span| `Small| `Script| `Samp| `Ruby| `Q| `Mark| `Label| `Kbd| `I| `Em| `Dfn| `Datalist| `Command| `Code| `Cite| `Br| `Bdo| `B| `Abbr| `PCDATA| (phrasing_without_interactive, phrasing_without_noscript, phrasing_without_time, phrasing_without_media) transparent
]type phrasing_without_meter = [ | submitable| resetable| `Progress| `Button| `Wbr| `Var| `U| `Time| `Template| `Sup| `Img| `Img_interactive| `Picture| `Sub| `Strong| `Span| `Small| `Script| `Samp| `Ruby| `Q| `Mark| `Label| `Kbd| `I| `Em| `Dfn| `Datalist| `Command| `Code| `Cite| `Br| `Bdo| `B| `Abbr| `PCDATA| (phrasing_without_interactive, phrasing_without_noscript, phrasing_without_meter, phrasing_without_media) transparent
]type core_flow5 = [ | core_phrasing| formassociated| formatblock| `Ul| `Table| `Style| `Ol| `Menu| `Hr| `Form| `Figure| `Dl| `Details| `Main| `Dialog
]type core_flow5_without_interactive = [ | core_phrasing_without_interactive| formassociated| formatblock| `Ul| `Table| `Style| `Ol| `Menu| `Hr| `Form| `Figure| `Dl| `Main| `Dialog
]type core_flow5_without_noscript = [ | core_phrasing_without_noscript| formassociated| formatblock| `Ul| `Table| `Style| `Ol| `Menu| `Hr| `Form| `Figure| `Dl| `Details| `Main| `Dialog
]type core_flow5_without_media = [ | core_phrasing_without_media| formassociated| formatblock| `Ul| `Table| `Style| `Ol| `Menu| `Hr| `Form| `Figure| `Dl| `Details| `Main| `Dialog
]type flow5_without_interactive = [ | core_flow5_without_interactive| (flow5_without_noscript, flow5, flow5_without_media) transparent_without_interactive
]and flow5_without_noscript = [ | core_flow5_without_noscript| (flow5_without_interactive, flow5, flow5_without_media) transparent_without_noscript
]and flow5_without_media = [ | core_flow5_without_media| (flow5_without_interactive, flow5_without_noscript, flow5) transparent_without_media
]and flow5 = [ | core_flow5| (flow5_without_interactive, flow5_without_noscript, flow5, flow5_without_media) transparent
]type flow5_without_table = [ | core_phrasing| formassociated| formatblock| `Ul| `Style| `Ol| `Menu| `Hr| `Form| `Figure| `Dl| `Details| `Main| `Dialog| (flow5_without_interactive, flow5_without_noscript, flow5, flow5_without_media) transparent
]type flow5_without_form = [ | core_phrasing| formassociated| formatblock| `Ul| `Table| `Style| `Ol| `Menu| `Hr| `Figure| `Dl| `Details| `Main| `Dialog| (flow5_without_interactive, flow5_without_noscript, flow5, flow5_without_media) transparent
]type pcdata = [ | `PCDATA
]type txt = [ | `PCDATA
]type notagtype no_attribute_allowedtype html = [ | `Html
]type html_content_fun = [ | `Head| `Body
]type html_content = html_content_funtype head = [ | `Head
]type body = [ | `Body
]type body_attrib = [ | common| `OnAfterPrint| `OnBeforePrint| `OnBeforeUnload| `OnHashChange| `OnMessage| `OnOffLine| `OnOnLine| `OnPageHide| `OnPageShow| `OnPopState| `OnRedo| `OnResize| `OnStorage| `OnUndo| `OnUnload
]type body_content = flow5type body_content_fun = flow5type svg = [ | `Svg
]type svg_content = Svg_types.svg_contenttype svg_attrib = Svg_types.svg_attrtype base = [ | `Base
]type base_content = notagtype base_content_fun = notagtype title = [ | `Title
]type title_content = [ | `PCDATA
]type title_content_fun = [ | `PCDATA
]type title_attrib = noattribtype header = [ | `Header
]type header_content = [ ]type header_content_fun = [ ]type section = [ | `Section
]type h1 = [ | `H1
]type h2 = [ | `H2
]type h3 = [ | `H3
]type h4 = [ | `H4
]type h5 = [ | `H5
]type h6 = [ | `H6
]type hgroup = [ | `Hgroup
]type hgroup_content = [ | `H1| `H2| `H3| `H4| `H5| `H6
]type hgroup_content_fun = [ | `H1| `H2| `H3| `H4| `H5| `H6
]type address = [ | `Address
]type address_content = [ ]type address_content_fun = [ ]type article = [ | `Article
]type aside = [ | `Aside
]type main = [ | `Main
]type p = [ | `P
]type pre = [ | `Pre
]type blockquote = [ | `Blockquote
]type dialog = [ | `Dialog
]type div = [ | `Div
]type ol = [ | `Ol
]type ul = [ | `Ul
]type dd = [ | `Dd
]type dt = [ | `Dt
]type dt_content = [ ]type dt_content_fun = [ ]type dl = [ | `Dl
]type dl_content = [ | `Dt| `Dd
]type dl_content_fun = [ | `Dt| `Dd
]type figcaption = [ | `Figcaption
]type figure = [ | `Figure
]type rp = [ | `Rp
]type rt = [ | `Rt
]type ruby = [ | `Ruby
]type hr = [ | `Hr
]type hr_content = notagtype hr_content_fun = notagtype b = [ | `B
]type i = [ | `I
]type u = [ | `U
]type small = [ | `Small
]type sub = [ | `Sub
]type sup = [ | `Sup
]type mark = [ | `Mark
]type wbr = [ | `Wbr
]type wbr_content = notagtype wbr_content_fun = notagtype bdo = [ | `Bdo
]type abbr = [ | `Abbr
]type br = [ | `Br
]type br_content = notagtype br_content_fun = notagtype cite = [ | `Cite
]type code = [ | `Code
]type dfn = [ | `Dfn
]type em = [ | `Em
]type kbd = [ | `Kbd
]type q = [ | `Q
]type samp = [ | `Samp
]type span = [ | `Span
]type strong = [ | `Strong
]type time = [ | `Time
]type var = [ | `Var
]type a_content = flow5_without_interactivetype a_content_fun = flow5_without_interactivetype 'a a = [ | `A of 'a
]type 'a del = [ | `Del of 'a
]type del_content = flow5type del_ = del_content deltype del_content_fun = flow5type 'a ins = [ | `Ins of 'a
]type ins_content = flow5type ins_ = ins_content instype ins_content_fun = flow5type iframe = [ | `Iframe
]type iframe_content = [ | `PCDATA
]type iframe_content_fun = [ | `PCDATA
]type iframe_attrib = [ | common| `Allowfullscreen| `Allowpaymentrequest| `Src| `Name| `Sandbox| `Seamless| `Width| `Height| `Referrerpolicy
]type object__content_fun = flow5type 'a object_ = [ | `Object of 'a| `Object_interactive of 'a
]type object__ = object__content object_type param = [ | `Param
]type param_content = notagtype param_content_fun = notagtype embed = [ | `Embed
]type embed_content = notagtype embed_content_fun = notagtype img = [ | `Img
]type img_interactive = [ | `Img| `Img_interactive
]type img_content = notagtype img_content_fun = notagtype media_attrib = [ | `Crossorigin| `Preload| `Autoplay| `Mediagroup| `Loop| `Muted| `Controls
]type 'a audio = [ | `Audio of 'a
]type 'a audio_interactive = [ | `Audio of 'a| `Audio_interactive of 'a
]type audio_content = flow5_without_mediatype audio_ = audio_content audiotype audio_content_fun = flow5_without_mediatype 'a video = [ | `Video of 'a
]type 'a video_interactive = [ | `Video of 'a| `Video_interactive of 'a
]type video_content = flow5_without_mediatype video_ = video_content videotype video_content_fun = flow5_without_mediatype 'a canvas = [ | `Canvas of 'a
]type canvas_content = flow5type canvas_ = canvas_content canvastype canvas_content_fun = flow5type source = [ | `Source
]type source_content = notagtype source_content_fun = notagtype area = [ | `Area
]type area_content = notagtype area_content_fun = notagtype area_attrib = [ | common| `Alt| `Coords| `Shape| `Target| `Rel| `Media| `Hreflang| `Mime_type| `Download
]type 'a map = [ | `Map of 'a
]type map_content = flow5type map_ = map_content maptype map_content_fun = flow5type caption = [ | `Caption
]type table = [ | `Table
]type table_content = [ | `Tr
]type table_content_fun = [ | `Tr
]type tablex = [ | `Table
]type tablex_content = [ | `Tbody
]type tablex_content_fun = [ | `Tbody
]type colgroup = [ | `Colgroup
]type colgroup_content = [ | `Col
]type colgroup_content_fun = [ | `Col
]type col = [ | `Col
]type col_content = notagtype col_content_fun = notagtype thead = [ | `Thead
]type thead_content = [ | `Tr
]type thead_content_fun = [ | `Tr
]type tbody = [ | `Tbody
]type tbody_content = [ | `Tr
]type tbody_content_fun = [ | `Tr
]type tfoot = [ | `Tfoot
]type tfoot_content = [ | `Tr
]type tfoot_content_fun = [ | `Tr
]type td = [ | `Td
]type th = [ | `Th
]type tr = [ | `Tr
]type tr_content = [ | `Td| `Th
]type tr_content_fun = [ | `Td| `Th
]type form = [ | `Form
]type form_attrib = [ | common| `Accept_charset| `Action| `Enctype| `Method| `Name| `Target| `Autocomplete| `Novalidate
]type fieldset = [ | `Fieldset
]type legend = [ | `Legend
]type label = [ | `Label
]type input = [ | `Input
]type input_content = notagtype input_content_fun = notagtype input_attrib = [ | common| `Accept| `Alt| `Autocomplete| `Autofocus| `Checked| `Disabled| `Form| `Formaction| `Formenctype| `Formmethod| `Method| `Formnovalidate| `Formtarget| `Height| `List| `Input_Max| `Maxlength| `Minlength| `Input_Min| `Multiple| `Name| `Pattern| `Placeholder| `ReadOnly| `Required| `Size| `Src| `Step| `Input_Type| `Value| `Width| `Inputmode
]type textarea = [ | `Textarea
]type textarea_attrib = [ | common| `Autofocus| `Disabled| `Form| `Maxlength| `Minlength| `Name| `Placeholder| `ReadOnly| `Required| `Wrap| `Rows| `Cols
]type textarea_content = [ | `PCDATA
]type textarea_content_fun = textarea_contenttype button = [ ]type button_content = [ ]type button_content_fun = [ ]type button_attrib = [ ]type select = [ | `Select
]type select_content = [ | `Optgroup| `Option
]type select_content_fun = [ | `Optgroup| `Option
]type datalist = [ | `Datalist
]type datalist_content = notagtype datalist_content_fun = notagtype optgroup = [ | `Optgroup
]type optgroup_content = [ | `Option
]type optgroup_content_fun = [ | `Option
]type selectoption = [ | `Option
]type option_content_fun = [ | `PCDATA
]type option_content = [ | `PCDATA
]type keygen = [ | `Keygen
]type keygen_content = notagtype keygen_content_fun = notagtype progress = [ | `Progress
]type meter = [ | `Meter
]type output_elt = [ | `Output
]type details = [ | `Details
]type summary = [ | `Summary
]type command = [ | `Command
]type command_content = notagtype command_content_fun = notagtype noscript_content = flow5_without_noscripttype noscript_content_fun = flow5_without_noscripttype meta = [ | `Meta
]type meta_content = notagtype meta_content_fun = notagtype style = [ | `Style
]type style_content = [ | `PCDATA
]type style_content_fun = [ | `PCDATA
]type script = [ | `Script
]type script_attrib = [ | common| subresource_integrity| `Async| `Charset| `Src| `Defer| `Script_type
]type script_content = [ | `PCDATA
]type script_content_fun = [ | `PCDATA
]type template = [ | `Template
]type link = [ | `Link
]type link_content = notagtype link_content_fun = notagtype link_attrib = [ | common| subresource_integrity| `Hreflang| `Media| `Rel| `Href| `Sizes| `Mime_type
]type picture = [ | `Picture
]type referrerpolicy = [ | `Empty| `No_referrer| `No_referrer_when_downgrade| `Origin| `Origin_when_cross_origin| `Same_origin| `Strict_origin| `Strict_origin_when_cross_origin| `Unsafe_url
]type big_variant = [ | `W3_org_1999_xhtml| `Default| `Preserve| `Selected| `Get| `Post| `Checked| `Disabled| `ReadOnly| `Async| `Autofocus| `Autoplay| `Muted| `Anonymous| `Use_credentials| `Controls| `Ltr| `Rtl| `Formnovalidate| `Hidden| `Ismap| `Loop| `Novalidate| `Open| `Audio| `Metadata| `None| `Pubdate| `Required| `Reversed| `Scoped| `Seamless| `Hard| `Soft| `Multiple| `Checkbox| `Command| `Radio| `Context| `Toolbar| `Char| `Justify| `Left| `Right| `Col| `Colgroup| `Row| `Rowgroup| `All| `Cols| `Groups| `None| `Rows| `Rect| `Circle| `Poly| `Default| `One| `Zero| `Auto| `No| `Yes| `Defer| `Verbatim| `Latin| `Latin_name| `Latin_prose| `Full_width_latin| `Kana| `Katakana| `Numeric| `Tel| `Email| `Url| `Text| `Decimal| `Search
]type sandbox_token = [ | `Allow_forms| `Allow_pointer_lock| `Allow_popups| `Allow_same_origin| `Allow_script
]type input_type = [ | `Button| `Checkbox| `Color| `Date| `Datetime| `Datetime_local| `Email| `File| `Hidden| `Image| `Month| `Number| `Password| `Radio| `Range| `Reset| `Search| `Submit| `Tel| `Text| `Time| `Url| `Week
]type script_type = [ | `Javascript| `Module| `Mime of string
]type autocomplete_option = [ | `On| `Off| `Tokens of string list
]