Incorrect parsing of the `sizes` attribute
andrewburgess opened this issue · 0 comments
Related to: wooorm/property-information#14
The sizes attribute is parsed differently depending on whether it is part of a link element or an img element. The pull request referenced above would change sizes to be commaOrSpaceSeparated which would be parsed here as splitting on commas first, and then on spaces after rejoining the array into a space separated string.
For the element:
<img
sizes="(max-width: 600px) 100vw, 800px"
src="example.png"
srcset="example.png 400px, example.png 800px"
/>
the sizes attribute would be parsed and turned into the array
["(max-width:", "600px)", "100vw", "800px"]
instead of the expected
["(max-width: 600px) 100vw", "800px"]
I was thinking of changing the above referenced line to be:
result = result.indexOf(',') >= 0 ? commas(result) : spaces(result)
but that breaks existing tests since they seem to be handling the case of "comma AND space separated".
I'm also not sure if that change would cover all cases since it seems that the sizes grammar would allow for a solo <media-condition> <source-size-value> which shouldn't be split up