12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082moduletypeS=sig(** Virtual Dom *)(**
A node of the virtual dom represents a node in the dom of the
browser. Basically there are text nodes and element nodes.
*)(** {1 Possible Name Shadowing}
Note that there are many, many, many specific elements and many, many
specific attributes . I.e. if you write a function like
{[
let view ... =
let open Html in
let open Attribute in
div [] [
h1 [] [text "Chapter 1"];
p [] [text "...."];
...
]
]}
some of the attribute names and html node names might shadow function
arguments or other local names in your module. Furthermore there are
nodes with the same name as an attribute (e.g. [label]). The name clash
might not be immediately visible because the OCaml compiler complains
about some type error.
In order to avoid a lot of typing by not opening the namespaces it might
be recommendable to write the above function in the following style
{[
let view ... =
let module H = Html in
let module A = Attribute in
H.div [] [
H.h1 [] [text "Chapter 1"];
H.p [] [text "...."];
...
]
]}
*)(** {1 Basic Interface} *)type_attrtype'msgt(** Type of a virtual dom node potentially generating a message
of type ['msg]. *)valtext:string->'msgt(** [text str] Create a text node. *)valnode:string->'msgattrlist->'msgtlist->'msgt(** [node tag attrs children]
Create an html element with a tagname, a list of attributes and a list
of children.
*)valnode_ns:string->string->'msgattrlist->'msgtlist->'msgt(** [node namespace tag attrs children]
Like [node], but creates the node within a namespace e.g.
"http://www.w3.org/2000/svg" for [svg] elements.
*)valsvg_node:string->'msgattrlist->'msgtlist->'msgt(** [svg_node tag attrs children]
Create an svg element with a tagname, a list of attributes and a list
of children. An svg element is a node in the namespace
"http://www.w3.org/2000/svg".
*)valmap:('a->'b)->'at->'bt(** [map f vdom]
Map a virtual dom [vdom] creating messages of type ['a] to a virtual dom
creating messages of type ['b].
*)valkeyed:string->'msgattrlist->(string*'msgt)list->'msgt(** [keyed tag attrs children]
Like [node], but add a unique identifier to each child node. This makes
adding, removing and modifying child nodes more efficient. The dom
diffing algorithm compares child nodes with the same identifier.
*)(** {1 Reference Nodes}
Reference nodes are nodes whose content is not controlled by the virtual
dom. In the virtual dom the reference nodes are inserted by their name.
The contents of reference nodes is controlled via
{!val:Command.set_reference}.
Reference nodes are persistent. Once referenced by {!val:reference} or
initialized or updated by {!val:Command.set_reference} they exist. Once
existing they can be modidfied by {!val:Command.set_reference}.
The virtual dom can use them or not. They remain in existence.
Reference nodes are a means to improve performance. In the following
examples reference nodes might be useful:
- Having an editor window in the browser (e.g. CodeMirror): It does not
make sense and is quite difficult to control an editor window by the
virtual dom. It is better to create a reference node and let the
internal state of the editor handled by some other meanss (e.g.
CodeMirror code)
- Spreadsheet with many cells: In a spreadsheet usully one cell is
updated and some cells whose content depends on the edited cell have to
be updated as well. Having a reference node for each cell makes it
possible to update only the edited and its dependent cells. Having all
spreadsheet cells managed by the virtual dom requires a diffing of all
cells. This can become quite slow if the spreadsheet is large.
*)valreference:string->'msgt(**
Insert a reference element into the dom.
*)(** {1 Specific elements} *)(** {2 Content sectioning} *)valaddress:'msgattrlist->'msgtlist->'msgt(** [address attrs children]
Defines a section containing contact information about a person or
organization.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/address
*)valarticle:'msgattrlist->'msgtlist->'msgt(** [article attrs children]
Defines self-contained content, which is usable independently of
the page. Examples include blog posts, user-submitted comments or
interactive widgets.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/article
*)valaside:'msgattrlist->'msgtlist->'msgt(** [aside attrs children]
Defines content that is not directly related to the main content of the page.
This content is often presented as a sidebar or a call-out box.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/aside
*)valfooter:'msgattrlist->'msgtlist->'msgt(** [footer attrs children]
Defines the footer for a page or section. It typically contains
information about the author, copyright data, or links to related
documents.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/footer
*)valheader:'msgattrlist->'msgtlist->'msgt(** [header attrs children]
Defines the header of a page or section. It typically contains a logo,
the title of the page and navigation elements.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/header
*)valh1:'msgattrlist->'msgtlist->'msgt(** [h1 attrs children]
Defines a section heading. <h1> is the highest section level and <h6> is
the lowest.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements
*)valh2:'msgattrlist->'msgtlist->'msgt(** [h2 attrs children]
Defines a section heading. [h1] is the highest section level and [h6] is
the lowest.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements
*)valh3:'msgattrlist->'msgtlist->'msgt(** [h3 attrs children]
Defines a section heading. [h1] is the highest section level and [h6] is
the lowest.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements
*)valh4:'msgattrlist->'msgtlist->'msgt(** [h4 attrs children]
Defines a section heading. [h1] is the highest section level and [h6] is
the lowest.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements
*)valh5:'msgattrlist->'msgtlist->'msgt(** [h5 attrs children]
Defines a section heading. [h1] is the highest section level and [h6] is
the lowest.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements
*)valh6:'msgattrlist->'msgtlist->'msgt(** [h6 attrs children]
Defines a section heading. [h1] is the highest section level and [h6] is
the lowest.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements
*)valhgroup:'msgattrlist->'msgtlist->'msgt(** [hgroup attrs children]
Represents a heading grouped with any secondary content, such as
subheadings, an alternative title, or a tagline.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/hgroup
*)valmain:'msgattrlist->'msgtlist->'msgt(** [main attrs children]
Defines the main or most important content of the page. There can be
only one main element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/main
*)valnav:'msgattrlist->'msgtlist->'msgt(** [nav attrs children]
Represents a section that provides navigation links.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/nav
*)valsection:'msgattrlist->'msgtlist->'msgt(** [section attrs children]
Represents a generic section of a document. Use this if the content
cannot be represented by a more specific semantic element. A section
should have a heading.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/section
*)valsearch:'msgattrlist->'msgtlist->'msgt(** [search attrs children]
Represents a section that contains controls for performing a search or
filtering operation.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/search
*)(** {2 Text content} *)valblockquote:'msgattrlist->'msgtlist->'msgt(** [blockquote attrs children]
Represents a block of quoted text. The [cite] attribute allows
specifying a source URL and the title of the source can be given using
the {!cite} element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/blockquote
*)valdd:'msgattrlist->'msgtlist->'msgt(** [dd attrs children]
Provides the definition or description of the {!dt} element listed
before it.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dd
*)valdiv:'msgattrlist->'msgtlist->'msgt(** [div attrs children]
A generic container. More specific elements such as {!article} or
{!main} should be used instead if their semantics apply to the content.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/div
*)valdl:'msgattrlist->'msgtlist->'msgt(** [dl attrs children]
Defines a definition list containing terms ({!dt} elements) and their
definitions ({!dd} elements).
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dl
*)valdt:'msgattrlist->'msgtlist->'msgt(** [dt attrs children]
Represents a term which is defined / described by the subsequent {!dd}
element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dt
*)valfigcaption:'msgattrlist->'msgtlist->'msgt(** [figcaption attrs children]
Represents the caption or legend of a figure.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/figcaption
*)valfigure:'msgattrlist->'msgtlist->'msgt(** [figure attrs children]
Defines a figure which contains some content and a {!figcaption}.
Examples for suitable content are pictures, diagrams, quotes or code
snippets.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/figure
*)valhr:'msgattrlist->'msgtlist->'msgt(** [hr attrs children]
Represents a thematic break between paragraphs.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/hr
*)valli:'msgattrlist->'msgtlist->'msgt(** [li attrs children]
Defines an item of an ordered or unordered list.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/li
*)valmenu:'msgattrlist->'msgtlist->'msgt(** [menu attrs children]
Represents a list of menu entries, such as navigation links or buttons.
This can be used as a semantic alternative to {!ol}.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/menu
*)valol:'msgattrlist->'msgtlist->'msgt(** [ol attrs children]
Represents an ordered list of items.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ol
*)valp:'msgattrlist->'msgtlist->'msgt(** [p attrs children]
Represents a text paragraph.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/p
*)valpre:'msgattrlist->'msgtlist->'msgt(** [pre attrs children]
Represents preformatted text which is to be presented exactly as written.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/pre
*)valul:'msgattrlist->'msgtlist->'msgt(** [ul attrs children]
Defines an unordered list of items.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ul
*)(** {2 Inline text semantics} *)vala:'msgattrlist->'msgtlist->'msgt(** [a attrs children]
Represents a hyperlink.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a
*)valabbr:'msgattrlist->'msgtlist->'msgt(** [abbr attrs children]
Represents an abbreviation or an acronym. The [title] attribute allows
specifying the full expansion for the abbreviation.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/abbr
*)valb:'msgattrlist->'msgtlist->'msgt(** [b attrs children]
Used to draw the reader's attention to the element's contents. This is
not meant to indicate special importance. Use {!strong} for that instead.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/b
*)valbdi:'msgattrlist->'msgtlist->'msgt(** [bdi attrs children]
Represents text that should be treated in isolation from its surrounding
when it comes to text directionality. This allows embedding text
snippets with a different or unknown directionality.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/bdi
*)valbdo:'msgattrlist->'msgtlist->'msgt(** [bdo attrs children]
Overrides the current directionality of text using the [dir] attribute,
so that the text within is rendered in a different direction.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/bdo
*)valbr:'msgattrlist->'msgtlist->'msgt(** [br attrs children]
Produces a line break.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/br
*)valcite:'msgattrlist->'msgtlist->'msgt(** [cite attrs children]
Represents the title of a cited work.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/cite
*)valcode:'msgattrlist->'msgtlist->'msgt(** [code attrs children]
Represents a piece of computer code.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/code
*)valdata:'msgattrlist->'msgtlist->'msgt(** [data attrs children]
Links a piece of content with a machine-readable representation
(specified in the [value] attribute).
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/data
*)valdfn:'msgattrlist->'msgtlist->'msgt(** [dfn attrs children]
Represents a term that is defined in the surrounding element. If it has
an [id] attribute, it can be linked to with an {!a} element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dfn
*)valem:'msgattrlist->'msgtlist->'msgt(** [em attrs children]
Marks text as emphasized, e.g. to signal that a world should be
stressed. Typically the text is rendered in italic.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/em
*)vali:'msgattrlist->'msgtlist->'msgt(** [i attrs children]
Represents a range of text that is set off from the normal text.
Possible reasons for that are that the text should be read in different
voice or it is a technical term or a term from another language.
Typically the text is rendered in italic.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/i
*)valkbd:'msgattrlist->'msgtlist->'msgt(** [kbd attrs children]
Represents the textual representation of some user input, such as a
keyboard shortcut.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/kbd
*)valmark:'msgattrlist->'msgtlist->'msgt(** [mark attrs children]
Represents text that is marked or highlighted due to its relevance in
the enclosing context.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/mark
*)valq:'msgattrlist->'msgtlist->'msgt(** [q attrs children]
Represents a short inline quotation.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/q
*)valrp:'msgattrlist->'msgtlist->'msgt(** [rp attrs children]
Used to provide fall-back parentheses for browsers that do not support
the display of ruby annotations using the {!ruby} element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/rp
*)valrt:'msgattrlist->'msgtlist->'msgt(** [rt attrs children]
Specifies the ruby text component of a ruby annotation.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/rt
*)valruby:'msgattrlist->'msgtlist->'msgt(** [ruby attrs children]
Represents small annotations that are rendered above, below, or next
to base text, usually used for showing the pronunciation of East Asian
characters.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ruby
*)vals:'msgattrlist->'msgtlist->'msgt(** [s attrs children]
Represent text that is no longer relevant or no longer accurate.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/s
*)valsamp:'msgattrlist->'msgtlist->'msgt(** [samp attrs children]
Allows embedding the output of a computer program as inline text.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/samp
*)valsmall:'msgattrlist->'msgtlist->'msgt(** [small attrs children]
Represents side-comments and small print, like copyright notices and
legal text.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/small
*)valspan:'msgattrlist->'msgtlist->'msgt(** [span attrs children]
Represents a generic container for inline text. More specific elements
such as {!em}, {!mark} or {!strong} should be used instead if their
semantics apply to the content.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/span
*)valstrong:'msgattrlist->'msgtlist->'msgt(** [strong attrs children]
Represents important text. Typically it is rendered with a bold font.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/strong
*)valsub:'msgattrlist->'msgtlist->'msgt(** [sub attrs children]
Defines text that should be displayed as subscript.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/sub
*)valsup:'msgattrlist->'msgtlist->'msgt(** [sup attrs children]
Defines text that should be displayed as superscript.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/sup
*)valtime:'msgattrlist->'msgtlist->'msgt(** [time attrs children]
Represents a data and time value. The [datetime] attribute allows
specifying this value in a machine-readable format.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time
*)valu:'msgattrlist->'msgtlist->'msgt(** [u attrs children]
Defines text that should be rendered with a non-textual annotation.
Typically the text is rendered with an underline.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/u
*)valvar:'msgattrlist->'msgtlist->'msgt(** [var attrs children]
Represents the name of a variable in a mathematical expression or a
programming context.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/var
*)valwbr:'msgattrlist->'msgtlist->'msgt(** [wbr attrs children]
Marks a position within a word where the browser may optionally insert
a line break. Can be used when the standard line-breaking rules don't
yield the desired outcome.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/wbr
*)(** {2 Image and multimedia} *)valarea:'msgattrlist->'msgtlist->'msgt(** [area attrs children]
Defines an area inside an {{!map_}image map} that has predefined
clickable areas.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/area
*)valaudio:'msgattrlist->'msgtlist->'msgt(** [audio attrs children]
Used to embed sound content in documents.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/audio
*)valimg:'msgattrlist->'msgtlist->'msgt(** [img attrs children]
Embeds an image into the document.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img
*)valmap_:'msgattrlist->'msgtlist->'msgt(** [map_ attrs children]
Defines an image map which is an image with several clickable
{{!area}areas}.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/map
*)valtrack:'msgattrlist->'msgtlist->'msgt(** [track attrs children]
Specifies a timed text track for media elements like {!video} or
{!audio}.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/track
*)valvideo:'msgattrlist->'msgtlist->'msgt(** [video attrs children]
Embeds a media player which supports video playback into the document.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/video
*)(** {2 Embedded content} *)valembed:'msgattrlist->'msgtlist->'msgt(** [embed attrs children]
Embeds external content, provided by an external application, into the
document.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/embed
*)valfencedframe:'msgattrlist->'msgtlist->'msgt(** [fencedframe attrs children]
Represents a nested browsing context, like {!iframe} but with more native
privacy features built in.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/fencedframe
*)valiframe:'msgattrlist->'msgtlist->'msgt(** [iframe attrs children]
Represents a nested browsing context, embedding another HTML page into
the current one.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/iframe
*)valobject_:'msgattrlist->'msgtlist->'msgt(** [object_ attrs children]
Represents an external resource, which can be treated as an image, a
nested browsing context, or a resource to be handled by a plugin.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/object
*)valpicture:'msgattrlist->'msgtlist->'msgt(** [picture attrs children]
Contains zero or more <source> elements and one <img> element to offer
alternative versions of an image for different display/device scenarios.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/picture
*)valsource:'msgattrlist->'msgtlist->'msgt(** [source attrs children]
Allows offering media content for elements like {!video} or {!audio} in
multiple file formats.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source
*)(** {2 Canvas} *)valcanvas:'msgattrlist->'msgtlist->'msgt(** [canvas attrs children]
Allows drawing graphics and animations using the canvas API or the WebGL
API.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/canvas
*)(** {2 Demarcating edits} *)valdel:'msgattrlist->'msgtlist->'msgt(** [del attrs children]
Represents a range of text that has been removed from the document.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/del
*)valins:'msgattrlist->'msgtlist->'msgt(** [ins attrs children]
Represents a range of text that has been added to the document.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ins
*)(** {2 Table content} *)valcaption:'msgattrlist->'msgtlist->'msgt(** [caption attrs children]
Specifies the title of a table.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/caption
*)valcol:'msgattrlist->'msgtlist->'msgt(** [col attrs children]
Defines one or more columns in a column group.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/col
*)valcolgroup:'msgattrlist->'msgtlist->'msgt(** [colgroup attrs children]
Defines a group of columns within a table.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/colgroup
*)valtable:'msgattrlist->'msgtlist->'msgt(** [table attrs children]
Represents tabular data, that is data in two dimensions.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/table
*)valtbody:'msgattrlist->'msgtlist->'msgt(** [tobdy attrs children]
Defines the set of table rows containing the table's main data.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/tobdy
*)valtd:'msgattrlist->'msgtlist->'msgt(** [td attrs children]
Defines a data cell of a table.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/td
*)valtfoot:'msgattrlist->'msgtlist->'msgt(** [tfoot attrs children]
Defines the set of table rows, located at the bottom of the table,
containing summaries about the table's columns.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/tfoot
*)valth:'msgattrlist->'msgtlist->'msgt(** [th attrs children]
Defines a header cell for one or more data cells.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/th
*)valthead:'msgattrlist->'msgtlist->'msgt(** [thead attrs children]
Defines the set of table rows, located at the top of the table,
containing the titles of the table's columns.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/thead
*)valtr:'msgattrlist->'msgtlist->'msgt(** [tr attrs children]
Defines a row of a table.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/tr
*)(** {2 Forms} *)valbutton:'msgattrlist->'msgtlist->'msgt(** [button attrs children]
Defines a button.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/button
*)valdatalist:'msgattrlist->'msgtlist->'msgt(** [datalist attrs children]
Pre-defines a list of options for use in other input controls.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/datalist
*)valfieldset:'msgattrlist->'msgtlist->'msgt(** [fieldset attrs children]
Used to group several controls and labels within a form.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/fieldset
*)valform:'msgattrlist->'msgtlist->'msgt(** [form attrs children]
Represents a section containing user input controls and a submit button.
Allows submitting user input to the server.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/form
*)valinput:'msgattrlist->'msgtlist->'msgt(** [input attrs children]
Allows a wide variety of user input, e.g. text, numbers, colors, date
and time.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input
*)vallabel:'msgattrlist->'msgtlist->'msgt(** [label attrs children]
Specifies a caption for another element. This is often used to describe
user input elements.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/label
*)vallegend:'msgattrlist->'msgtlist->'msgt(** [legend attrs children]
Represents a caption for the content of a fieldset.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/legend
*)valmeter:'msgattrlist->'msgtlist->'msgt(** [meter attrs children]
Represents either a scalar value or fractional value within a known
range.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meter
*)valoptgroup:'msgattrlist->'msgtlist->'msgt(** [optgroup attrs children]
Groups together multiple {!option} elements within a {!select} element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/optgroup
*)valoption:'msgattrlist->'msgtlist->'msgt(** [option attrs children]
Define an item contained in a {!select}, an {!optgroup}, or a
{!datalist} element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/option
*)valoutput:'msgattrlist->'msgtlist->'msgt(** [output attrs children]
A container for displaying the results of a calculation.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/output
*)valprogress:'msgattrlist->'msgtlist->'msgt(** [progress attrs children]
Displays an indicator showing the completion progress of a task.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/progress
*)valselect:'msgattrlist->'msgtlist->'msgt(** [select attrs children]
Represents a control that allows selecting out of multiple options.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/select
*)valselectedcontent:'msgattrlist->'msgtlist->'msgt(** [selectedcontent attrs children]
Displays the content of the currently selected {!option} within a
{!select} element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/selectedcontent
*)valtextarea:'msgattrlist->'msgtlist->'msgt(** [textarea attrs children]
Represents a multi-line text editing control.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/textarea
*)(** {2 Interactive elements} *)valdetails:'msgattrlist->'msgtlist->'msgt(** [details attrs children]
Represents a widget that the user can click to reveal additional
information. A short summary of the contents must be provided in a
{!summary} element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/details
*)valdialog:'msgattrlist->'msgtlist->'msgt(** [dialog attrs children]
Represents a dialog box or other interactive component, such as a
dismissible alert, inspector, or subwindow.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/dialog
*)valsummary:'msgattrlist->'msgtlist->'msgt(** [summary attrs children]
Provides a summary of the information hidden in a {!details} element.
Clicking the summary will toggle the "open" state of the details
element.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/summary
*)end