From 104bd78697738af2eab61740a2f1421ae49a3c95 Mon Sep 17 00:00:00 2001
From: Anne van Kesteren Attributes are placed inside the start tag, and consist
of a name and a value, separated by an "=
" character.
- The attribute value can remain unquoted if it doesn't contain space characters or any of "
'
`
=
<
or
- >
. Otherwise, it has to be quoted using either single or double quotes.
- The value, along with the "=
" character, can be omitted altogether if the
- value is the empty string."
'
`
=
<
or >
. Otherwise, it has to be quoted using either single or double quotes. The
+ value, along with the "=
" character, can be omitted altogether if the value
+ is the empty string.
<!-- empty attributes --> <input name=address disabled> @@ -2391,9 +2391,26 @@ a.setAttribute('href', 'https://example.com/'); // change the content attributeThe following terms are defined in the WHATWG Infra standard:
The space characters, for the purposes of - this specification, are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab), U+000A LINE FEED (LF), - U+000C FORM FEED (FF), and U+000D CARRIAGE RETURN (CR).
-The White_Space characters are those that have the Unicode
property "White_Space" in the Unicode PropList.txt
data file.
The control characters are those whose Unicode "General_Category" property has the
value "Cc" in the Unicode UnicodeData.txt
data file.
The uppercase ASCII letters are the characters in the range U+0041 LATIN CAPITAL - LETTER A to U+005A LATIN CAPITAL LETTER Z.
- -The lowercase ASCII letters are the characters in the range U+0061 LATIN SMALL - LETTER A to U+007A LATIN SMALL LETTER Z.
- -The ASCII letters are the characters that are either uppercase ASCII - letters or lowercase ASCII letters.
- -The ASCII digits are the characters in the range U+0030 DIGIT ZERO (0) to U+0039 - DIGIT NINE (9).
- -The alphanumeric ASCII characters are those that are either ASCII - letters or ASCII digits.
- -The ASCII hex digits are the characters in the ranges U+0030 DIGIT ZERO (0) to - U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, and U+0061 - LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F.
- -The uppercase ASCII hex digits are the characters in the ranges U+0030 DIGIT ZERO (0) to - U+0039 DIGIT NINE (9) and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F only.
- -The lowercase ASCII hex digits are the characters in the ranges U+0030 DIGIT ZERO - (0) to U+0039 DIGIT NINE (9) and U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F - only.
-Some of the micro-parsers described below follow the pattern of having an input variable that holds the string being parsed, and having a position variable pointing at the next character to parse in input.
-For parsers based on this pattern, a step that requires the user agent to collect a sequence of characters means that the following algorithm must be - run, with characters being the set of characters that can be collected:
- -Let input and position be the same variables as - those of the same name in the algorithm that invoked these steps.
Let result be the empty string.
While position doesn't point past the end of input and the character - at position is one of the characters, append that character to the end of - result and advance position to the next character in - input.
Return result.
The step skip whitespace means that the user agent must collect a sequence of - characters that are space characters. The collected - characters are not used.
- -When a user agent is to strip line breaks from a string, the user - agent must remove any U+000A LINE FEED (LF) and U+000D CARRIAGE RETURN (CR) characters from that - string.
- -When a user agent is to strip leading and trailing whitespace from a - string, the user agent must remove all space characters that - are at the start or end of the string.
- -When a user agent is to strip and collapse whitespace in a string, it - must replace any sequence of one or more consecutive space - characters in that string with a single U+0020 SPACE character, and then strip - leading and trailing whitespace from that string.
- -When a user agent has to strictly split a string on a particular - delimiter character delimiter, it must use the following algorithm:
- -Let input be the string being parsed.
Let position be a pointer into input, initially - pointing at the start of the string.
Let tokens be an ordered list of tokens, initially empty.
While position is not past the end of input:
- -Collect a sequence of characters that are not the delimiter - character.
Append the string collected in the previous step to tokens.
Advance position to the next character in input.
Return tokens.
For the special cases of splitting a string on spaces and on commas, this - algorithm does not apply (those algorithms also perform whitespace trimming).
-Let sign have the value "positive".
Skip whitespace.
Skip ASCII whitespace within input given + position.
If position is past the end of input, return an error.
Collect a sequence of characters that are ASCII digits, and - interpret the resulting sequence as a base-ten integer. Let value be that - integer.
Collect a sequence of code points that are ASCII digits from + input given position, and interpret the resulting sequence as a base-ten + integer. Let value be that integer.
If sign is "positive", return value, otherwise return the result of subtracting value from zero.
Let exponent have the value 1.
Skip whitespace.
Skip ASCII whitespace within input given + position.
If position is past the end of input, return an error.
If the character indicated by position is not an ASCII digit, then return an error.
Collect a sequence of characters that are ASCII digits, and - interpret the resulting sequence as a base-ten integer. Multiply value by that - integer.
Collect a sequence of code points that are ASCII digits from + input given position, and interpret the resulting sequence as a base-ten + integer. Multiply value by that integer.
If the character indicated by position is not an ASCII digit, then jump to the step labeled conversion.
Collect a sequence of characters that are ASCII digits, and - interpret the resulting sequence as a base-ten integer. Multiply exponent - by that integer.
Collect a sequence of code points that are ASCII digits from + input given position, and interpret the resulting sequence as a base-ten + integer. Multiply exponent by that integer.
Multiply value by ten raised to the exponentth power.
Let position be a pointer into input, initially pointing at the start of the string.
Skip whitespace.
Skip ASCII whitespace within input given + position.
If position is past the end of input, return an error.
Collect a sequence of characters that are ASCII digits, and - interpret the resulting sequence as a base-ten integer. Let value be that number.
Collect a sequence of code points that are ASCII digits from + input given position, and interpret the resulting sequence as a base-ten + integer. Let value be that number.
If position is past the end of input, return value as a length.
A valid list of floating-point numbers is a number of valid floating-point numbers separated by U+002C COMMA characters, - with no other characters (e.g. no space characters). In - addition, there might be restrictions on the number of floating-point numbers that can be given, - or on the range of values allowed.
+ with no other characters (e.g. no ASCII whitespace). In addition, there might be + restrictions on the number of floating-point numbers that can be given, or on the range of values + allowed.Let numbers be an initially empty list of floating-point numbers. This list will be the result of this algorithm.
Collect a sequence of characters that are space characters, U+002C COMMA, or U+003B SEMICOLON characters. This skips past - any leading delimiters.
Collect a sequence of code points that are ASCII whitespace, + U+002C COMMA, or U+003B SEMICOLON characters from input given position. + This skips past any leading delimiters.
While position is not past the end of input:
Collect a sequence of characters that are not space characters, U+002C COMMA, U+003B SEMICOLON, ASCII digits, - U+002E FULL STOP, or U+002D HYPHEN-MINUS characters. This skips past leading garbage.
Collect a sequence of code points that are not ASCII + whitespace, U+002C COMMA, U+003B SEMICOLON, ASCII digits, U+002E FULL STOP, + or U+002D HYPHEN-MINUS characters from input given position. This skips + past leading garbage.
Collect a sequence of characters that are not space characters, U+002C COMMA, or U+003B SEMICOLON characters, and let - unparsed number be the result.
Collect a sequence of code points that are not ASCII + whitespace, U+002C COMMA, or U+003B SEMICOLON characters from input given + position, and let unparsed number be the result.
Let number be the result of parsing unparsed number using the rules for parsing floating-point number values.
Append number to numbers.
Collect a sequence of characters that are space characters, U+002C COMMA, or U+003B SEMICOLON characters. This skips - past the delimiter.
Collect a sequence of code points that are ASCII whitespace, + U+002C COMMA, or U+003B SEMICOLON characters from input given position. + This skips past the delimiter.
If position is past the end of input, set unit to relative and jump to the last substep.
If the character at position is an ASCII digit, collect a sequence of characters that are ASCII - digits, interpret the resulting sequence as an integer in base ten, and increment value by that integer.
Collect a sequence of characters consisting of space characters and ASCII digits. Let s - be the resulting sequence.
Collect a sequence of code points consisting of ASCII + whitespace and ASCII digits from input given + position. Let s be the resulting sequence.
Remove all space characters in s.
Remove all ASCII whitespace in s.
Skip whitespace.
Skip ASCII whitespace within input given + position.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not at least four characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the year.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not at least four + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the year.
If year is not a number greater than zero, then fail.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not exactly two characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the month.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not exactly two + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the month.
If month is not a number in the range 1 ≤ month ≤ 12, then fail.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not exactly two characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the day.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not exactly two + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the day.
If day is not a number in the range 1 ≤ day ≤ maxday, then fail.
Collect a sequence of characters that are U+002D HYPHEN-MINUS characters (-). - If the collected sequence is not exactly zero or two characters long, then fail.
Collect a sequence of code points that are U+002D HYPHEN-MINUS characters (-) + from input given position. If the collected sequence is not exactly zero or + two characters long, then fail.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not exactly two characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the month.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not exactly two + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the month.
If month is not a number in the range 1 ≤ month ≤ 12, then fail.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not exactly two characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the day.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not exactly two + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the day.
If day is not a number in the range 1 ≤ day ≤ maxday, then fail.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not exactly two characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the hour.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not exactly two + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the hour.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not exactly two characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the minute.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not exactly two + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the minute.
Collect a sequence of characters that are either ASCII digits - or U+002E FULL STOP characters. If the collected sequence is three characters long, or if it is - longer than three characters long and the third character is not a U+002E FULL STOP character, - or if it has more than one U+002E FULL STOP character, then fail. Otherwise, interpret the - resulting sequence as a base-ten number (possibly with a fractional part). Set - second to that number.
Collect a sequence of code points that are either ASCII digits + or U+002E FULL STOP characters from input given position. If the + collected sequence is three characters long, or if it is longer than three characters long and + the third character is not a U+002E FULL STOP character, or if it has more than one U+002E FULL + STOP character, then fail. Otherwise, interpret the resulting sequence as a base-ten number + (possibly with a fractional part). Set second to that number.
If second is not a number in the range 0 ≤ second < 60, then fail.
Advance position to the next character in input.
Collect a sequence of characters that are ASCII digits. Let - s be the collected sequence.
Collect a sequence of code points that are ASCII digits from + input given position. Let s be the collected + sequence.
Collect a sequence of characters that are ASCII digits. If - the collected sequence is not exactly two characters long, then fail. Otherwise, interpret - the resulting sequence as a base-ten integer. Let that number be the timezoneminutes.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not exactly two + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten + integer. Let that number be the timezoneminutes.
Let position be a pointer into input, initially pointing at the start of the string.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not at least four characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the year.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not at least four + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the year.
If year is not a number greater than zero, then fail.
Collect a sequence of characters that are ASCII digits. If the - collected sequence is not exactly two characters long, then fail. Otherwise, interpret the - resulting sequence as a base-ten integer. Let that number be the week.
Collect a sequence of code points that are ASCII digits from + input given position. If the collected sequence is not exactly two + characters long, then fail. Otherwise, interpret the resulting sequence as a base-ten integer. + Let that number be the week.
Let maxweek be the week number of the last day of year year.
Zero or more space characters.
Zero or more ASCII whitespace.
One or more ASCII digits, representing a number of time units, scaled by the duration time component scale specified (see below) to represent a number of @@ -5883,7 +5813,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute seconds), then, optionally, a U+002E FULL STOP character (.) followed by one, two, or three ASCII digits, representing a fraction of a second.
Zero or more space characters.
Zero or more ASCII whitespace.
Zero or more space - characters.
Zero or more ASCII whitespace.
Skip whitespace.
Skip ASCII whitespace within input given + position.
If position is past the end of input, then fail.
If the character in input pointed to by position - is a U+0050 LATIN CAPITAL LETTER P character, then advance position to the - next character, set M-disambiguator to months, and skip - whitespace.
If the character in input pointed to by position is a U+0050 LATIN + CAPITAL LETTER P character, then advance position to the next character, set + M-disambiguator to months, and skip ASCII whitespace within + input given position.
If position is past the end of input, then break the loop.
If the character in input pointed to by position - is a U+0054 LATIN CAPITAL LETTER T character, then advance position to the - next character, set M-disambiguator to minutes, skip - whitespace, and return to the top of the loop.
If the character in input pointed to by position is a U+0054 LATIN + CAPITAL LETTER T character, then advance position to the next character, set + M-disambiguator to minutes, skip ASCII whitespace within + input given position, and return to the top of the loop.
Set next character to the character in input pointed to by position.
Otherwise, if next character is an ASCII - digit, then collect a sequence of characters that are ASCII - digits, interpret the resulting sequence as a base-ten integer, and let N be that number.
+ digit, then collect a sequence of code points that are ASCII + digits from input given position, interpret the resulting + sequence as a base-ten integer, and let N be that number.Otherwise next character is not part of a number; fail.
@@ -6028,8 +5959,9 @@ a.setAttribute('href', 'https://example.com/'); // change the content attributeCollect a sequence of characters that are ASCII digits. Let - s be the resulting sequence.
Collect a sequence of code points that are ASCII digits from + input given position. Let s be the resulting + sequence.
If s is the empty string, then fail.
Increment N by fraction.
Skip whitespace.
Skip ASCII whitespace within input given + position.
If position is past the end of input, then fail.
If next character is a space character, then - skip whitespace, set next character to the character in input pointed to by position, and advance position to the next character.
If next character is ASCII whitespace, then skip ASCII + whitespace within input given position, set next + character to the character in input pointed to by position, and + advance position to the next character.
Skip whitespace.
Skip ASCII whitespace within input given + position.
Convert the red, green, and blue components in turn to two-digit hexadecimal numbers using - lowercase ASCII hex digits, zero-padding if necessary, and append these numbers to - result, in the order red, green, blue.
+ ASCII lower hex digits, zero-padding if necessary, + and append these numbers to result, in the order red, green, blue.Return result, which will be a valid lowercase simple color.
If input is the empty string, then return an error.
Strip leading and trailing whitespace from input.
Strip leading and trailing ASCII whitespace from input.
If input is an ASCII case-insensitive match for the
string "transparent
", then return an error.
A set of space-separated tokens is a string containing zero or more words (known as - tokens) separated by one or more space characters, where - words consist of any string of one or more characters, none of which are space characters.
+ tokens) separated by one or more ASCII whitespace, where words consist of any string + of one or more characters, none of which are ASCII whitespace.A string containing a set of space-separated tokens may have leading or trailing - space characters.
+ ASCII whitespace.An unordered set of unique space-separated tokens is a set of space-separated tokens where none of the tokens are duplicated.
@@ -6442,51 +6377,15 @@ a.setAttribute('href', 'https://example.com/'); // change the content attributeHow tokens in a set of space-separated tokens are to be compared (e.g. case-sensitively or not) is defined on a per-set basis.
-When a user agent has to split a string on spaces, it must use the - following algorithm:
- -Let input be the string being parsed.
Let position be a pointer into input, initially - pointing at the start of the string.
Let tokens be an ordered list of tokens, initially empty.
Skip whitespace
While position is not past the end of input:
- -Collect a sequence of characters that are not space characters.
Append the string collected in the previous step to tokens.
Skip whitespace
Return tokens.
A set of comma-separated tokens is a string containing zero or more tokens each separated from the next by a single U+002C COMMA character (,), where tokens consist of any string - of zero or more characters, neither beginning nor ending with space - characters, nor containing any U+002C COMMA characters (,), and optionally surrounded by - space characters.
+ of zero or more characters, neither beginning nor ending with ASCII whitespace, nor + containing any U+002C COMMA characters (,), and optionally surrounded by ASCII + whitespace.For instance, the string " a ,b,,d d
" consists of four tokens: "a", "b", the empty
@@ -6498,41 +6397,6 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
tokens must all fit within those restrictions; other values are non-conforming. If no such
restrictions are specified, then all values are conforming.
When a user agent has to split a string on commas, it must use the - following algorithm:
- -Let input be the string being parsed.
Let position be a pointer into input, initially - pointing at the start of the string.
Let tokens be an ordered list of tokens, initially empty.
Token: If position is past the end of input, jump to the last step.
Collect a sequence of characters that are not U+002C COMMA characters (,). - Let s be the resulting sequence (which might be the empty string).
Strip leading and trailing whitespace from s.
Append s to tokens.
If position is not past the end of input, then - the character at position is a U+002C COMMA character (,); advance position past that character.
Jump back to the step labeled token.
Return tokens.
A string matches the environment of the user if it is the empty string, a string - consisting of only space characters, or is a media query list - that matches the user's environment according to the definitions given in the Media Queries - specification.
+ consisting of only ASCII whitespace, or is a media query list that matches the user's + environment according to the definitions given in the Media Queries specification. @@ -6600,12 +6464,12 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute the empty string.A string is a valid URL potentially surrounded by spaces if, after stripping leading and trailing whitespace - from it, it is a valid URL.
+ data-x="strip leading and trailing ASCII whitespace">stripping leading and trailing ASCII + whitespace from it, it is a valid URL.A string is a valid non-empty URL potentially surrounded by spaces if, after stripping leading and trailing whitespace - from it, it is a valid non-empty URL.
+ data-x="strip leading and trailing ASCII whitespace">stripping leading and trailing ASCII + whitespace from it, it is a valid non-empty URL.This specification defines the URL about:legacy-compat
as a reserved,
though unresolvable, about:
URL, for use in charset". If no such match is found, return nothing and abort these
steps.
Skip any space characters that immediately follow the
- word "charset
" (there might not be any).
Skip any ASCII whitespace that immediately follow the word "charset
" (there might not be any).
If the next character is not a U+003D EQUALS SIGN (=), then move position to point just before that next character, and jump back to the step labeled loop.
Skip any space characters that immediately follow the - equals sign (there might not be any).
Skip any ASCII whitespace that immediately follow the equals sign (there + might not be any).
title
element, or the empty string if the title
element is null.Strip and collapse whitespace in value.
Strip and collapse ASCII whitespace in value.
Return value.
The space characters are always allowed between elements.
- User agents represent these characters between elements in the source markup as Text
- nodes in the DOM. Empty
- Text
nodes and Text
nodes consisting of just sequences of those
- characters are considered inter-element whitespace.
The ASCII whitespace are always allowed between elements. User agents represent
+ these characters between elements in the source markup as Text
nodes in the DOM. Empty Text
nodes and
+ Text
nodes consisting of just sequences of those characters are considered
+ inter-element whitespace.
Inter-element whitespace, comment nodes, and processing instruction nodes must be ignored when establishing whether an element's contents match the element's content model or not, @@ -10090,13 +9954,13 @@ console.assert(image.height === 200);
Text, in the context of content models, means either nothing,
or Text
nodes. Text is sometimes used as a content
model on its own, but is also phrasing content, and can be inter-element
- whitespace (if the Text
nodes are empty or contain just space characters).
Text
nodes are empty or contain just ASCII
+ whitespace).
Text
nodes and attribute values must consist of Unicode characters, must not contain U+0000 characters, must not contain
- permanently undefined Unicode characters (noncharacters), and must not contain control characters
- other than space characters.
+ permanently undefined Unicode characters (noncharacters), and must not contain control
+ characters other than ASCII whitespace.
A custom data attribute is an attribute in no namespace whose name starts with the
string "data-
", has at least one character after the
- hyphen, is XML-compatible, and contains no uppercase ASCII letters.
All attribute names on HTML elements in HTML documents get ASCII-lowercased automatically, so the restriction on ASCII uppercase letters doesn't affect @@ -11598,15 +11463,15 @@ interface DOMStringMap {
For each content attribute on the DOMStringMap
's associated element whose first five characters are
the string "data-
" and whose remaining characters (if any) do not include
- any uppercase ASCII letters, in the order that those attributes are listed in the
- element's attribute list, add a name-value pair to list whose name is the
- attribute's name with the first five characters removed and whose value is the attribute's
- value.
For each name in list, for each U+002D HYPHEN-MINUS character (-) in the - name that is followed by a lowercase ASCII letter, - remove the U+002D HYPHEN-MINUS character (-) and replace the character that followed it by the - same character converted to ASCII uppercase.
For each name in list, for each U+002D HYPHEN-MINUS character (-) in the name + that is followed by an ASCII lower alpha, remove the U+002D HYPHEN-MINUS character + (-) and replace the character that followed it by the same character converted to ASCII + uppercase.
Return list.
If name contains a U+002D HYPHEN-MINUS character (-) followed by a
- lowercase ASCII letter, then throw a
- "SyntaxError
" DOMException
and abort these steps.
If name contains a U+002D HYPHEN-MINUS character (-) followed by an ASCII
+ lower alpha, then throw a "SyntaxError
"
+ DOMException
and abort these steps.
For each uppercase ASCII letter in - name, insert a U+002D HYPHEN-MINUS character (-) before the character and replace the - character with the same character converted to ASCII lowercase.
For each ASCII upper alpha in name, insert a U+002D HYPHEN-MINUS + character (-) before the character and replace the character with the same character + converted to ASCII lowercase.
Insert the string data-
at the front of name.
For each uppercase ASCII letter in - name, insert a U+002D HYPHEN-MINUS character (-) before the character and replace the - character with the same character converted to ASCII lowercase.
For each ASCII upper alpha in name, insert a U+002D HYPHEN-MINUS + character (-) before the character and replace the character with the same character + converted to ASCII lowercase.
Insert the string data-
at the front of name.
While pointer is not past the end of input:
Collect a sequence of characters that are not U+000A LINE FEED (LF) or - U+000D CARRIAGE RETURN (CR) characters. Set text to the collected - characters.
Collect a sequence of code points that are not U+000A LINE FEED (LF) or + U+000D CARRIAGE RETURN (CR) characters from input given position. Set + text to the collected characters.
If text is not the empty string, then append a new Text
node whose HTMLMetaElement : HTMLElement {
substeps:
Let value be the result of stripping leading and trailing whitespace from the value of +
Let value be the result of stripping leading and trailing ASCII whitespace from the value of
element's content
attribute.
If value can be parsed as a CSS <color> value, return @@ -13525,11 +13390,11 @@ people expect to have work and what is necessary.
Let position point at the first character of input.
Skip whitespace.
Skip ASCII whitespace within input given + position.
Collect a sequence of characters that are not space characters.
Collect a sequence of code points that are not ASCII + whitespace from input given position.
Let candidate be the string that resulted from the previous step.
content
attribute must have a value
that is an ASCII case-insensitive match for a string that consists of: the literal
- string "text/html;
", optionally followed by any number of space characters, followed by the literal string "charset=
", followed by one of the labels of
- the character encoding of the character encoding
- declaration.
+ string "text/html;
", optionally followed by any number of ASCII
+ whitespace, followed by the literal string "charset=
", followed by
+ one of the labels of the character
+ encoding of the character encoding declaration.
A document must not contain both a Let position point at the first character of input.meta
element with an http-equiv
attribute in the
Skip whitespace.
Skip ASCII whitespace within input given + position.
Collect a sequence of characters that are ASCII digits, and - parse the resulting string using the rules for parsing non-negative integers. If - the sequence of characters collected is the empty string, then no number will have been parsed; - abort these steps. Otherwise, let time be the parsed number.
Collect a sequence of code points that are ASCII digits from + input given position, and parse the resulting string using the + rules for parsing non-negative integers. If the sequence of characters collected + is the empty string, then no number will have been parsed; abort these steps. Otherwise, let + time be the parsed number.
Collect a sequence of characters that are ASCII digits and - U+002E FULL STOP characters (.). Ignore any collected characters.
Collect a sequence of code points that are ASCII digits and + U+002E FULL STOP characters (.) from input given position. Ignore any + collected characters.
Let url be document's URL.
If the character in input pointed to by position is not a U+003B - SEMICOLON character (;), a U+002C COMMA character (,), or a space character, then + SEMICOLON character (;), a U+002C COMMA character (,), or ASCII whitespace, then abort these steps.
Skip whitespace.
Skip ASCII whitespace within input given + position.
If the character in input pointed to by position is a U+003B SEMICOLON character (;), a U+002C COMMA character (,), then advance position to the next character.
Skip whitespace.
Skip ASCII whitespace within input given + position.
If position is past the end of input, jump to the step labeled end.
Skip whitespace.
Skip ASCII whitespace within input given + position.
If the character in input pointed to by position is a U+003D EQUALS SIGN (=), then advance position to the next character. Otherwise, jump to the step labeled parse.
Skip whitespace.
Skip ASCII whitespace within input given + position.
Skip quotes: If the character in input pointed to by position is either a U+0027 APOSTROPHE character (') or U+0022 QUOTATION MARK @@ -13781,11 +13652,10 @@ people expect to have work and what is necessary.
URL
", followed by a U+003D EQUALS SIGN character (=), followed by a valid
- URL that does not start with a literal U+0027 APOSTROPHE (') or U+0022 QUOTATION MARK
- (") character.URL
",
+ followed by a U+003D EQUALS SIGN character (=), followed by a valid URL that does
+ not start with a literal U+0027 APOSTROPHE (') or U+0022 QUOTATION MARK (") character.
@@ -22518,10 +22388,10 @@ interface HTMLHyperlinkElementUtils {
the value of the element's href
attribute can be parsed, relative to the element's node document, without
failure, then the user agent must take the ping
- attribute's value, split that string on spaces,
- parse each resulting token relative to the element's node
- document, and then run these substeps for each resulting URL record ping
- URL, ignoring tokens that fail to parse:
+ attribute's value, split that string on ASCII
+ whitespace, parse each resulting token relative to the
+ element's node document, and then run these substeps for each resulting URL
+ record ping URL, ignoring tokens that fail to parse:
If ping URL's scheme is not an @@ -22641,8 +22511,8 @@ interface HTMLHyperlinkElementUtils {
To determine which link types apply to a link
, a
, or
area
element, the element's rel
attribute must be split on spaces. The resulting tokens are the keywords
- for the link types that apply to that element.
To parse and process the attribute's value, the user agent must first split the attribute's value on spaces, and must then parse each resulting - keyword to determine what it represents.
+ string on ASCII whitespace">split the attribute's value on ASCII whitespace, and must then + parse each resulting keyword to determine what it represents.rel
attribute's entire value must be an
ASCII case-insensitive match for the string "shortcut icon
" (with a single U+0020 SPACE character between the tokens and
- no other space characters).
+ no other ASCII whitespace).
license
"A media
attribute specified with a value that,
- after stripping leading and trailing
- whitespace, is not the empty string and is not an ASCII case-insensitive
- match for the string "all
".
all
".
A type
attribute specified.
If present, its value must consist of one or more image candidate strings, each separated from the next by a U+002C COMMA character (,). If an - image candidate string contains no descriptors and no space characters after the URL, the following image candidate - string, if there is one, must begin with one or more space - characters.
+ image candidate string contains no descriptors and no ASCII whitespace + after the URL, the following image candidate string, if there is one, must begin with + one or more ASCII whitespace.An image candidate string consists of the following components, in order, with the further restrictions described below this list:
Zero or more space characters.
Zero or more ASCII whitespace.
A valid non-empty URL that does not start or end with a U+002C COMMA character (,), referencing a non-interactive, optionally animated, image resource that is neither paged nor scripted.
Zero or more space characters.
Zero or more ASCII whitespace.
A width descriptor, consisting of: a space character, a +
A width descriptor, consisting of: ASCII whitespace, a valid non-negative integer giving a number greater than zero representing the width descriptor value, and a U+0077 LATIN SMALL LETTER W character.
A pixel density descriptor, consisting of: a space character, a +
A pixel density descriptor, consisting of: ASCII whitespace, a valid floating-point number giving a number greater than zero representing the pixel density descriptor value, and a U+0078 LATIN SMALL LETTER X character.
Zero or more space characters.
Zero or more ASCII whitespace.
Let candidates be an initially empty source set.
Splitting loop: Collect a sequence of characters - that are space characters or U+002C COMMA characters. - If any U+002C COMMA characters were collected, that is a parse error.
Splitting loop: Collect a sequence of code points that are ASCII + whitespace or U+002C COMMA characters from input given position. If + any U+002C COMMA characters were collected, that is a parse error.
If position is past the end of input, return candidates and abort these steps.
Collect a sequence of characters that are not - space characters, and let that be url.
Collect a sequence of code points that are not ASCII whitespace + from input given position, and let that be url.
Let descriptors be a new empty list.
Descriptor tokenizer: Skip whitespace
Descriptor tokenizer: Skip ASCII whitespace within input + given position.
Let current descriptor be the empty string.
If current descriptor is not empty, append current descriptor to descriptors @@ -26775,7 +26646,7 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...
Stay in this state.
html
element.hspace
, and vspace
may be
specified on the embed
element, so long as its name is XML-compatible
- and contains no uppercase ASCII letters. These attributes are then passed as
- parameters to the plugin.
+ and contains no ASCII upper alphas. These attributes are
+ then passed as parameters to the plugin.
All attributes in HTML documents get lowercased automatically, so the restriction on uppercase letters doesn't affect such documents.
@@ -29644,8 +29515,8 @@ interface HTMLObjectElement : HTMLElement { data-x="attr-object-type">type attribute, then let resource type be that type and jump to the step below labeled handler. - + @@ -35174,7 +35045,7 @@ interface VideoTrack { following the "ES_info_length" field. The text track in-band metadata track dispatch type must be set to the concatenation of the stream type byte and the zero or more descriptor bytes bytes, expressed in hexadecimal using - uppercase ASCII hex digits. + ASCII upper hex digits.The name
attribute gives the map a name so that
- it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name
attribute must not be equal to the value of the name
attribute of another map
element in the same
- tree. If the id
attribute is also specified, both
- attributes must have the same value.
name
attribute
+ must not be equal to the value of the name
attribute of
+ another map
element in the same tree. If the id
attribute is also specified, both attributes must have the same
+ value.
Take the value of the principal cell's headers
attribute and split it on spaces, letting id list be the list of tokens
- obtained.
The value sanitization algorithm is as follows: Strip line - breaks from the value.
+The value sanitization algorithm is as follows: Strip + newlines from the value.
The value sanitization algorithm is as follows: Strip line - breaks from the value.
+The value sanitization algorithm is as follows: Strip + newlines from the value.
The value sanitization algorithm is as follows: Strip line - breaks from the value, then strip leading and - trailing whitespace from the value.
+The value sanitization algorithm is as follows: Strip + newlines from the value, then strip leading + and trailing ASCII whitespace from the value.
Constraint validation: While the value of the element is neither the empty string nor a valid @@ -44353,8 +44224,8 @@ interface HTMLInputElement : HTMLElement {
The value sanitization algorithm is as follows: Strip - line breaks from the value, then strip - leading and trailing whitespace from the value.
+ newlines from the value, then strip leading + and trailing ASCII whitespace from the value.Constraint validation: While the value of the element is neither the empty string nor a single valid e-mail address, the @@ -44403,7 +44274,8 @@ interface HTMLInputElement : HTMLElement { -
Strip leading and trailing whitespace from each value in latest values.
Strip leading and trailing ASCII whitespace from each value in latest + values.
Let the element's value be the result of concatenating all the values in latest values, separating each value from @@ -44423,8 +44295,8 @@ interface HTMLInputElement : HTMLElement {
Split on commas the element's value, strip leading and trailing whitespace from - each resulting token, if any, and let the element's value, strip leading and trailing ASCII + whitespace from each resulting token, if any, and let the element's values be the (possibly empty) resulting list of (possibly empty) tokens, maintaining the original order.
The value sanitization algorithm is as follows: Strip + newlines from the value.
User agents should present this hint to the user, after having stripped line breaks from it, when the element's value is the empty string, especially if the control is not focused.
+User agents should present this hint to the user, after having stripped newlines from it, when the element's value is the empty string, especially if the control is not + focused.
If a user agent normally doesn't show this hint to the user when the control is focused, then the user agent should nonetheless show the hint for the control if it @@ -49593,11 +49466,11 @@ interface HTMLOptionElement : HTMLElement { element's index.
The text
IDL attribute, on getting, must
- return the result of stripping and collapsing
- whitespace from the concatenation of data of all the
- Text
node descendants of the option
element, in tree order,
- excluding any that are descendants of descendants of the option
element that are
- themselves script
or SVG script
elements.
Text
node descendants of the option
element, in tree
+ order, excluding any that are descendants of descendants of the option
element
+ that are themselves script
or SVG script
elements.
On setting, the text
attribute must act as if the
textContent
IDL attribute on the element had been set to the new value.
If the element has no autocomplete
attribute,
then jump to the step labeled default.
Let tokens be the result of splitting the attribute's value on spaces.
Let tokens be the result of splitting the attribute's value on ASCII whitespace.
If tokens is empty, then jump to the step labeled default.
Let candidate encoding labels be the result of splitting input on spaces.
Let candidate encodings be an empty list of character encodings.
The label of a menuitem
element is the
value of the label
content attribute, if there is one
- and its value is not the empty string, or, otherwise, the result of stripping and collapsing whitespace from the
- child text content of the menuitem
element. The stripping and collapsing ASCII whitespace from the child
+ text content of the menuitem
element. The label must not be the empty string if the element's type
attribute value is in the Command state.
The Label of the command is the value of the
option
element's label
attribute, if there is
one, or else the value of option
element's textContent
IDL attribute,
- with leading and trailing whitespace
- stripped, and with any sequences of two or more space
- characters replaced by a single U+0020 SPACE character.
The AccessKey of the command is the element's assigned access key, if any.
@@ -57511,9 +57383,9 @@ o............A....eOtherwise, if the script
element has a type
attribute, let the script block's type string
- for this script
element be the value of that attribute with any leading or
- trailing sequences of space characters removed.
script
element be the value of that attribute with leading and trailing ASCII whitespace
+ stripped.
Otherwise, the element has a non-empty language
attribute; let the script block's type string for this script
element
@@ -57618,7 +57490,7 @@ o............A....e
Let event be the value of the event
attribute.
Strip leading and trailing whitespace from event and +
Strip leading and trailing ASCII whitespace from event and for.
If for is not an ASCII case-insensitive match for the @@ -60773,7 +60645,8 @@ transform. ack Shaun Morris. -->
If maxWidth was provided but is less than or equal to zero or equal to NaN, then return an empty array.
Replace all the space characters in text with U+0020 SPACE characters.
Replace all ASCII whitespace in text with U+0020 SPACE + characters.
Let font be the current font of target, as given
by that object's font
attribute.
rgba()
functional-notation format: the literal string
- "rgba
" (U+0072 U+0067 U+0062 U+0061) followed by a U+0028 LEFT PARENTHESIS,
- a base-ten integer in the range 0-255 representing the red component (using ASCII
- digits in the shortest form possible), a literal U+002C COMMA and U+0020 SPACE, an integer
- for the green component, a comma and a space, an integer for the blue component, another comma and
- space, a U+0030 DIGIT ZERO, if the alpha value is greater than zero then a U+002E FULL STOP
- (representing the decimal point), if the alpha value is greater than zero then one or more
- ASCII digits representing the fractional part of the alpha, and finally a U+0029 RIGHT PARENTHESIS. User agents must
- express the fractional part of the alpha value, if any, with the level of precision necessary for
- the alpha value, when reparsed, to be interpreted as the same alpha value.
+ and the last two digits representing the blue component, the digits being ASCII lower hex digits. Otherwise, the color value has alpha less than
+ 1.0, and the string is the color value in the CSS rgba()
+ functional-notation format: the literal string "rgba
" (U+0072 U+0067 U+0062
+ U+0061) followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the range 0-255 representing
+ the red component (using ASCII digits in the shortest form possible), a literal
+ U+002C COMMA and U+0020 SPACE, an integer for the green component, a comma and a space, an integer
+ for the blue component, another comma and space, a U+0030 DIGIT ZERO, if the alpha value is
+ greater than zero then a U+002E FULL STOP (representing the decimal point), if the alpha value is
+ greater than zero then one or more ASCII digits representing the fractional part of
+ the alpha, and finally a U+0029
+ RIGHT PARENTHESIS. User agents must express the fractional part of the alpha value, if any, with
+ the level of precision necessary for the alpha value, when reparsed, to be interpreted as the same
+ alpha value.
+
When the context is created, the Let font be the current font of the context, as given by the Replace all the space characters in text with U+0020 SPACE characters. Replace all the ASCII whitespace in text with U+0020 SPACE
+ characters. Form a whatever CSS ends up calling vertical line
boxes and inline boxes containing the text text, with all the properties
@@ -65909,10 +65784,10 @@ console.log(plasticButton2.getAttribute("is")); // will output "plastic-button"<
Any namespace-less attribute that is relevant to the element's functioning, as determined by
the element's author, may be specified on an autonomous custom element, so long as
- the attribute name is XML-compatible and contains no uppercase ASCII
- letters. The exception is the fillStyle
and font
attribute.is
attribute, which must not
- be specified on an autonomous custom element (and which will have no effect if it
- is).is
attribute,
+ which must not be specified on an autonomous custom element (and which will have no
+ effect if it is).
Customized built-in elements follow the normal requirements for attributes, based on the elements they extend. To add custom @@ -65970,11 +65845,11 @@ console.log(plasticButton2.getAttribute("is")); // will output "plastic-button"< custom element names:
They start with a lowercase ASCII letter, - ensuring that the HTML parser will treat them as tags instead of as text.
They start with an ASCII lower alpha, ensuring that the HTML parser will + treat them as tags instead of as text.
They do not contain any uppercase ASCII letters, ensuring that the user - agent can always treat HTML elements ASCII-case-insensitively.
They do not contain any ASCII upper alphas, + ensuring that the user agent can always treat HTML elements ASCII-case-insensitively.
They contain a hyphen, used for namespacing and to ensure forward compatibility (since no elements will be added to HTML, SVG, or MathML with hyphen-containing local names in the @@ -68501,8 +68376,8 @@ Demos: have at least one token.
The item types of an item are the tokens obtained
- by splitting the element's itemtype
attribute's value on spaces. If the splitting the element's
itemtype
attribute's value on ASCII whitespace. If the itemtype
attribute is missing or parsing it in this way finds no
tokens, the item is said to have no item types.
Specifications that introduce defined property names must ensure all such property names contain no U+002E FULL STOP characters (.), no U+003A COLON - characters (:), and no space characters.
+ characters (:), and no ASCII whitespace.The rules above disallow U+003A COLON characters (:) in non-URL values because otherwise they could not be distinguished from URLs. Values with U+002E FULL STOP characters (.) - are reserved for future extensions. Space characters are - disallowed because otherwise the values would be parsed as multiple tokens.
+ are reserved for future extensions. ASCII whitespace are disallowed because otherwise + the values would be parsed as multiple tokens.When an element with an itemprop
attribute adds a property to multiple items,
@@ -68733,8 +68608,8 @@ Demos:
The property names of an element are the tokens that the element's itemprop
attribute is found to contain when its value is split on spaces, with the order preserved but with
- duplicates removed (leaving only the first occurrence of each name).
Within an item, the properties are unordered with respect to each other, except for properties with the same name, which are ordered in the order they are @@ -68925,11 +68800,11 @@ Demos:
Add the child elements of root, if any, to pending.
If root has an itemref
attribute,
- split the value of that itemref
attribute on spaces. For each resulting token
- ID, if there is an element in the tree of root with the ID ID, then add the first such element to
+
If root has an itemref
attribute, split the value of that itemref
attribute on ASCII whitespace. For each resulting
+ token ID, if there is an element in the tree of root with the
+ ID ID, then add the first such element to
pending.
Loop: If pending is empty, jump to the step labeled end of
@@ -70271,11 +70146,14 @@ Demos:
subproperty named country-name
in
subitem.
If there is a property named If there is a property named type
in subitem, and the first such property has a type
in
+ subitem, and the first such property has a value that is not an item and whose value consists only of alphanumeric ASCII
- characters, then add a parameter named "TYPE
" whose value is
- the value of that property to parameters.
TYPE
" whose value is the value of that property to
+ parameters.
@@ -70339,9 +70217,10 @@ Demos:
If there is a property named rel
in
subitem, and the first such property has a value that is not an item and whose value consists only of alphanumeric ASCII
- characters, then add a parameter named "RELATION
" whose value
- is the value of that property to
+ data-x="concept-item">item and whose value consists only of ASCII alphanumerics, then add a parameter named "RELATION
" whose value is the value of that property to
parameters.
Let value be the result of collecting the first vCard
subproperty named value
in subitem.
If there is a property named type
in subitem, and the first such property has a value that is not an item and whose value consists only of alphanumeric ASCII
- characters, then add a parameter named "TYPE
" whose value is
- the value of that property to parameters.
If there is a property named type
in subitem, and
+ the first such property has a value that is
+ not an item and whose value consists only of ASCII alphanumeric, then add a parameter named "TYPE
" whose value is the value of that property to
+ parameters.
If the element has no accesskey
attribute, then skip
to the fallback step below.
Otherwise, split the attribute's value on - spaces, and let keys be the resulting tokens.
Otherwise, split the attribute's value + on ASCII whitespace, and let keys be the resulting tokens.
Strings that contain space characters
- cannot be used with the dropzone
attribute, so authors are
- encouraged to use only MIME types or custom strings (without
- spaces).
Strings that contain ASCII whitespace cannot be used with the
+ dropzone
attribute, so authors are encouraged to use only
+ MIME types or custom strings (without whitespace).
There is a limit of one Plain Unicode string item per item type string.
-Now, collect a sequence of characters that are not U+000A LINE FEED - (LF) or U+000D CARRIAGE RETURN (CR) characters, and let the result be line.
Now, collect a sequence of code points that are not U+000A LINE FEED + (LF) or U+000D CARRIAGE RETURN (CR) characters from input given position, + and let the result be line.
Drop any trailing U+0020 SPACE and U+0009 CHARACTER TABULATION (tab) characters at the end of line.
Let position be a pointer into data, initially pointing at the start of the string.
Remove all space characters from - data.
Remove all ASCII whitespace from data.
If the length of data divides by 4 leaving no remainder, then: if data ends with one or two U+003D EQUALS SIGN (=) characters, remove them from @@ -89688,7 +89570,7 @@ document.body.appendChild(frame)
If the type string contains a U+003B SEMICOLON character (;), remove the first such character and all characters from it up to the end of the string.
-Strip leading and trailing whitespace from type.
+Strip leading and trailing ASCII whitespace from type.
@@ -91344,8 +91226,8 @@ interface NavigatorContentUtils {If the registerProtocolHandler()
method is invoked with a scheme that is neither a safelisted scheme nor a scheme
whose value starts with the substring "web+
" and otherwise contains only
- lowercase ASCII letters, and whose length is at least five characters (including
- the "web+
" prefix), the user agent must throw a
+ ASCII lower alphas, and whose length is at least five
+ characters (including the "web+
" prefix), the user agent must throw a
"SecurityError
" DOMException
.
The following schemes are the safelisted schemes:
@@ -98340,19 +98222,19 @@ dictionary StorageEventInit : EventInit {html
element.Space characters before the html
element, and space characters at the start of
- the html
element and before the head
element, will be dropped when the
- document is parsed; space characters after the html
element will be parsed
- as if they were at the end of the body
element. Thus, space characters around the
- document element do not round-trip.
ASCII whitespace before the html
element, at the start of the
+ html
element and before the head
element, will be dropped when the
+ document is parsed; ASCII whitespace after the html
element
+ will be parsed as if it were at the end of the body
element. Thus, ASCII
+ whitespace around the document element does not round-trip.
It is suggested that newlines be inserted after the DOCTYPE, after any comments that are
before the document element, after the html
element's start tag (if it is not StorageEventInit : EventInit {
Many strings in the HTML syntax (e.g. the names of elements and their attributes) are - case-insensitive, but only for uppercase ASCII letters and lowercase ASCII - letters. For convenience, in this section this is just referred to as - "case-insensitive".
+ case-insensitive, but only for ASCII upper alphas and + ASCII lower alphas. For convenience, in this section this + is just referred to as "case-insensitive".<!DOCTYPE
".html
".SYSTEM
".about:legacy-compat
".Tags contain a tag name, giving the element's name. HTML - elements all have names that only use alphanumeric ASCII characters. In the HTML - syntax, tag names, even those for foreign elements, may be written with any mix of - lower- and uppercase letters that, when converted to all-lowercase, matches the element's tag - name; tag names are case-insensitive.
+ elements all have names that only use ASCII + alphanumerics. In the HTML syntax, tag names, even those for foreign elements, + may be written with any mix of lower- and uppercase letters that, when converted to all-lowercase, + matches the element's tag name; tag names are case-insensitive.Attributes have a name and a value. Attribute names - must consist of one or more characters other than the space - characters, U+0000 NULL, U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+003E - GREATER-THAN SIGN (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters, the control - characters, and any characters that are not defined by Unicode. In the HTML syntax, attribute - names, even those for foreign elements, may be written with any mix of lower- and - uppercase letters that are an ASCII case-insensitive match for the attribute's - name.
+ must consist of one or more characters other than the ASCII whitespace, U+0000 NULL, + U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN (>), + U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters, the control characters, + and any characters that are not defined by Unicode. In the HTML syntax, attribute names, even + those for foreign elements, may be written with any mix of lower- and uppercase + letters that are an ASCII case-insensitive match for the attribute's name.Attribute values are a mixture of text and character references, @@ -98642,7 +98521,7 @@ dictionary StorageEventInit : EventInit {
If an attribute using the empty attribute syntax is to be followed by another attribute, then - there must be a space character separating the two.
+ there must be ASCII whitespace separating the two. @@ -98650,15 +98529,14 @@ dictionary StorageEventInit : EventInit {The attribute name, followed by zero or more space characters, followed by a single U+003D EQUALS SIGN - character, followed by zero or more space characters, - followed by the attribute value, which, in addition - to the requirements given above for attribute values, must not contain any literal space characters, any U+0022 QUOTATION MARK characters ("), - U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN characters (=), U+003C LESS-THAN SIGN - characters (<), U+003E GREATER-THAN SIGN characters (>), or U+0060 GRAVE ACCENT characters - (`), and must not be the empty string.
+The attribute name, followed by zero or more + ASCII whitespace, followed by a single U+003D EQUALS SIGN character, followed by + zero or more ASCII whitespace, followed by the attribute value, which, in addition to the requirements + given above for attribute values, must not contain any literal ASCII whitespace, + any U+0022 QUOTATION MARK characters ("), U+0027 APOSTROPHE characters ('), U+003D + EQUALS SIGN characters (=), U+003C LESS-THAN SIGN characters (<), U+003E GREATER-THAN SIGN + characters (>), or U+0060 GRAVE ACCENT characters (`), and must not be the empty string.
-A head
element's end tag may be omitted if the
- head
element is not immediately followed by a space character or a comment.
A head
element's end tag may be omitted if
+ the head
element is not immediately followed by ASCII whitespace or a
+ comment.
A body
element's start tag may be omitted
- if the element is empty, or if the first thing inside the body
element is not a
- space character or a comment, except if the
+ if the element is empty, or if the first thing inside the body
element is not
+ ASCII whitespace or a comment, except if the
first thing inside the body
element is a meta
, link
,
script
, style
, or template
element.
-
A colgroup
element's end tag may be omitted if
- the colgroup
element is not immediately followed by a space character or
- a comment.
A colgroup
element's end tag may be omitted
+ if the colgroup
element is not immediately followed by ASCII whitespace
+ or a comment.
A caption
element's end tag may be omitted if
- the caption
element is not immediately followed by a space character or
- a comment.
caption
element is not immediately followed by ASCII whitespace or a
+ comment.
A thead
element's end tag may be omitted if
@@ -99295,13 +99173,13 @@ dictionary StorageEventInit : EventInit {
The numeric character reference forms described above are allowed to reference any Unicode code point other than U+0000, U+000D, permanently undefined Unicode characters (noncharacters), - surrogates (U+D800–U+DFFF), and control characters other than space characters.
+ surrogates (U+D800–U+DFFF), and control characters other than ASCII + whitespace.An ambiguous ampersand is a U+0026 AMPERSAND - character (&) that is followed by one or more alphanumeric ASCII characters, - followed by a U+003B SEMICOLON character (;), where these characters do not match any of the names - given in the named character references section.
+ character (&) that is followed by one or more ASCII + alphanumerics, followed by a U+003B SEMICOLON character (;), where these characters do not + match any of the names given in the named character references section.If no match can be made and the temporary buffer - consists of a U+0026 AMPERSAND character (&) followed by a sequence of one or more - alphanumeric ASCII characters and a U+003B SEMICOLON character (;), then this is a - parse error.
+ consists of a U+0026 AMPERSAND character (&) followed by a sequence of one or more ASCII alphanumerics and a U+003B SEMICOLON character (;), + then this is a parse error.If no match can be made, switch to the character reference end state.
@@ -103062,10 +102940,10 @@ dictionary StorageEventInit : EventInit { state">return state is either attribute value (double-quoted) state, attribute value (single-quoted) state or attribute value (unquoted) state), and the last character matched is not a U+003B SEMICOLON character (;), and the - next input character is either a U+003D EQUALS SIGN character (=) or an - alphanumeric ASCII character, then, for - historical reasons, switch to the character reference end state. + next input character is either a U+003D EQUALS SIGN character (=) or an ASCII + alphanumeric, then, for historical reasons, switch to the character reference end + state. +If the last character matched is not a U+003B SEMICOLON character (;), this is a parse error.
@@ -103155,13 +103033,13 @@ dictionary StorageEventInit : EventInit {