A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.

To request an account, ask an autoconfirmed user on Chat (such as one of these permanent autoconfirmed members).

MicrosyntaxDescriptions: Difference between revisions

From WHATWG Wiki
Jump to navigation Jump to search
(time-datetime-value stub)
(obsolete this page and direct readers to https://github.com/validator/validator/wiki/Microsyntax-descriptions)
 
(41 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The purpose of this page is to enable collaborative creation of brief advisory text for each HTML5 microsyntax so that when the content of an attribute value or the text content of an element does not conform to a given microsyntax, a validator can display the advisory text about the syntax to guide the author to fix the content. Note that like the rest of this wiki, editing requires you to agree to release your contributions under the MIT license (see wiki footer). Please note that while copying text from the [http://www.whatwg.org/specs/web-apps/current-work/ WHATWG version of HTML 5] is OK, copying text from RFCs or W3C specs is not OK.
{{Obsolete|spec=https://github.com/validator/validator/wiki/Microsyntax-descriptions}}
The purpose of this page is to enable collaborative creation of brief advisory text for each HTML microsyntax so that when the content of an attribute value or the text content of an element does not conform to a given microsyntax, a validator can display the advisory text about the syntax to guide the author to fix the content. Note that like the rest of this wiki, editing requires you to agree to release your contributions under the MIT license (see wiki footer). Please note that while copying text from the [https://html.spec.whatwg.org/ WHATWG version of HTML] is OK, copying text from RFCs or W3C specs is not OK.


Note that some formats pertain to Web Forms 2.0 (e.g. <code>datetime-local</code>).
Note that some formats pertain to Web Forms 2.0 (e.g. <code>datetime-local</code>).
Line 6: Line 7:


==a-rel==
==a-rel==
A whitespace-separated list of link types listed as allowed on <code>&lt;a&gt;</code> and <code>&lt;area&gt;</code> in the [http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#linkTypes HTML specification] or listed as an allowed on <code>&lt;a&gt;</code> and <code>&lt;area&gt;</code> on the [http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions Microformats wiki] without duplicate keywords in the list. <strong>You can register link types on the [http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions Microformats wiki] yourself.</strong>
A whitespace-separated list of link types, with no duplicate keywords in the list. Each link type must be listed as allowed on <code>&lt;a&gt;</code> and <code>&lt;area&gt;</code> in the [https://html.spec.whatwg.org/multipage/semantics.html#linkTypes HTML specification], or must be listed as allowed on <code>&lt;a&gt;</code> and <code>&lt;area&gt;</code> on the [http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions Microformats wiki]. <strong>You can register link types on the [http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions Microformats wiki] yourself.</strong>
 
==autocomplete-any==
A list of [https://html.spec.whatwg.org/multipage/forms.html#autofill-detail-tokens autofill detail tokens].


==browsing-context==
==browsing-context==
Line 18: Line 22:


==charset==
==charset==
An encoding name labeled as a "preferred MIME name" in the [http://www.iana.org/assignments/character-sets IANA Character Sets registry]. Example: <code>utf-8</code>
An preferred encoding name according to the [https://encoding.spec.whatwg.org/ Encoding Standard]. Example: <code>utf-8</code>


==charset-list==
==charset-list==
A whitespace-separated list of encoding names labeled as a "preferred MIME name" in the [http://www.iana.org/assignments/character-sets IANA Character Sets registry]. Example: <code>utf-8 us-ascii</code>
A whitespace-separated list of preferred encoding names according to the [https://encoding.spec.whatwg.org/ Encoding Standard]. Example: <code>utf-8 windows-1252</code>


==circle==
==circle==
A circle is specified as three comma-separated (no spaces allowed) integers the last one of which is non-negative. An integer consists of one or more digits (<code>0</code>–<code>9</code>), optionally preceded by a hyphen (<code>-</code>). Examples of circles: <code>5,5,10</code> and <code>-5,0,20</code>
A circle is specified as three comma-separated (no spaces allowed) integers the last one of which is non-negative. An integer consists of one or more digits (<code>0</code>–<code>9</code>), optionally preceded by a hyphen (<code>-</code>). Examples of circles: <code>5,5,10</code> and <code>-5,0,20</code>
==content-security-policy==
A valid [https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Using_Content_Security_Policy#Writing_a_policy Content Security Policy].
==custom-element-name==
A [https://html.spec.whatwg.org/multipage/scripting.html#valid-custom-element-name valid custom element name]. Must contain a hyphen, must (after parsing) begin with a lowercase ASCII letter, and must (after parsing) not contain any uppercase ASCII letters. (Remember that HTML parsers lowercase element names but don’t lowercase attribute values.)


==date==
==date==
A date in the form <code><i>YYYY</i>-<i>MM</i>-<i>DD</i></code>. Example: <code>2002-09-29</code>.
A date in the form <code><i>YYYY</i>-<i>MM</i>-<i>DD</i></code>. Example: <code>2002-09-29</code>.
==date-or-time==
A [http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-date-or-time-string date or time string]; that is, one of the following:
a <b>date</b>, which must be in the form <code><i>YYYY</i>-<i>MM</i>-<i>DD</i></code> • or, a <b>time</b>, which must begin in the form <code><i>hh</i>:<i>mm</i></code>, and can optionally be followed by <code>:<i>ss</i></code>, which in turn can optionally be followed by “<code>.</code>” and one or more digits • or, a <b>date</b>, followed by “<code>T</code>”, followed by a <b>time</b>, followed by <b>time-zone information</b>, which must be either “<code>Z</code>”, or in the form <code>+<i>hh</i>:<i>mm</i></code> or the form <code>-<i>hh</i>:<i>mm</i></code> • Examples: <code>1996-01-01</code>, <code>12:05:25</code>, <code>1996-01-01T12:05:25-02:00</code>, <code>1996-01-01T12:05:25.6</code> • <i>Note: The validator currently allows some values that the HTML specification prohibits; for example, it allows <code>1996-01-01T12:05:25</code> (a date and time with no time-zone information) and <code>12:05:25Z</code> (a time with no date but with time-zone information).</i>


==datetime==
==datetime==
Line 40: Line 46:


==datetime-tz==
==datetime-tz==
A [http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-global-date-and-time-string global date and time string]; that is, a <b>date</b>, followed by a “<code>T</code>” or a single space, followed by a <b>time</b>, followed by <b>time-zone information</b>, where:  the <b>date</b> must be in the form <code><i>YYYY</i>-<i>MM</i>-<i>DD</i></code> • the <b>time</b> must begin in the form <code><i>hh</i>:<i>mm</i></code>, followed by <code>:<i>ss</i></code>, optionally followed by “<code>.</code>” and one, two, or three or digits • the <b>time-zone information</b> must be either “<code>Z</code>” or in the form <code>+<i>hh</i>:<i>mm</i></code> or the form <code>-<i>hh</i>:<i>mm</i></code> • Examples: <code>1996-01-01T12:05:25-02:00</code>, <code>1996-01-01T12:05:25Z</code>
A [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-global-date-and-time-string global date and time string]; that is, a <b>date</b>, followed by a “<code>T</code>” or a single space, followed by a <b>time</b>, followed by <b>time-zone information</b>, where:  the <b>date</b> must be in the form <code><i>YYYY</i>-<i>MM</i>-<i>DD</i></code> • the <b>time</b> must begin in the form <code><i>hh</i>:<i>mm</i></code>, followed by <code>:<i>ss</i></code>, optionally followed by “<code>.</code>” and one, two, or three or digits • the <b>time-zone information</b> must be either “<code>Z</code>” or in the form <code>+<i>hh</i>:<i>mm</i></code> or the form <code>-<i>hh</i>:<i>mm</i></code> • Examples: <code>1996-01-01T12:05:25-02:00</code>, <code>1996-01-01T12:05:25Z</code>
<!-- • <i>Note: The validator currently prohibits some values that the HTML specification allows; for example, the HTML specification allows <code>1996-01-01T12:05Z</code> (a date and time string with no seconds specified), but the validator prohibits it.</i> -->
<!-- • <i>Note: The validator currently prohibits some values that the HTML specification allows; for example, the HTML specification allows <code>1996-01-01T12:05Z</code> (a date and time string with no seconds specified), but the validator prohibits it.</i> -->
<!-- (''[http://canvex.lazyilluminati.com/misc/cgi/issues.cgi/folder/microsyntaxes-dates This format deviates from the spec draft.]'') -->
<!-- (''[http://canvex.lazyilluminati.com/misc/cgi/issues.cgi/folder/microsyntaxes-dates This format deviates from the spec draft.]'') -->


==email==
==email==
An e-mail address must match the <code>addr-spec</code> production defined in [http://tools.ietf.org/html/rfc2822#section-3.4.1 RFC 2822 section 3.4.1] excluding the <code>CFWS</code> production everywhere and excluding the <code>FWS</code> production everywhere except in the <code>quoted-string</code> production.
An e-mail address must match the <code>addr-spec</code> production defined in [https://tools.ietf.org/html/rfc2822#section-3.4.1 RFC 2822 section 3.4.1] excluding the <code>CFWS</code> production everywhere and excluding the <code>FWS</code> production everywhere except in the <code>quoted-string</code> production.


==float==
==float==
Line 61: Line 67:
==ID==
==ID==
An ID consists of at least one character but must not contain any whitespace.
An ID consists of at least one character but must not contain any whitespace.
==image-candidate-strings==
A comma-separated list of strings, each of which consists of a URL optionally followed by either a pixel density descriptor or a width descriptor.
==image-candidate-strings-width-required==
A comma-separated list of strings, each of which must consist of a URL followed by a width descriptor.


==integer==
==integer==
Line 70: Line 82:
==integer-positive==
==integer-positive==
One or more digits (<code>0</code>–<code>9</code>), with at least one which is non-zero. For example: <code>42</code> is valid, but <code>00</code> is not.
One or more digits (<code>0</code>–<code>9</code>), with at least one which is non-zero. For example: <code>42</code> is valid, but <code>00</code> is not.
== integrity-metadata ==
A whitespace-separated list of values, where each value is consists of one of <code>sha256</code> or <code>sha384</code> or  <code>sha512</code>, followed by a hyphen (<code>-</code>), followed by a base64-encoded cryptographic hash.


==iri==
==iri==
Line 75: Line 90:


==iri-ref==
==iri-ref==
Any URL. For example: <code>/hello</code>, <code>#canvas</code>, or <code><nowiki>http://</nowiki>example.org/</code>. Characters should be represented in [http://www.macchiato.com/unicode/nfc-faq NFC] and spaces should be escaped as <code>%20</code>.
Any URL. For example: <code>/hello</code>, <code>#canvas</code>, or <code><nowiki>http://</nowiki>example.org/</code>. Characters should be represented in [http://www.macchiato.com/unicode/nfc-faq NFC] and spaces should be escaped as <code>%20</code>. Common non-alphanumeric characters other than <code>! $ & ' ( ) * +  - . / : ; = ? @ _ ~</code> generally must be [https://en.wikipedia.org/wiki/Percent-encoding percent-encoded]. For example, the pipe character (<code>|</code>) must be encoded as <code>%7C</code>.
 
==iri-ref-http-or-https==
Any [https://wiki.whatwg.org/wiki/MicrosyntaxDescriptions#iri-ref URL] whose scheme is <code>http</code> or <code>https</code>.


==language==
==language==
An [http://tools.ietf.org/html/rfc5646 RFC 5646] language tag consists of hyphen-separated ASCII-alphanumeric subtags. There is a primary tag identifying a natural language by its shortest ISO 639 language code (e.g. <code>en</code> for English) and zero or more additional subtags adding precision. The most common additional subtag type is a region subtag which most commonly is a two-letter ISO 3166 country code (e.g. <code>GB</code> for the United Kingdom). IANA maintains a [http://www.iana.org/assignments/language-subtag-registry registry of permissible subtags].
An [https://tools.ietf.org/html/rfc5646 RFC 5646] language tag consists of hyphen-separated ASCII-alphanumeric subtags. There is a primary tag identifying a natural language by its shortest ISO 639 language code (e.g. <code>en</code> for English) and zero or more additional subtags adding precision. The most common additional subtag type is a region subtag which most commonly is a two-letter ISO 3166 country code (e.g. <code>GB</code> for the United Kingdom). IANA maintains a [https://www.iana.org/assignments/language-subtag-registry registry of permissible subtags].


==link-rel==
==link-rel==
A whitespace-separated list of link types listed as allowed on <code>&lt;link&gt;</code> in the [http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#linkTypes HTML specification] or listed as an allowed on <code>&lt;link&gt;</code> on the [http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions Microformats wiki] without duplicate keywords in the list. <strong>You can register link types on the [http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions Microformats wiki] yourself.</strong>
A whitespace-separated list of link types listed as allowed on <code>&lt;link&gt;</code> in the [https://html.spec.whatwg.org/multipage/semantics.html#linkTypes HTML specification] or listed as an allowed on <code>&lt;link&gt;</code> on the [http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions Microformats wiki] without duplicate keywords in the list. <strong>You can register link types on the [http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions Microformats wiki] yourself.</strong>


==media-query==
==media-query==
One or more media queries, combined in a comma-separated list. Each media query consists of a '''media type''' and zero or more expressions that check for the conditions of particular '''media features'''. A media type is one of the following: '''all''', '''braille''', '''embossed''', '''handheld''', '''print''', '''projection''', '''screen''', '''speech''', '''tty''', or '''tv'''. ''Note: The '''aural''' media type is deprecated''. For information about valid media features and about the exact syntax of media queries, see the [http://dev.w3.org/csswg/css3-mediaqueries/ Media Queries] specification.
One or more media queries, combined in a comma-separated list. Each media query consists of a optional <strong>media type</strong> and zero or more expressions that check for the conditions of particular <strong>media features</strong>. A media type is one of the following: <code>all</code>, <code>print</code>, <code>screen</code>, or <code>speech</code>. The following media types are deprecated: <code>braille</code>, <code>embossed</code>, <code>handheld</code>, <code>projection</code>, <code>tty</code>, and <code>tv</code>. For information about valid media features and about the exact syntax of media queries, see the [https://drafts.csswg.org/mediaqueries/ Media Queries] specification.


==meta-charset==
==meta-charset==
The string <code>text/html;</code>, optionally followed by whitespace, followed by <code>charset=</code>, followed by an encoding name labeled as a "preferred MIME name" in the [http://www.iana.org/assignments/character-sets IANA Character Sets registry]. Example: <code>text/html; charset=utf-8</code>
The string <code>text/html;</code>, optionally followed by whitespace, followed by <code>charset=</code>, followed by a preferred encoding name according to the [https://encoding.spec.whatwg.org/ Encoding Standard]. Example: <code>text/html; charset=utf-8</code>


==meta-name==
==meta-name==
A metadata name listed in the [http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#standard-metadata-names HTML specification] or listed in the [http://wiki.whatwg.org/wiki/MetaExtensions WHATWG wiki]. <strong>You can register metadata names on the [http://wiki.whatwg.org/wiki/MetaExtensions WHATWG wiki] yourself.</strong>
A metadata name listed in the [https://html.spec.whatwg.org/multipage/semantics.html#standard-metadata-names HTML specification] or listed in the [https://wiki.whatwg.org/wiki/MetaExtensions WHATWG wiki]. <strong>You can register metadata names on the [https://wiki.whatwg.org/wiki/MetaExtensions WHATWG wiki] yourself.</strong>


==mime-type==
==mime-type==
A [http://tools.ietf.org/html/rfc2616#section-3.7 media-type as defined in RFC 2616]; that is, typically, a required ''type'', followed by a "<code>/</code>" character, followed by a required ''subtype'', optionally followed by one or more instances of a "<code>;</code>" character followed by a ''parameter''. Examples: <code>text/css</code>, <code>text/css;charset=utf-8</code>.
A [https://tools.ietf.org/html/rfc2616#section-3.7 media-type as defined in RFC 2616]; that is, typically, a required ''type'', followed by a "<code>/</code>" character, followed by a required ''subtype'', optionally followed by one or more instances of a "<code>;</code>" character followed by a ''parameter''. Examples: <code>text/css</code>, <code>text/css;charset=utf-8</code>.


==mime-type-list==
==mime-type-list==
Line 115: Line 133:
==rectangle==
==rectangle==
...
...
==sandbox-allow-list==
An unordered set of unique space-separated keywords; the allowed keywords are <code>allow-forms</code>, <code>allow-modals</code>, <code>allow-pointer-lock</code>, <code>allow-popups</code>, <code>allow-popups-to-escape-sandbox</code>, <code>allow-same-origin</code>,<code> allow-scripts</code>, and <code>allow-top-navigation</code>.


==script==
==script==
Any text content that does not contain the character sequence "<code>&lt;!--</code>" without a later occurrence of the character sequence "<code>--></code>" and that does not contain any occurrence of the string "<code>&lt;/script</code>" followed by a space character, "<code>></code>", or "<code>/</code>".  For further details, see [http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#restrictions-for-contents-of-script-elements Restrictions for contents of script elements].
Any text content that does not contain the character sequence "<code>&lt;!--</code>" without a later occurrence of the character sequence "<code>--></code>" and that does not contain any occurrence of the string "<code>&lt;/script</code>" followed by a space character, "<code>></code>", or "<code>/</code>".  For further details, see [https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements Restrictions for contents of script elements].


==script-documentation==
==script-documentation==
Zero or more ''code comments'', each of which is either a single-line comment starting with "<code>//</code>" or a multi-line comment starting with "<code>/*</code>" and ending with "<code>*/</code>". The content must also meet the constraints of the [[#script|script]] microsyntax. For further details, see [http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#inline-documentation-for-external-scripts Inline documentation for external scripts].
Zero or more ''code comments'', each of which is either a single-line comment starting with "<code>//</code>" or a multi-line comment starting with "<code>/*</code>" and ending with "<code>*/</code>". The content must also meet the constraints of the [https://wiki.whatwg.org/wiki/MicrosyntaxDescriptions#script script] microsyntax. For further details, see [https://html.spec.whatwg.org/multipage/scripting.html#inline-documentation-for-external-scripts Inline documentation for external scripts].


==simple-color==
==simple-color==
A string of seven characters that starts with <code>#</code> and ends with six characters each of which is <code>0</code>…<code>9</code>, <code>a</code>…<code>f</code> or <code>A</code>…<code>F</code>.
A string of seven characters that starts with <code>#</code> and ends with six characters each of which is <code>0</code>…<code>9</code>, <code>a</code>…<code>f</code> or <code>A</code>…<code>F</code>.
==source-size-list==
A comma-separated list of zero or more source sizes (&lt;media-condition> &lt;length>) optionally followed by a default size (&lt;length>) but at least one of them.


==string-without-line-breaks==
==string-without-line-breaks==
Any string that does not contain the carriage return character or the line feed character.
Any string that does not contain the carriage return character or the line feed character.
==svg-pathdata==
A list of zero or more path-data expressions, where each expression consists of a one-letter command followed by numbers that serve as arguments for the command (in most cases, pairs of coordinates). Commas and/or whitespace must be used to separate the arguments for a command from one another—but <strong>commas must not be used to separate commands</strong>, though whitespace can optionally be used to do so. Examples: "<code>M 100 100 L 300 100 L 200 300 z</code>" or "<code>M100,100L300,100,200,300z</code>". For more information, see the [http://www.w3.org/TR/SVG11/paths.html#PathData section on path data in the SVG 1.1 specification].


==time==
==time==
A time (hour, minute, seconds, fractional seconds) is encoded according to ISO 8601 with no time zone: two digits (<code>0</code>–<code>9</code>) for the hour, a colon, two digits for the minute, optionally a colon and two digits for the second, and optionally (if the seconds are present) a period (<code>.</code>) and one, two, or three digits for the fraction of a second. All the numbers must be in base ten and zero-padded if necessary. For instance: <code>23:59:00.000</code> or <code>00:00:05</code>.
A time (hour, minute, seconds, fractional seconds) is encoded according to ISO 8601 with no time zone: two digits (<code>0</code>–<code>9</code>) for the hour, a colon, two digits for the minute, optionally a colon and two digits for the second, and optionally (if the seconds are present) a period (<code>.</code>) and one, two, or three digits for the fraction of a second. All the numbers must be in base ten and zero-padded if necessary. For instance: <code>23:59:00.000</code> or <code>00:00:05</code>.


==time-datetime-value==
==time-datetime==
[to come]
One of the following: [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-month-string month], [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-date-string date], [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-yearless-date-string yearless date], [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-time-string time], [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-local-date-and-time-string local date and time], [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-time-zone-offset-string time-zone offset], [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-global-date-and-time-string global date and time], [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-week-string week], [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-non-negative-integer non-negative integer], or [https://html.spec.whatwg.org/multipage/infrastructure.html#valid-duration-string duration]. For more information and examples, see the [https://html.spec.whatwg.org/multipage/semantics.html#datetime-value section on the datetime value in the HTML specification].


==week==
==week==

Latest revision as of 12:00, 21 December 2016

This document is obsolete.

For the current specification, see: https://github.com/validator/validator/wiki/Microsyntax-descriptions

The purpose of this page is to enable collaborative creation of brief advisory text for each HTML microsyntax so that when the content of an attribute value or the text content of an element does not conform to a given microsyntax, a validator can display the advisory text about the syntax to guide the author to fix the content. Note that like the rest of this wiki, editing requires you to agree to release your contributions under the MIT license (see wiki footer). Please note that while copying text from the WHATWG version of HTML is OK, copying text from RFCs or W3C specs is not OK.

Note that some formats pertain to Web Forms 2.0 (e.g. datetime-local).

Please keep descriptions short: one paragraph in length.

a-rel

A whitespace-separated list of link types, with no duplicate keywords in the list. Each link type must be listed as allowed on <a> and <area> in the HTML specification, or must be listed as allowed on <a> and <area> on the Microformats wiki. You can register link types on the Microformats wiki yourself.

autocomplete-any

A list of autofill detail tokens.

browsing-context

A browsing context name is any string that does not start with an underscore (_).

browsing-context-or-keyword

A browsing context name or keyword is either any string that does not start with an underscore (_) or a string that case-insensitively matches one of: _blank, _self, _parent, or _top.

cdo-cdc-pair

Any text content that does not contain the character sequence "<!--" without a later occurrence of the character sequence "-->".

charset

An preferred encoding name according to the Encoding Standard. Example: utf-8

charset-list

A whitespace-separated list of preferred encoding names according to the Encoding Standard. Example: utf-8 windows-1252

circle

A circle is specified as three comma-separated (no spaces allowed) integers the last one of which is non-negative. An integer consists of one or more digits (09), optionally preceded by a hyphen (-). Examples of circles: 5,5,10 and -5,0,20

content-security-policy

A valid Content Security Policy.

custom-element-name

A valid custom element name. Must contain a hyphen, must (after parsing) begin with a lowercase ASCII letter, and must (after parsing) not contain any uppercase ASCII letters. (Remember that HTML parsers lowercase element names but don’t lowercase attribute values.)

date

A date in the form YYYY-MM-DD. Example: 2002-09-29.

datetime

An ISO 8601 date and time in the UTC time zone, i.e. YYYY-MM-DDThh:mm optionally followed by :ss for the seconds, optionally followed by . and one, two, or three digits for the fraction of a second, and finally followed by Z. Examples: 1996-01-01T12:05Z, 1996-01-01T12:05:25.6Z.

datetime-local

An ISO 8601 date and time with no time zone information, i.e. YYYY-MM-DDThh:mm optionally followed by :ss for the seconds, optionally followed by . and one or more digits for the fraction of a second. Examples: 1996-01-01T12:05, 1996-01-01T12:05:25.6.

datetime-tz

A global date and time string; that is, a date, followed by a “T” or a single space, followed by a time, followed by time-zone information, where: the date must be in the form YYYY-MM-DD • the time must begin in the form hh:mm, followed by :ss, optionally followed by “.” and one, two, or three or digits • the time-zone information must be either “Z” or in the form +hh:mm or the form -hh:mm • Examples: 1996-01-01T12:05:25-02:00, 1996-01-01T12:05:25Z

email

An e-mail address must match the addr-spec production defined in RFC 2822 section 3.4.1 excluding the CFWS production everywhere and excluding the FWS production everywhere except in the quoted-string production.

float

First, optionally, - (U+002D). Then, a series of one or more characters in the range 09. Then, optionally, a single . (U+002E) followed by a series of one or more characters in the range 09. Then, optionally, either e or E, optionally followed by - (U+002D) or + (U+002B), followed by a series of one or more characters in the range 09. For example, -42.42E+42 is valid but .5 or +2 are not.

float-non-negative

A series of one or more characters in the range 09. Then, optionally, a single . (U+002E) followed by a series of one or more characters in the range 09. Then, optionally, either e or E, optionally followed by - (U+002D) or + (U+002B), followed by a series of one or more characters in the range 09. Or, alternatively to the foregoing: First, - (U+002D). Then, a series of one or more zeros. Then, optionally, a single . (U+002E) followed by one or more zeros. Then, optionally, either e or E, optionally followed by - (U+002D) or + (U+002B), followed by a series of one or more characters in the range 09. For example, 42.42E+42 and -000.000 are valid but .5 or -0.01 are not.

float-positive

A series of one or more characters in the range 09. Then, optionally, a single . (U+002E) followed by a series of one or more characters in the range 09. One of the digits so far has to be non-zero. Then, optionally, either e or E, optionally followed by - (U+002D) or + (U+002B), followed by a series of one or more characters in the range 09. For example, 42.42E+42 is valid but 0.0 or -2 are not.

hash-name

A # (number sign) character followed by any string.

ID

An ID consists of at least one character but must not contain any whitespace.

image-candidate-strings

A comma-separated list of strings, each of which consists of a URL optionally followed by either a pixel density descriptor or a width descriptor.

image-candidate-strings-width-required

A comma-separated list of strings, each of which must consist of a URL followed by a width descriptor.

integer

One or more digits (09), optionally preceded by a hyphen (-). For example: 42 and -273 are valid, but +42 is not.

integer-non-negative

One or more digits (09). For example: 42 and 0 are valid, but -273 is not.

integer-positive

One or more digits (09), with at least one which is non-zero. For example: 42 is valid, but 00 is not.

integrity-metadata

A whitespace-separated list of values, where each value is consists of one of sha256 or sha384 or sha512, followed by a hyphen (-), followed by a base64-encoded cryptographic hash.

iri

An absolute URL. For example: http://example.org/hello, but not /hello. Spaces should be escaped as %20.

iri-ref

Any URL. For example: /hello, #canvas, or http://example.org/. Characters should be represented in NFC and spaces should be escaped as %20. Common non-alphanumeric characters other than ! $ & ' ( ) * + - . / : ; = ? @ _ ~ generally must be percent-encoded. For example, the pipe character (|) must be encoded as %7C.

iri-ref-http-or-https

Any URL whose scheme is http or https.

language

An RFC 5646 language tag consists of hyphen-separated ASCII-alphanumeric subtags. There is a primary tag identifying a natural language by its shortest ISO 639 language code (e.g. en for English) and zero or more additional subtags adding precision. The most common additional subtag type is a region subtag which most commonly is a two-letter ISO 3166 country code (e.g. GB for the United Kingdom). IANA maintains a registry of permissible subtags.

link-rel

A whitespace-separated list of link types listed as allowed on <link> in the HTML specification or listed as an allowed on <link> on the Microformats wiki without duplicate keywords in the list. You can register link types on the Microformats wiki yourself.

media-query

One or more media queries, combined in a comma-separated list. Each media query consists of a optional media type and zero or more expressions that check for the conditions of particular media features. A media type is one of the following: all, print, screen, or speech. The following media types are deprecated: braille, embossed, handheld, projection, tty, and tv. For information about valid media features and about the exact syntax of media queries, see the Media Queries specification.

meta-charset

The string text/html;, optionally followed by whitespace, followed by charset=, followed by a preferred encoding name according to the Encoding Standard. Example: text/html; charset=utf-8

meta-name

A metadata name listed in the HTML specification or listed in the WHATWG wiki. You can register metadata names on the WHATWG wiki yourself.

mime-type

A media-type as defined in RFC 2616; that is, typically, a required type, followed by a "/" character, followed by a required subtype, optionally followed by one or more instances of a ";" character followed by a parameter. Examples: text/css, text/css;charset=utf-8.

mime-type-list

(WF2)

month

An ISO 8601 date with year and month, i.e. YYYY-MM. Example: 2007-11.

non-empty-string

Any string that is not the empty string.

pattern

(WF2)

polyline

...

ratio

(progress content)

rectangle

...

sandbox-allow-list

An unordered set of unique space-separated keywords; the allowed keywords are allow-forms, allow-modals, allow-pointer-lock, allow-popups, allow-popups-to-escape-sandbox, allow-same-origin, allow-scripts, and allow-top-navigation.

script

Any text content that does not contain the character sequence "<!--" without a later occurrence of the character sequence "-->" and that does not contain any occurrence of the string "</script" followed by a space character, ">", or "/". For further details, see Restrictions for contents of script elements.

script-documentation

Zero or more code comments, each of which is either a single-line comment starting with "//" or a multi-line comment starting with "/*" and ending with "*/". The content must also meet the constraints of the script microsyntax. For further details, see Inline documentation for external scripts.

simple-color

A string of seven characters that starts with # and ends with six characters each of which is 09, af or AF.

source-size-list

A comma-separated list of zero or more source sizes (<media-condition> <length>) optionally followed by a default size (<length>) but at least one of them.

string-without-line-breaks

Any string that does not contain the carriage return character or the line feed character.

svg-pathdata

A list of zero or more path-data expressions, where each expression consists of a one-letter command followed by numbers that serve as arguments for the command (in most cases, pairs of coordinates). Commas and/or whitespace must be used to separate the arguments for a command from one another—but commas must not be used to separate commands, though whitespace can optionally be used to do so. Examples: "M 100 100 L 300 100 L 200 300 z" or "M100,100L300,100,200,300z". For more information, see the section on path data in the SVG 1.1 specification.

time

A time (hour, minute, seconds, fractional seconds) is encoded according to ISO 8601 with no time zone: two digits (09) for the hour, a colon, two digits for the minute, optionally a colon and two digits for the second, and optionally (if the seconds are present) a period (.) and one, two, or three digits for the fraction of a second. All the numbers must be in base ten and zero-padded if necessary. For instance: 23:59:00.000 or 00:00:05.

time-datetime

One of the following: month, date, yearless date, time, local date and time, time-zone offset, global date and time, week, non-negative integer, or duration. For more information and examples, see the section on the datetime value in the HTML specification.

week

A week consists of a year and a week number encoded according to ISO 8601: four or more digits (09) representing the year, a hyphen (-), a literal W, and two digits for the week, zero-padded if necessary. The week number must be a number greater than or equal to 01. Week 01 of a given year is the week containing the 4th of January; weeks start on Monday. For instance: 2005-W52 is the week that ended on Sunday the first of January, 2006.