diff --git a/.changeset/quiet-items-behave.md b/.changeset/quiet-items-behave.md new file mode 100644 index 000000000000..c76d4a37ce26 --- /dev/null +++ b/.changeset/quiet-items-behave.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +Fix escaped html attributes diff --git a/packages/kit/src/utils/escape.js b/packages/kit/src/utils/escape.js index 5b6c2b141426..bd36d537e1d2 100644 --- a/packages/kit/src/utils/escape.js +++ b/packages/kit/src/utils/escape.js @@ -57,20 +57,25 @@ function escape(str, dict, unicode_encoder) { return result; } -/** @type {Record} */ +/** + * When inside a double-quoted attribute value, only `&` and `"` hold special meaning. + * @see https://html.spec.whatwg.org/multipage/parsing.html#attribute-value-(double-quoted)-state + * @type {Record} + */ const escape_html_attr_dict = { - '<': '<', - '>': '>', + '&': '&', '"': '"' }; /** - * use for escaping string values to be used html attributes on the page - * e.g. - * alert("pwned")">' ); });